把你的螺旋线拿过来!
我在这里复制了一条来自fuccaro的消息,这是我从旧留言板上救出的。这是如此有用,我认为这将是伟大的启动这个新的AutoLISP板。大卫 我通过电子邮件宣布,上面的lisp程序只有在OSNAP关闭的情况下才能正常工作。是真的,请原谅,但我简化了太多的程序,试图使其简短。在线路之后
(setq old(getvar“snapmode”))
请插入此项:
(setvar“snapmode”0)
感谢科兹卡的观察。 这是一个用于三维螺旋类型对象的lisp
http://pointa.autodesk.com/local/enu/portal/Articles/article.jsp?articleId=15872
HTH公司
刻痕
(非lithssps CAD) 谢谢你,T先生的链接。另一种方法是在实体变得难以操作时生成曲面。这些都是一般的建议程序,我以一种简单的方式重写了例程,以满足我们的需要。首先,这是一个绘制螺旋的程序,如果标高(螺距)设置为零,则绘制螺旋。圈数可能是实数(!)您可以独立设置起点和终点半径,因此很容易绘制锥形弹簧。半径可以接受负值(试试这个:Rb=10;Rt=-10;标高=0,转角=2)。
我将带着另一个程序返回,在螺旋路径上挤出一个形状,生成一个曲面。所以离我近一点!
(defun C:Helcon()
(setq segs 20); segments/turn
(setq spin -1); -1=CW, 1=CCW
(setq ri (getreal "base radius ") rf (getreal "top radius "))
(initget (+ 1 4))
(setq h (getreal "elevation "))
(initget (+ 1 2 4))
(setq tu (getreal "turns "))
(setq old (getvar "osmode"))
(setvar "cmdecho" 0)
(setq fi1 (/ (* 2 PI) segs) i 0)
(setq points (fix (* tu segs))
h1 (/ h points) r1 (/ (- rf ri) points)
s (getpoint "center of base ")
end (list (car s) (cadr s) (+ h (caddr s))))
(setvar "osmode" 0 )
(command "line" s end "")
(command "chprop" "l" "" "c" 1 "")
(command "3dpoly")
(setq i 0)
(repeat (1+ points)
(setq fi (* i fi1) h (* i h1) r (+ ri (* i r1)))
(setq x (* r (cos fi)) y (* spin r (sin fi)))
(command (list (+ (car s) x) (+ (cadr s) y) (+ (caddr s) h)))
(setq i (1+ i)))
(command "")
(setvar "osmode" old)) 福卡罗
感谢修改后的lisp文件。我刚试过,效果不错。我使用它来创建此拉伸的路径:
由于三维多段线上点之间的增量,实体拉伸是分面的。您认为可以允许用户设置增量吗?
此外,可以对生成的螺旋进行样条拟合,但AutoCAD不允许沿样条拟合的三维多段线进行拉伸。有人找到了解决这个问题的方法吗? 这很容易改变。在第二个程序行(用注释标记)中,将数字(20)设置为更高的值,弹簧看起来会更好。是的,可以向用户询问很多事情,比如颜色、图层。。。我决定让程序简单易用。但是如果你愿意的话,只要换掉第二行就行了
(setq segs 20);分段/转弯
有了这个:
(setq segs(getint“segments?”))
我感到沮丧,我没有可能插入图像。该程序中的新功能是绘制一个圆锥螺旋线,并且圈数为实数。但在你的图像中,只是一个简单的普通圆柱螺旋,正好有5圈。
正如我所承诺的,我将带着另一个程序回来,在螺旋路径上挤出其他形状,而不仅仅是圆。我必须测试一下,否则全世界都会拥有它。 你是说像这样。。。
...是的,这也很管用。
Fuccaro做得很好,迫不及待地想测试挤出例程。 凉的但它可以画成一个圆锥体,外面有一个排列的“wigwam杆”排列,然后画成一个三维柱状图????
刻痕 从(0,0,0)中画一条水平线-这将是螺旋的轴。绘制形状,最方便的方式是绘制多段线。形状与轴的距离将给出螺旋的半径。启动程序。当系统提示您轮廓的点数时,如果形状是开放的,请输入形状的顶点数。如果分数接近,则必须输入点数+1。按顺序显示点,如绘制多段线时。要闭合形状,最后一个点必须与第一个点相同。这里是3Dmesh大小的限制,如果曲面不完整,并且程序结束时显示消息“警告!曲面已修剪”,请再次尝试降低质量或圈数。
2 是的,这也行。。。
我对这种惯例只有一点批评。为什么不要求用户选择轮廓,并让例程计算出点的数量及其坐标?显然,您必须规定轮廓是使用多段线形成的,但这将避免用户输入错误点数等引起的潜在错误。
否则,它的工作原理与宣传的一样。谢谢福卡罗。
页:
[1]
2