Jef! 发表于 2022-7-5 23:44:46

三维实体的并集

大家好!
 
我试图通过lisp合并一些3dsolids,但到目前为止无法实现。这是我要调试的代码
有两件事我不确定:
1-我的selset是由什么制成的?2个实体、2个圆或2个圆和2个实体?
2-我们可以将selset馈送到命令吗?
 
谢谢你的指导,圣诞快乐!
杰夫!

ReMark 发表于 2022-7-5 23:51:23

我猜想它是两个固体。

Jef! 发表于 2022-7-5 23:55:29

我想这是一个好的开始,因为我需要的选择集是2个实体。
但谜团依然存在。。。我们可以将selset馈送给命令吗?怎样我想我已经很接近了,但我自己还没想好。

ReMark 发表于 2022-7-5 23:58:59

我认为用户不会自己进行选择(例如,通过窗口选择对象)。对的

Jef! 发表于 2022-7-6 00:02:01

确切地lisp生成3dsolids而不是将其合并(除了启动命令..生成3dsolids并将其合并)=之外,用户没有任何输出)

ReMark 发表于 2022-7-6 00:06:04

我只是这里的守夜人,不是Lisp程序的大师,但我会看看是否能找到你问题的答案。

GP_ 发表于 2022-7-6 00:10:54

(命令“UNION”selset“”)

Jef! 发表于 2022-7-6 00:14:32

无聊的!当然
我尝试的第一件事是(命令联合selset),我简直不敢相信我没有注意到我在10行lisp上使用的第五个命令没有引号。
非常感谢你!

GP_ 发表于 2022-7-6 00:17:36

不客气,杰夫!

Lee Mac 发表于 2022-7-6 00:22:00

下面是另一个使用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
查看完整版本: 三维实体的并集