2017-11-10 33 views
0

누구나 2 개의 평행선을 연결하는 선을 빠르게 그릴 수있는 AutoLisp 루틴이 있습니다. 반경이 아닌 직선을 그리는 것 외에는 필렛 명령과 비슷한 기능을하는 것이 좋습니다. 모따기가 평행선과 함께 작동하지 않는다는 점을 제외하면 모따기 명령을 사용하여 거의 완료 할 수 있습니다.선 그리기 AutoLisp을 사용하여 2 개의 평행선의 끝을 연결하면

내 직업은 여러 쌍의 평행선을 오프셋 한 다음 다른 선과 연결하여 직사각형을 만드는 경우가 있습니다. 그들 사이에 선을 그리는 것은 쉽지만, 여전히 지루한 과정입니다.

답변

2
(defun c:connectLines (/ line1 line2 data1 data2 pt1 pt2 pt3 pt4) 
    (and 
    (setq line1 (car (entsel "\nSelect first line: "))) 
    (= (cdr (assoc 0 (setq data1 (entget line1)))) "LINE") 
    (setq line2 (car (entsel "\nSelect second line: "))) 
    (= (cdr (assoc 0 (setq data2 (entget line2)))) "LINE") 
    (setq pt1 (cdr (assoc 10 data1)) 
      pt2 (cdr (assoc 11 data1)) 
      pt3 (cdr (assoc 11 data2)) 
      pt4 (cdr (assoc 10 data2)) 
    ) 
    (or (< (distance pt2 pt3) (distance pt2 pt4)) 
     (mapcar 'set '(pt3 pt4) (list pt4 pt3)) 
    ) 
    (command "_.erase" 
      (ssadd line2 (ssadd line1)) 
      "" 
      "_.pline" 
      "_non" 
      (trans pt1 0 1) 
      "_non" 
      (trans pt2 0 1) 
      "_non" 
      (trans pt3 0 1) 
      "_non" 
      (trans pt4 0 1) 
      "_close" 
    ) 
) 
    (princ) 
) 
+0

감사합니다. 매우 도움이된다! –