马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:eltoci ()
- (vl-load-com)
- (setq ss (ssget "x" '((0 . "ELLIPSE")))
- $doc (vla-get-ActiveDocument (vlax-get-acad-object))
- $layer (vla-get-ActiveLayer $doc)
- model (vla-get-ModelSpace $doc)
- vla-obs nil
- cnt 0
- )
- (vla-StartUndoMark $doc)
- (repeat (sslength ss)
- (setq vla-obs (append vla-obs
- (list (vlax-ename->vla-object
- (ssname ss cnt)
- )
- )
- )
- cnt (1+ cnt)
- )
- )
- (foreach item vla-obs
- (if (= (vla-get-MinorRadius item) (vla-get-MajorRadius item))
- (progn
- (setq center (vla-get-Center item)
- radius (vla-get-MinorRadius item)
- layer (vla-get-layer item)
- )
- (vla-put-ActiveLayer
- $doc
- (vla-item (vla-get-layers $doc) layer)
- )
- (vla-AddCircle model center radius)
- (vla-erase item)
- )
- )
- )
- (vla-put-ActiveLayer $doc $layer)
- (vla-EndUndoMark $doc)
- (foreach obj vla-obs
- (vlax-release-object obj)
- )
- (vlax-release-object model)
- (vlax-release-object $layer)
- (vlax-release-object $doc)
- (princ)
- )
|