三维实体的并集
大家好!我试图通过lisp合并一些3dsolids,但到目前为止无法实现。这是我要调试的代码
有两件事我不确定:
1-我的selset是由什么制成的?2个实体、2个圆或2个圆和2个实体?
2-我们可以将selset馈送到命令吗?
谢谢你的指导,圣诞快乐!
杰夫! 我猜想它是两个固体。 我想这是一个好的开始,因为我需要的选择集是2个实体。
但谜团依然存在。。。我们可以将selset馈送给命令吗?怎样我想我已经很接近了,但我自己还没想好。 我认为用户不会自己进行选择(例如,通过窗口选择对象)。对的 确切地lisp生成3dsolids而不是将其合并(除了启动命令..生成3dsolids并将其合并)=之外,用户没有任何输出) 我只是这里的守夜人,不是Lisp程序的大师,但我会看看是否能找到你问题的答案。 (命令“UNION”selset“”) 无聊的!当然
我尝试的第一件事是(命令联合selset),我简直不敢相信我没有注意到我在10行lisp上使用的第五个命令没有引号。
非常感谢你! 不客气,杰夫! 下面是另一个使用ActiveX方法的路由:
(defun c:test ( / cir1 cir2 doc reg1 reg2 sol1 sol2 spc )
(setq doc(vla-get-activedocument (vlax-get-acad-object))
spc(vlax-get-property doc (if (= 1 (getvar 'cvport)) 'paperspace 'modelspace))
cir1 (vlax-invoke spc 'addcircle '(0.0 0.0 0.0) 1.0)
cir2 (vlax-invoke spc 'addcircle '(0.0 0.0 0.0) 0.5)
reg1 (vlax-invoke spc 'addregion (list cir1))
reg2 (vlax-invoke spc 'addregion (list cir2))
sol1 (vlax-invoke spc 'addextrudedsolid (car reg1)0.1 0.0)
sol2 (vlax-invoke spc 'addextrudedsolid (car reg2) -0.1 0.0)
)
(vla-boolean sol1 acunion sol2)
(foreach obj (vl-list* cir1 cir2 (append reg1 reg2)) (vla-delete obj))
(princ)
)
(vl-load-com) (princ)
也许有些值得思考的东西。
页:
[1]
2