这些过去很管用,但在2015年,comand-s的事情把它们搞砸了,我一直忙于修补它们。
- (defun c:heal (/ block ll ur p1 p2)
- (vl-load-com)
- (setq block (car (entsel "\nSelect Block:")))
- (vla-getboundingbox (vlax-ename->vla-object block) 'll 'ur)
- (command "_.erase" block "")
- (command
- "_.pedit"
- "_m"
- (ssget "C"
- (setq p1 (vlax-safearray->list ll))
- (setq p2 (vlax-safearray->list ur)))
- ""
- "_join" "_Joint" "_Both"
- (distance p1 p2)
- "")
- (princ)
- )
- (defun c:HEAL2 (/ block ll ur objecttojoin)
- (vl-load-com)
- (setq block (car (entsel "\nSelect Block:")))
- (vla-getboundingbox (vlax-ename->vla-object block) 'll 'ur)
- (command "_.erase" block "")
- (setq objecttojoin
- (ssget "C"
- (vlax-safearray->list ll)
- (vlax-safearray->list ur)))
- (command
- "_.join"
- (ssname objecttojoin 0)
- (ssname objecttojoin 1)
- "")
- )
http://autocadtips.wordpress.com/?s=heal
http://autocadtips.wordpress.com/2012/06/29/autolisp-heal-erase-block-heal-line/
~格雷格 |