不确定inters是如何在这里发挥作用的?你能用这种方法发布一个伪代码吗。
无论如何。。。我要走了,这是一个演示
- (Defun c:demo ( / om pl pl2 dist ref mn mx h w a b c d)
- (setq om (getvar 'osmode))
- (if (and
- (setq pl ([color="blue"]entsel [/color]"\nSelect Outer rim: "))
- (setq pl2 ([color="blue"]entsel[/color] "\nSelect Inner rim: "))
- (setq dist ([color="blue"]distance[/color]
- (vlax-curve-getClosestPointTo (car pl) (Cadr pl))
- (vlax-curve-getClosestPointTo (car pl2) (Cadr pl)))
- )
- )
- (progn
- (command [color="blue"]"_offset" [/color]3 (Car pl) (Cadr pl2) "")
- ([color="blue"]vla-getboundingbox[/color] (setq e (vlax-ename->vla-object (entlast))) 'mn 'mx)
- (setq mn (vlax-safearray->list mn)
- mx (vlax-safearray->list mx)
- w (- (car mx) (car mn))
- h (- (cadr mx) (cadr mn))
- dist (- dist 6))
- (foreach seg (list
- [color="blue"](list (setq a (polar mn 0 dist)) (polar a (/ pi 2.0) h))
- (list (setq b (polar mn (/ pi 2.0) dist)) (polar b 0 w))
- (list (setq c (polar mx pi dist)) (polar c (* pi 1.5) h))
- (list (setq d (polar mx (* pi 1.5) dist)) (polar d pi w)))[/color]
- (entmakex (list (cons 0 "LINE")
- (cons 10 (Car seg))
- (cons 11 (Cadr seg))
- '(8 . "CONS")))
- )
- (vla-put-layer e "CONS")
- )
- )(princ)
- )
|