实体到网格LISP
我制作了一些脚本来处理实体。前三种方法有效,但第三种方法无法使用meshsnmooth将实体转化为网格。
有人能帮忙吗?
SOLIDS ERASE
(
(setvar "qaflags" 1)
(setq SolidsErase (ssget "X" '((0 . "3dsolid"))))
(command "ERASE" SolidsErase "")
(setvar "qaflags" 0)
)
SOLIDS OFFSET BASE POINT
(
(setvar "qaflags" 1)
(setq SolidsOffset (ssget "X" '((0 . "3dsolid"))))
(command "MOVE" SolidsOffset "" "0,0,0" "5,5,0")
(setvar "qaflags" 0)
)
SOLIDS OFFSET DISPLACEMENT
(
(setvar "qaflags" 1)
(setq SolidsOffset (ssget "X" '((0 . "3dsolid"))))
(command "MOVE" SolidsOffset "" "" "2,2,2")
(setvar "qaflags" 0)
)
SOLIDS TO MESH
(
(setq SolidsToMesh (ssget "X" '((0 . "3dsolid"))))
(command "MESHSMOOTH" SolidsToMesh "")
)
谢谢 试试这个:
(vl-load-com)
(vla-SendCommand
(vla-get-ActiveDocument (vlax-get-acad-object))
(strcat "MESHSMOOTH" " " "(ssget \"X\" '((0 . \"3dsolid\")))" " " " ")
) 谢谢,我会让你知道它是否有效。
是否有必要使用visual lisp?
我想在autolisp中保持简单。
在这一侧(仅在AutoCAD 2010中测试)
(setq SolidsToMesh (ssget "X" '((0 . "3dsolid"))))
(command "MESHSMOOTH" SolidsToMesh "")
按预期工作。
亨里克
亨里克,代码是一样的。
它在我的A2014上不起作用。
您好,GP,
我知道代码是一样的,我只是对OP说,这是AC2010中预期的工作代码。。。
在你回复后,我在另一台机器上用AC2012和AC2014测试了OP代码,在所有版本中都正常工作。。。
亨里克 嗨,Henrique,
在我的AC2014中,OP的代码仅适用于原始实体。
Gian Paolo,
我只测试了原始固体。。。
在AC2014中,在没有原始实体的情况下,只有按照您的建议使用vla SendCommand才能正常工作。
干杯
亨里克
页:
[1]