在AUTOCAD中如何用lisp語言標註樣式

時間 2021-06-11 15:20:59

1樓:朱正偉

標註樣式要先建立字型樣式。

如果箭頭沒有塊的話,要建立塊。

;;;主程式標註樣式

(defun textdim ()

(tssd2)

(if (null (tblsearch "dimstyle" "tssd_50_50-250"));1

(progn

(if (null (tblobjname "block" "_archtick"))

(progn

(entmake (list '(0 . "block") '(100 . "acdbentity") '(67 .

 0) '(8 . "0") '(100 . "acdbblockbegin") '(70 .

 0) '(10 0.0 0.0 0.

0) '(2 . "_archtick") '(1 . "")))

(entmake (list '(0 . "lwpolyline") '(100 . "acdbentity") '(67 .

 0) '(8 . "0") '(62 . 0) '(6 .

 "byblock") '(100 . "acdbpolyline") '(90 . 2) '(43 .

 0.15) '(10 -0.5 -0.

5 0.0) '(10 0.5 0.

5 0.0) '(210 0.0 0.

0 1.0)))

(entmake (list '(0 . "endblk")))

(entupd (tblobjname "block" "_archtick"))))

(entmake (list '(0 . "dimstyle")

'(100 . "acdbsymboltablerecord")

'(100 . "acdbdimstyletablerecord")

'(70 . 0)

'(2 . "tssd_50_50-250")   ; 標註樣式名

'(3 . "")        ; 標註字首

'(4 . "")

'(40 . 0.0)       ; 標註特徵比例,縮放到布局

'(41 . 60)        ; 箭頭尺寸

'(42 . 50)        ; 起點偏移量

'(43 . 0)         ; 基線間距

'(44 . 0)         ; 超出尺寸線

'(47 . 0.000)     ; 上偏差

'(48 . 0.000)     ; 下偏差

'(71 . 0)         ; 公差無

'(73 . 0)         ;設定對齊或水平的內部文字

'(74 . 0)         ;設定外部文字對齊或水平

'(77 . 2)         ; 文字在尺寸線外部

'(140 . 230)      ; 文字高度

'(141 . 0)        ; 圓心標記

'(142 . 0)        ;箭頭斜線的大小

'(144 . 1.0)      ; 測量比例單位

'(146 . 0.5)      ; 公差高度比例

'(147 . 60)       ; 文字從尺寸線偏移

'(172 . 2)        ; 尺寸界線間連線

'(173 . 0)        ; 繪製箭頭的使用者定義塊

'(174 . 4)        ; 限制文字在延伸線間

'(176 . 256)      ; 隨層

'(177 . 256)      ; 隨層

'(178 . 256)      ; 隨層

'(271 . 0)        ; 尺寸標註精度

'(272 . 3)        ; 公差標註精度

'(275 . 0)        ; 角度標註制式,十進位制。

'(280 . 0)        ;確定文字的水平位置

'(283 . 1)        ;dimtolj 通用 設定公差文字的豎向位置

'(288 . 0)        ;手動放置尺寸

'(279 . 2)        ;文字移動;

(cons 340 (tblobjname "style" "tssd_dimension")) ; 文字樣式名

(cons 342 (cdr (assoc 330 (entget (tblobjname "block" "_archtick")))));;;dimblk:))

)));建立tssd_dimension字型

(defun tssd2 ( / newt)

(if (null (tblsearch "style" "tssd_dimension"))

(progn

(if (null vlax-dump-object) (vl-load-com) )

(setq newt (vla-add (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object))) "tssd_dimension"))

(vla-put-fontfile newt "tssdeng.shx")

(vla-put-bigfontfile newt "hztxt.shx");大字型為hztxt

(vla-put-height newt 0);高度0

(vla-put-width newt 0.5);寬度因子0.6

(vla-put-obliqueangle newt (/ (* pi 3) 180));傾斜角度3))

);【注意:字型庫裡面必需有"tssdeng.shx""hztxt.shx"兩個字型】

2樓:匿名使用者

