靖江郊仓人力资源有限公司

歡迎光臨深圳市凱迪賢模具有限公司官網(wǎng)!
0755-26825352
18948189678
CAD中自動(dòng)畫(huà)管線圖的LISP程序

/ 2021/6/5 10:43:45

  畫(huà)一些管路原理圖時(shí),當(dāng)代表不同管路的直線在圖中相交時(shí),需將在交點(diǎn)處的某一直線斷開(kāi),再用一半圓連接兩斷點(diǎn),使用下面這個(gè)LISP編寫(xiě)程序,只用鍵入"brel"的命令,其它的就由電腦去完成了。

  程序中使用"break"命令截?cái)嘈枰粩嚅_(kāi)的管線,再用"arc"命令畫(huà)一半圓連接兩斷點(diǎn)。變量p讀取管線交點(diǎn);p1、p2為點(diǎn)p的左右或上下兩點(diǎn);p3為連接p1、p2半圓的中點(diǎn)。由于使用"break"命令時(shí)若AUTOCAD環(huán)境處于對(duì)象捕捉方式OSMODE≠0),則"break"命令截?cái)嗟膒1、p2兩點(diǎn)可能為變?yōu)閜1、p2附近的捕捉點(diǎn)。所以程序開(kāi)始時(shí)用變量myosmode記錄系統(tǒng)變量OSMODE,而后設(shè)置OSMODE為0,程序結(jié)束后再設(shè)置還原OSMODE。變量horn判斷用戶需要斷開(kāi)的是水平線還是垂直線。

(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.")


服務(wù)熱線

0755-26825352

企業(yè)微信銷(xiāo)售咨詢

新巴尔虎左旗| 申扎县| 崇州市| 麻城市| 呼图壁县| 敦煌市| 名山县| 故城县| 徐州市| 开封县| 荣昌县| 安丘市| 张家口市| 穆棱市| 怀仁县| 湖口县| 偏关县| 马龙县| 凤庆县| 康保县| 晋州市| 花莲市| 元谋县| 平江县| 广南县| 南郑县| 三亚市| 武邑县| 昂仁县| 靖宇县| 延安市| 桑植县| 含山县| 泸溪县| 沂南县| 任丘市| 行唐县| 河东区| 遂宁市| 茶陵县| 钦州市|