![]() |
【转帖】绘制一段渐开线
绘制一段渐开线
www.dimcax.com 绘制一段渐开线 我已经计算出一段渐开线的点坐标,如何绘制渐开线 把点坐标放在数组里,然后用向图形添加多段线或样条曲线的的方法创建 从顶点列表创建多段线。 参阅 | 示例 语法 retval = object.addpolyline(verticeslist) object modelspace 集合, paperspace 集合, block 使用该方法的对象。 verticeslist variant[变体] (双精度数组); 仅用于输入 用于创建多段线顶点的ocs坐标数组。每一顶点用三个元素表示,前两个元素为ocs的x和y坐标;而第三个元素为忽略。至少需要两点(六个元素)来构成一个多段线对象。该数组的大小必须为3的倍数。 retval polyline 对象 新创建的 polyline 对象。 sub example_addpolyline() ' 该示例在模型空间中创建多段线。 dim plineobj as acadpolyline dim points(0 to 14) as double ' 定义二维多段线顶点 points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 ' 在模型空间中创建多段线 set plineobj = thisdrawing.modelspace.addpolyline(points) zoomall end sub 创建二次或三次nurbs(非一致有理b样条)曲线。 参阅 | 示例 语法 retval = object.addspline(pointsarray, starttangent, endtangent) object modelspace 集合, paperspace 集合, block 使用该方法的对象。 pointsarray variant[变体] (双精度数组); 仅用于输入 定义样条曲线的三维wcs坐标数组。至少需要两个点(六个元素)来构成 spline 对象。该数组大小必须为3的倍数。 starttangent variant[变体] (三元素双精度数组); 仅用于输入 指定样条曲线第一点相切的三维矢量。 endtangent variant[变体] (三元素双精度数组); 仅用于输入 指定样条曲线最后一点相切的三维矢量。 retval spline 对象 新创建的 spline 对象。 说明 starttangent 和 endtangent 参数指定了样条曲线两个端点的相切矢量。默认时,创建的样条曲线为开放的。要闭合样条曲线,可在样条曲线创建后调用 closed 属性。 sub example_addspline() ' 该示例在模型空间中创建样条曲线对象。 ' 创建样条曲线 dim splineobj as acadspline dim starttan(0 to 2) as double dim endtan(0 to 2) as double dim fitpoints(0 to 8) as double starttan(0) = 0.5: starttan(1) = 0.5: starttan(2) = 0 endtan(0) = 0.5: endtan(1) = 0.5: endtan(2) = 0 fitpoints(0) = 1: fitpoints(1) = 1: fitpoints(2) = 0 fitpoints(3) = 5: fitpoints(4) = 5: fitpoints(5) = 0 fitpoints(6) = 10: fitpoints(7) = 0: fitpoints(8) = 0 set splineobj = thisdrawing.modelspace.addspline(fitpoints, starttan, endtan) zoomall end sub '抛物线程序 public sub pwx() dim p as double, x as double, y as double, i as integer,point(62) as double p = 5 for y = -10 to 10 x = y ^ 2 / (2 * p) point(i) = x point(i + 1) = y point(i + 2) = 0 i = i + 3 next y thisdrawing.modelspace.addpolyline point thisdrawing.sendcommand "zoom" & vbcr & "e" & vbcr end sub 点的坐标就在point(62)数组里 |
| 所有的时间均为北京时间。 现在的时间是 01:35 AM. |