有obje的lisp例程
我试图编写一个lisp例程,让一个对象(比如一个螺栓)360度旋转,比如50次,同时移动?当我制作视频动画时,似乎无法获得它。 有几种方法可以做到这一点。第一种方法是编写LISP以物理旋转对象,但只有在AutoCAD中进行演示,或者有第三方程序将监视器上的图像记录到视频中时,这才有用。另一个选项显然更复杂,但它允许您直接导出视频。查看AutoCAD中可用的运动路径动画,看看这些动画是否能满足您的需要。 谢谢你的回复。。“第一个是编写LISP以物理旋转对象”,这就是我在AutoCAD 2007中尝试做的,是的,第三方程序将监视器上的图像记录到视频中,运动路径动画。 虽然我建议您看看AutoCAD中可用的运动路径动画,因为它们可以提供更好的产品。这样的代码取决于您的系统,并且可能会延迟或加速,这取决于您正在进行的操作。
(defun c:rotob( / e p a b c i)
(vl-load-com)
(setvar "cmdecho" 0)
(setq e (vlax-ename->vla-object (car (entsel "\nSelect object: "))))
(setq p (getpoint "\nSelect rotation point: "))
(setq a 5 ; Number of revolutions
b 5 ; Degrees per increment (must be a factor of 360)
c 10 ; Delay between incremental rotation
i 0) ; Counter
(if (= 0 (rem (setq d (/ 360 b)) 1))
(while (< i a)
(repeat d
(vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))
(vl-cmdf "delay" c "regen")
)
(setq i (1+ i))
)
)
)
嘿,这可能会让你开始!
我不久前写的只是为了好玩。。。
(defun c:spin (/ obj rot rot+)
(setq obj (vlax-ename->vla-object (car (entsel))))
(setq rot (vla-get-rotation obj))
(setq rot+ (/ (* 2 pi) 500))
(repeat 500
(setq rot (+ rot+ rot))
(vla-put-rotation obj rot)
(vla-update obj)
)
(vlax-release-object obj)
(princ)
)
再次感谢。。
好吧,我是lisp写作新手,所以我很慢,我有一个我在视频中尝试做什么的例子,蓝色的螺栓在移动时需要旋转/旋转。
(1) 如何选择螺栓。
(2) 如何一次将lisp应用于一个螺栓。
墨西哥湾漏油、管帽 这根本不是我想的。
视频,没有上传。。请参阅PDF
管道固定。pdf 那是另一个蜡球。
我建议您使用发布的代码,并尝试对其进行调整,使其围绕特定轴旋转(您需要为3D指定此选项)。然后,您应该能够添加额外的数据以获得所需的翻译。一旦您完成了一个对象的代码,您应该能够为其余对象复制它。 alanjt:
你想上传你的旋转/移动的东西的Lisp程序吗?
页:
[1]
2