永发信息网

在AUTOCAD中如何用lisp语言新建一个标注样式

答案:3  悬赏:50  手机版
解决时间 2021-03-24 13:46
在AUTOCAD中如何用lisp语言新建一个标注样式
最佳答案
标注样式要先建立字体样式。
如果箭头没有块的话,要建立块。
;;;主程序标注样式
(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"两个字体】
全部回答
直接使用ddim命令不是很方便吗?
(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)
)
)
)
)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
.Please make my excuse at tomorrows meetin
物业有权在公共道路上私设车位收费吗
盗墓笔记好看吗,盗墓之王好看吗
牡丹艺术绣庄在什么地方啊,我要过去处理事情
庆铃五十铃国四柴油皮卡转速传感器到仪表板开
请问,这个小学生四则运算用vb怎么编程,范围
最文艺的生日祝福语,文艺诗词祝福语
单选题一个正方形利用平行投影后得到的图形是
铝锡钢铁铜不同的是
泗洪最大的螃蟹有多重
“逆势上扬”用英文怎么说
2012年polo1.4排量开空调能要多少钱一公里
翠英百货地址有知道的么?有点事想过去
班级团结协作的句子,关于团结协作的名言警句
推拉门的钢化玻璃3c标志是什么颜色的,我家是
推荐资讯
好友聊天经典句子,适合聊天的幽默句子
工业氯化钾有什么作用,氯化钾是什么药
有一首男声的歌,歌词高潮部分中you wanna sa
谁能破解2010年高考语音指令系统(软件)的密
求。。。电影囡。囡完整版
怎样重拾对学习的兴趣?
雪佛兰车展团队口号,请问奥迪在一次车展上发
送爸爸什么茶叶好
钱的传说简介(大约100字左右)
什么是单句?
follow的过去式是什么
asp.net(C#) dropDownList初始值的问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?