作为一个起点,这可能是有用的。它还没有经过严格测试。此外,它没有考虑可能被锁定的层
- (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)
- )))))
|