(setq

etmkrtn (entmake (list(cons 0 "dimstyle")

(cons 100 "acdbsymboltablerecord")(cons 100 "acdbdimstyletablerecord")

(cons 2 "sdimstyle_by_chen")(cons 5 "_archtick")

(cons 6 "_archtick")

(cons 7 "_archtick")

(cons 40 0.01)

(cons 41 120.0)

(cons 42 200.0)

(cons 43 200.0)

(cons 44 200.0)

(cons 45 10.0)

(cons 70 0)

(cons 73 0)

(cons 74 0)

(cons 77 1)

(cons 78 12)

(cons 140 280.0)

(cons 141 1.0)

(cons 143 1.0)

(cons 144 100.0)

(cons 145 1.6667)

(cons 146 0.1667)

(cons 147 100.0)

(cons 171 0)

(cons 172 1)

(cons 173 1)

(cons 174 1)

(cons 176 256)

(cons 177 256)

(cons 178 3)

(cons 274 0)

(cons 284 12)

(cons 285 12)

(cons 286 12)

(cons 340 dltxt)))))

3樓:

直接使用ddim命令不是很方便嗎?

autocad二次開發,如何使用lisp建立乙個標註樣式?

4樓:匿名使用者

;;;新建標註樣式"tssd_100_100"

(defun ddstyle ( / sc)

(setq sc 1)

;;(setq sc (cdr (assoc 18 data))) ;繪圖比例

(setvar "cmdecho" 0)

(setvar "dimclrd" 0) ;為尺寸線、箭頭和標註引線指定顏色

(setvar "dimclre" 0) ;為尺寸界線指定顏色

(setvar "dimclrt" acwhite) ;為標註文字指定顏色

(setvar "dimdle" (* sc 100)) ;當使用小斜線代替箭頭進行標註時,設定尺寸線超出尺寸界線的距離(超出標記)

(setvar "dimexe" (* sc 100)) ;指定尺寸界線超出尺寸線的距離

(setvar "dimexo" (* sc 250)) ;起點偏移量

(setvar "dimblk" "_archtick") ;箭頭(建築標記)

(setvar "dimasz" (* sc 100)) ;控制尺寸線和引線箭頭的大小。並控制基線的大小

;;(setvar "dimcen" 0) ;圓心標記-無

;;(setvar "dimarcsym" 0) ;弧長符號-前輟

;;(setvar "dimjogang" (* sc 45)) ;折彎角度

(setvar "dimtxsty" "tssd_dimension") ;指定標註的文字樣式

(setvar "dimtxt" (* sc 300)) ;指定標註文字的高度

(setvar "dimtad" 1) ;文字垂直位置(上方)

(setvar "dimjust" 0) ;文字水平位置(居中)

;;(setvar "dimtih" "off") ;線內文字對齊(與尺寸線對齊)

;;(setvar "dimtoh" "off") ;線外文本對齊(與尺寸線對齊)

(setvar "dimgap" (* sc 100)) ;文字從尺寸線偏移

;;(setvar "dimtix" "on") ;文字始終保持在尺寸界線之間

(setvar "dimtmove" 2) ;文字不在預設位置時,放在 尺寸線上方,不加引線

(setvar "dimscale" 1) ;全域性比例

;;(setvar "dimtofl" "on") ;在尺寸線之間繪製尺寸界線

(setvar "dimdec" 0) ;精度

(setvar "dimlfac" 1) ;測量比例因子

(command "-dimstyle" "s" "tssd_100_100" "" "");建立標註樣式)

CAD在圖框裡如何畫圖,AUTOCAD中如何畫圖框???

九廷謙談琬 要麼找個 有圖框的檔,copy進去 要麼就自己畫 然後另存為dwt模板。佈局裡也差不多,只是在佈局裡你還得加視口。 你可以不去考慮圖框啊 列印的時候你可以通過 列印範圍 視窗 來選擇你要列印的範圍,也就是你所說的2500 1200,可以畫兩條線用來捕捉,要注意a3與a4的紙張選擇,還有注...

在html中如何用javascript判斷復羊checkbo是否

樓主是提問是寫錯還是 就這麼寫的?檢查是否選中是checked,不是ckecked。document.getelementbyid checked true 五個爪子抓媽拐 js判斷核取方塊是否選中 html view plain copy備註 1 以上常見判斷在實際開發中經常運用。溫故而知新是一件...

在excel中如何用引用方法做到

沈一民 a1輸入a向下複製到a26.b2 phonetic a 1 a1 向下複製到b26,c1 a1 b1向下複製到c26。或者a1 if row a1 26,if column a1 1,char 64 row a1 if row a1 1 column a1 char 63 column a1...