帮助命令部分:区域
您好:电击:问题:
我通常使用comand剖面或剖面从三维模型中绘制二维图形。
我知道yuo可以使用命令sectionplane生成2d剖面块,但所有实体都放置在第0层。
使用命令部分,输出区域放置在当前层上。
想法:
可以基于命令SECTON(无SECTIONPLANE)创建lisp,以便在不同截面实体的同一层上具有区域。
因此,您可以研究由不同层组成的三维对象,并根据更复杂的标准(例如,根据不同的材料组织)将二维截面组织到不同的层中。
请求:
有人Lisp程序?还是有人可以开发它?
谢谢大家为这个伟大的网站!!!!
马可 可能吗? 嘿Marco
应该可以通过lisp例程实现这一点。
基本上,您需要创建一个三维实体的选择集,并拾取提供截面边界的3个点。迭代选择集。实体对象具有vla SectionSolid方法,该方法可以基于拾取点生成区域,您可以更改该区域以匹配源对象
你有自己编写的代码可以发布吗?
当做
杰米 嗨,吉米!
我不懂lisp语言。。。我正在学习,但现在我只能写宏命令。。。 作为一个起点,这可能是有用的。它还没有经过严格测试。此外,它没有考虑可能被锁定的层
(defun c:foo (/ tempSelectionSet pt1 pt2 pt3 i sourceObject sourceLayer acdbMarker)
(if
(and
(setq tempSelectionSet (ssget (list (cons 0 "3dSolid"))))
(setq pt1 (getpoint "\nSpecify first point on Section plane:"))
(setq pt2 (getpoint pt1 "\nSpecify second point on plane: "))
(setq pt3 (getpoint pt1"\nSpecify third point on plane:"))
)
(progn
(setq i 0)
(repeat
(sslength tempSelectionSet)
(setq sourceObject (vlax-ename->vla-object (ssname tempSelectionSet i)))
(setq acdbMarker(entlast)
sourceLayer (vla-get-layer sourceObject)
i (1+ i))
(vla-SectionSolid
sourceObject
(vlax-3d-point pt1)
(vlax-3d-point pt2)
(vlax-3d-point pt3)
)
(while
(setq acdbMarker (entnext acdbMarker))
(vla-put-layer (vlax-ename->vla-object acdbMarker) sourceLayer)
))))) 嗨Jammie!
Lisp程序是完美的!!!
简单、快速、实用。
适用于复杂模型!
非常感谢你!
当做
马可
很高兴帮助马尔默!
我不经常接触固体,所以这对我来说也是一个很好的学习曲线
当做
杰米
页:
[1]