" />

我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD教程 > CAD教程文章

CAD里面自動畫管線圖地LISP程序

時間:2008-08-18 12:56:34 來源:
畫一些管路原理圖時,當代表不同管路的直線在圖中相交時,需將在交點處的某一直線斷開,再用一半圓連接兩斷點,使用下面這個LISP編寫的程序,只用鍵入"brel"的命令,其它的就由電腦去完成了。

  程序中使用"break"命令截斷需要被斷開的管線,再用"arc"命令畫一半圓連接兩斷點。變量p讀取管線交點;p1、p2為點p的左右或上下兩點;p3為連接p1、p2半圓的中點。由于使用"break"命令時若AUTOCAD環境處于對象捕捉方式(OSMODE≠0),則"break"命令截斷的p1、p2兩點可能為變為p1、p2附近的捕捉點。所以程序開始時用變量myosmode記錄系統變量OSMODE,而后設置OSMODE為0,程序結束后再設置還原OSMODE。變量horn判斷用戶需要斷開的是水平線還是垂直線。

(defun c:brel(/myosmode horv p p1 p2 p3)
 (setq myosmode (getvar "OSMODE"))
 (setvar "OSMODE" 0)
 (setq p (getpoint "nSelect point to break:"))
 (initget 1 "H V")
 (setq horv (getkword " Direction[H/V]?"))
 (if (= horv "H")
  (progn
   (setq p1 (list (- (car p) 1.5) (cadr p)))
   (setq p2 (list (+ (car p) 1.5) (cadr p)))
   (setq p3 (list (car p) (+ (cadr p) 1.5)))
  )
  (progn
   (setq p1 (list (car p) (- (cadr p) 1.5)))
   (setq p2 (list (car p) (+ (cadr p) 1.5)))
   (setq p3 (list (+ (car p) 1.5) (cadr p)))
  )
 )
 (command "break" p1 p2)
 (command "arc" p1 p3 p2)
 (setvar "OSMODE" myosmode)
 (princ)
)
(princ "nStart command with brel which will break a line and join it with an arc.")