怎样在LISP中修改标注样式

怎样在LISP中修改标注样式,第1张

新建标注样式"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" "" "")建立标注样式

)

标注样式要先建立字体样式。

如果箭头没有块的话,要建立块。

主程序标注样式

(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"两个字体】


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11307564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存