2017-11-10 256 views
0

有沒有人有AutoLisp例程來快速繪製連接兩條平行線的線。我真的很喜歡類似於圓角命令的東西,除了繪製直線而不是半徑。這幾乎可以通過倒角命令來完成,除了倒角不適用於平行線。畫線用兩條平行線連接兩條平行線的末端

我的工作有時包括偏移大量平行線對,然後用另一條線連接它們以創建矩形。在它們之間劃一條線很容易,但它仍然是一個乏味的過程。

回答

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

非常感謝!很有幫助! –