我不明白你到底需要什么
只是一个快速代码:
- (defun c:ofc (/ ang cp1 cp2 en1 en2 ent1 ent2 obj1 obj2 tp1 tp2 up1 up2)
- (setq ent1 (entsel "\nSelect first line : ")
- ent2 (entsel "\nSelect second line : ")
- en1 (car ent1)
- en2 (car ent2)
- obj1 (vlax-ename->vla-object en1)
- obj2 (vlax-ename->vla-object en2)
- cp1 (vlax-curve-getclosestpointto obj1
- (vlax-curve-getpointatparam obj1
- (/ (- (vlax-curve-getendparam obj1)(vlax-curve-getstartparam obj1)) 2)))
- cp2 (vlax-curve-getclosestpointto obj2 cp1)
- ang (angle cp1 (vlax-curve-getstartpoint obj1))
- up1 (polar cp1 ang 2);<-- 2 is offset distance
- up2 (polar cp1 (+ pi ang) 2)
- tp1 (polar cp2 ang 2)
- tp2 (polar cp2 (+ pi ang) 2)
- )
- (command "._line" "_non" up1 "_non" tp1 ""
- "._line" "_non" up2 "_non" tp2 ""
- )
- (princ)
- )
- (vl-load-com)
- (princ "\n *** Start command with OFC to excute ***")
- (prin1)
但在这种情况下,您只添加了一张附加支票。无论哪种方式都需要。 |