您當(dāng)前的位置:主頁(yè)>>AutoCAD>>AutoCAD二次開(kāi)發(fā)  
           工程圖中標(biāo)注序號(hào)的LISP程序

    在工程設(shè)計(jì)工作中,經(jīng)常要對(duì)設(shè)備、零件等標(biāo)注序號(hào)。根據(jù)標(biāo)準(zhǔn)化要求,在標(biāo)注點(diǎn)處要加上實(shí)心小圓點(diǎn),然后引出直線(xiàn) ;在另一端畫(huà)出一個(gè)8~10mm的圓 ;在圓中寫(xiě)上所標(biāo)注的序號(hào)文字。用AutoCAD基本命令完成上述工作費(fèi)工費(fèi)時(shí),并且不易修改,特別是在圖形密集處,效果很不理想,圖面質(zhì)量差。 

  我們利用AutoLISP語(yǔ)言編制了BXH.LSP(標(biāo)序號(hào)),很好地解決了以上問(wèn)題,該程序?yàn)锳utoCAD增加了一條BXH命令,可方便地在圖紙中標(biāo)注序號(hào),并且如果修改或刪除標(biāo)注也十分方便,工效提高十倍以上。根據(jù)該程序的編制原理,可演繹出使用在機(jī)械制圖中標(biāo)注序號(hào),標(biāo)注焊接符號(hào)等程序。

  BXH.LSP源程序如下:

  ;--------------------------- 

 (defun C:Bxh (/ p1 p2 p3 1 ang 1 bx bxh radi txth) ;標(biāo)序號(hào)

  (setq radi 5) ;圓圈半徑

  (setq txth 5) ;字高

  (if (not bx) (setq bx 1))

  (setq p1 (getpoint "\n請(qǐng)選擇起點(diǎn):")) ;在零件上選一點(diǎn)

  (setq p2 (getpoint "\n請(qǐng)選擇第二點(diǎn)或回車(chē)表示無(wú)第二點(diǎn)")) ;標(biāo)注位置處一點(diǎn)

  (setq bxh (getint (gstr "\n請(qǐng)輸入序號(hào)" bx))) ;序號(hào)數(shù)

  (if bxh (setq bx bxh))

  (cond (p2

   (command "layer" "set" 2 " ") ;改到畫(huà)細(xì)線(xiàn)圖層

   (setq ang 1 (angle p1 p2))

   (setq p3 (polar p1 ang (-(distance p1 p2) radi))) ;畫(huà)圓、線(xiàn)

   (command "pline"

   (polar p1 ang 1 0.25)

   "w" 0.5 0,5 "A" "CE"p1"A"359.9"L""W"0 0 p3"")

   (command"circle"p2 radi)

   (command "layer" "set" 6 " " ;改到寫(xiě)文字圖層

   "text" "J" "M" p2 txth 0 bx) ;寫(xiě)文字

  )

   ((not p2) ;如果在零件中直接標(biāo)注

   (command "layer" "set" 2 " ") ;改到畫(huà)細(xì)線(xiàn)圖層

   (Command "circle" p1 radi) ;畫(huà)圓

   (command "layer" "set" 6 " " ;改到寫(xiě)文字圖層

   "text" "J" "M" p1 txth 0 bx) ;寫(xiě)文字

   )

  )

  (setq bx (+ bx 1))

  (princ)

 )

  ;-----------------------

  程序的使用方法,在Command:提示符下,鍵入(Load"BXH")回車(chē)后再鍵入BXH,然后按屏幕提示輸入對(duì)應(yīng)項(xiàng)即可。因?yàn)檫@個(gè)命令經(jīng)常使用,建議把它裝在菜單文件,在ACAD.MNU適當(dāng)位置中加入一項(xiàng):

  標(biāo)序號(hào)]^c^c(LOAD "BXH") ;BXH ;用鼠標(biāo)點(diǎn)取最為方便。

民眾工作室.制作      版權(quán)所有