cadm0211 发表于 2024-9-28 22:37:55

创建二级标注样式


;新建标注样式-----------------------------------------------------------
(defun c:SDD ()
        ;函数功能:一键创建多个标注样式
       
        (setq XTBL_MingLingTiShi (getvar "cmdecho"))        ;获取当前的普通命令提示状态
        (setvar "cmdecho" 0)                ;不显示普通命令的提示
       
        ;根据需要创建字体样式
        (setq zt_name2 "standard")
        (setq boln (tblsearch "style" zt_name2))
        (if (= boln nil)
                (progn
                        (setq v6 (getvar "textstyle"))                ;获取当前文字样式并记录
                        (command "style" "standard" "gbenor.shx,gbcbig.shx" "0" "1" "0" "N" "N" "N")        ;样式名,字体名,文字高度,宽度因子,倾斜角度,反向显示,颠倒显示,垂直显示
                        (setvar "textstyle" v6)                ;恢复文字样式设置
                );end progn
        );end if
       
        (ff:bzys1)
        (progn (ff:bzys2 1)
                (command "dimtxt"   "3.5"      "dimasz"   "3.5"    ;文字高度                        ;箭头大小
                                          "dimexe"   "1.5"      "dimexo"   "1"   ;尺寸界限超出长度                ;尺寸界限起点距离:0.5
                                          "dimgap"   "0.625"      "dimtoh"   "off"    ;标注文字周围的距离            ;文字在尺寸界线外的位置:关   
                                          "dimtih"   "OFF"             ;标注文字在尺寸界线内的位置:    ;关,   
                                          "DIMDLI"   "7"      "DIMATFIT"   "3"      ;控制基线标注中尺寸线的间距:    ;当尺寸界线不足放下标注文字和箭头时,函数DIMATFIT确定位置
                                          "DIMTAD"   "1"         "DIMDEC"   "0"      ;控制文字相对尺寸线的垂直位置,;小数位数:0         
                                          "DIMJUST""0"         "DIMDSEP"    "."      ;控制标注文字的水平位置:0,   ;小数分隔符为 .
                                          "DIMTOFL""ON"         "dimtmove"   "0"      ;控制标注文字在尺寸界线外的位置:;关对齐,设置标注文字的移动规则:0 水平
                                          "dimcen"   "0"         "dimclrd"    "4"      ;标注圆心:不标,                ;为尺寸线、箭头和标注引线指定颜色:3
                                          "dimclre""4"         "DIMCLRT"    "2"   ;为尺寸界线指定颜色            ;为标注文字指定颜色
                                          "DIMSAH"   "0"       "DIMBLK"   ""   ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块 ;箭头:实心闭合                        
                                          "DIMLDRBLK""_DOTSMALL" "DIMFXLON" "OFF"   ;箭头引线小点      ;固定的尺寸界线长度: OFF关闭
                                          "DIMSCALE""1"       "DIMTXSTY""Standard"    ;全局比例               ;文字样式
                                          "-DIMSTYLE" "s" "Standard")
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "-dimstyle" "s" "Standard$0")   ;线性样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimtoh"   "on" "dimtih"   "on"             ;文字在尺寸界线外的位置:开 ;标注文字在尺寸界线内的位置:    ;开,   
                                          "-dimstyle" "s" "Standard$2")   ;角度样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimtih"   "off"             ;标注文字在尺寸界线内的位置:    ;关,点标记模式:关
                                          "-dimstyle" "s" "Standard$3")   ;直径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"-dimstyle" "s" "Standard$4")      ;半径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "DIMCLRE"    "8"   ;为尺寸界线指定颜色: 8
                                          "-dimstyle" "s" "Standard$6")      ;坐标样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimclrd"   "8" "DIMLDRBLK""_DOTSMALL";为尺寸线、箭头和标注引线指定颜色:8;箭头引线小点
                                       "-dimstyle" "s" "Standard$7")      ;引线及公差样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
        )
        (progn (ff:bzys2 1)
                (command "dimtxt"   "3.5"      "dimasz"   "3.5"    ;文字高度                        ;箭头大小
                                          "dimexe"   "1.5"      "dimexo"   "1"   ;尺寸界限超出长度                ;尺寸界限起点距离:0.5
                                          "dimgap"   "0.625"      "dimtoh"   "off"    ;标注文字周围的距离            ;文字在尺寸界线外的位置:关   
                                          "dimtih"   "OFF"            ;标注文字在尺寸界线内的位置:    ;关,      
                                          "DIMDLI"   "7"      "DIMATFIT"   "3"      ;控制基线标注中尺寸线的间距:    ;当尺寸界线不足放下标注文字和箭头时,函数DIMATFIT确定位置
                                          "DIMTAD"   "1"         "DIMDEC"   "0"      ;控制文字相对尺寸线的垂直位置,;小数位数:2         
                                          "DIMJUST""0"         "DIMDSEP"    "."      ;控制标注文字的水平位置:0,   ;小数分隔符为 .
                                          "DIMTOFL""ON"         "dimtmove"   "0"      ;控制标注文字在尺寸界线外的位置:;关对齐,设置标注文字的移动规则:0 水平
                                          "dimcen"   "0"         "dimclrd"    "4"      ;标注圆心:不标,                ;为尺寸线、箭头和标注引线指定颜色:4
                                          "dimclre""4"         "DIMCLRT"    "2"   ;为尺寸界线指定颜色            ;为标注文字指定颜色
                                          "DIMSAH"   "0"       "DIMBLK"   ""   ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块 ;箭头:实心闭合                        
                                       "DIMLDRBLK""_DOTSMALL" "DIMFXLON" "OFF"   ;箭头引线小点      ;固定的尺寸界线长度: OFF关闭
                                          "DIMSCALE""1"       "DIMTXSTY""Standard"    ;全局比例               ;文字样式
                                          "DIMSTYLE" "S" "机械制图")
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"-dimstyle" "s" "机械制图$0")   ;线性样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"dimtoh"   "on" "dimtih"   "on"            ;文字在尺寸界线外的位置:开 ;标注文字在尺寸界线内的位置:   
                                          "-dimstyle" "s" "机械制图$2")   ;角度样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimtih"   "off"             ;标注文字在尺寸界线内的位置:    ;关,
                                          "-dimstyle" "s" "机械制图$3")   ;直径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"-dimstyle" "s" "机械制图$4")      ;半径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "DIMCLRE"    "8"   ;为尺寸界线指定颜色: 8
                                          "-dimstyle" "s" "机械制图$6")      ;坐标样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimclrd"   "8" "DIMLDRBLK""_DOTSMALL";为尺寸线、箭头和标注引线指定颜色:8;箭头引线小点
                                          "-dimstyle" "s" "机械制图$7")      ;引线及公差样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
        )
        (progn (ff:bzys2 1)
                (command "dimtxt"   "3.5"      "dimasz"   "1"    ;文字高度                        ;箭头大小
                                          "dimexe"   "1.5"      "dimexo"   "1"   ;尺寸界限超出长度                ;尺寸界限起点距离:0.5
                                          "dimgap"   "0.625"      "dimtoh"   "off"    ;标注文字周围的距离            ;文字在尺寸界线外的位置:关   
                                          "dimtih"   "OFF"             ;标注文字在尺寸界线内的位置:    ;关,   
                                          "DIMDLI"   "7"      "DIMATFIT"   "3"      ;控制基线标注中尺寸线的间距:    ;当尺寸界线不足放下标注文字和箭头时,函数DIMATFIT确定位置
                                          "DIMTAD"   "1"         "DIMDEC"   "0"      ;控制文字相对尺寸线的垂直位置,;小数位数:0         
                                          "DIMJUST""0"         "DIMDSEP"    "."      ;控制标注文字的水平位置:0,   ;小数分隔符为 .
                                          "DIMTOFL""ON"         "dimtmove"   "0"      ;控制标注文字在尺寸界线外的位置:;关对齐,设置标注文字的移动规则:0 水平
                                          "dimcen"   "0"         "dimclrd"    "4"      ;标注圆心:不标,                ;为尺寸线、箭头和标注引线指定颜色:3
                                          "dimclre""4"         "DIMCLRT"    "2"   ;为尺寸界线指定颜色            ;为标注文字指定颜色
                                          "DIMSAH"   "0"   "DIMBLK""_ARCHTICK"   ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块;箭头:建筑标记      
                                          "DIMLDRBLK""_DOTSMALL" "DIMFXLON" "OFF"   ;箭头引线小点      ;固定的尺寸界线长度: OFF关闭
                                          "DIMSCALE""1"       "DIMTXSTY""Standard"    ;全局比例               ;文字样式
                                          "DIMSTYLE" "S" "建筑制图")
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"-dimstyle" "s" "建筑制图$0")   ;线性样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimtoh"   "on" "dimtih"   "on"            ;文字在尺寸界线外的位置:开 ;标注文字在尺寸界线内的位置:    ;开,   
                                          "-dimstyle" "s" "建筑制图$2")   ;角度样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimtih"   "off"             ;标注文字在尺寸界线内的位置:    ;关,
                                          "-dimstyle" "s" "建筑制图$3")   ;直径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command"-dimstyle" "s" "建筑制图$4")      ;半径样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "DIMCLRE"    "8"   ;为尺寸界线指定颜色: 8
                                       "-dimstyle" "s" "建筑制图$6")      ;坐标样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
                      (command "dimclrd"   "8" "DIMLDRBLK""_DOTSMALL";为尺寸线、箭头和标注引线指定颜色:8;箭头引线小点
                                       "-dimstyle" "s" "建筑制图$7")      ;引线及公差样式
                      (while (/= (getvar 'CMDACTIVE) 0)(command "y"))
        )
        ;(if (= n 0)
        ;        (alert "当前文档已包含所有标注样式,不需要再次创建!")
        ;        (progn
        ;                                        ;将标注样式“机械制图”置为当前
        ;                (alert (strcat "成功创建" (rtos n 2 0) "个标注样式"))
        ;        )
        ;)
        (command "DIMSTYLE" "R" "机械制图")
        (setvar "cmdecho" XTBL_MingLingTiShi)         ;恢复普通命令提示原来的显示状态
        (princ)       
)

(defun ff:bzys1()
        ;***************尺寸线相关变量***************
        (setvar "DIMCLRD" 256)        ;尺寸线的颜色,256表示ByLayer
        (setvar "DIMLTYPE" "ByLayer")        ;尺寸线的线型ByLayer
        (setvar "DIMLWD" -1)        ;尺寸线的线宽,-1表示ByLayer
        (setvar "DIMDLE" 0)                ;尺寸线超出标记,设为0
        (setvar "DIMDLI" 0.5)        ;尺寸线基线间距,设为0.5
        (setvar "DIMSD1" 0)                ;隐藏尺寸线1,0表示取消勾选,1表示勾选
        (setvar "DIMSD2" 0)                ;隐藏尺寸线2,0表示取消勾选,1表示勾选
       
        ;***************尺寸界线相关变量***************
        (setvar "DIMCLRE" 256)        ;尺寸界线的颜色,256表示ByLayer
        (setvar "DIMLTEX1" "ByLayer")        ;尺寸界线1的线型ByLayer
        (setvar "DIMLTEX2" "ByLayer")        ;尺寸界线2的线型ByLayer
        (setvar "DIMLWE" -1)        ;尺寸界线的线宽,-1表示ByLayer
        (setvar "DIMEXE" 1)                ;尺寸界线超出尺寸线量,1
        (setvar "DIMEXO" 0.5)                ;尺寸界线的起点偏移量,0.5
        (setvar "DIMFXLON" 0)        ;已启用固定的尺寸界线,1表示ON开启,0表示OFF关闭
        (setvar "DIMFXL" 3)                ;固定的尺寸界线长度设为3
        (setvar "DIMSE1" 0)                ;隐藏尺寸界线1,0表示取消勾选,1表示勾选
        (setvar "DIMSE2" 0)                ;隐藏尺寸界线2,0表示取消勾选,1表示勾选
       
        ;***************符号和箭头相关变量***************
        ;(setvar "DIMBLK" "")                ;设置尺寸线末端显示的箭头块。
        (setvar "DIMSAH" 0)                        ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块
        (setvar "DIMBLK1" "")                ;第一个箭头的样式
        (setvar "DIMBLK2" "")                ;第二个箭头的样式
        ;(setvar "DIMLDRBLK" "_DOTSMALL")                ;引线箭头的样式
        ;=====dimblk取值如下
        ;"" 实心闭合
        ;"_DOT" 点
        ;"_DOTSMALL" 小点
        ;"_DOTBLANK" 空心点
        ;"_ORIGIN" 指示原点
        ;"_ORIGIN2" 指示原点 2
        ;"_OPEN" 打开
        ;"_OPEN90" 直角
        ;"_OPEN30" 30 度角
        ;"_CLOSED" 闭合
        ;"_SMALL" 空心小点
        ;"_NONE" 无
        ;"_OBLIQUE" 倾斜
        ;"_BOXFILLED" 填充框
        ;"_BOXBLANK" 框
        ;"_CLOSEDBLANK" 空心闭合
        ;"_DATUMFILLED" 实心基准三角形
        ;"_DATUMBLANK" 基准三角形
        ;"_INTEGRAL" 完整标记
        ;"_ARCHTICK" 建筑标记
        (setvar "DIMASZ" 2)                ;箭头大小,2
        (setvar "DIMCEN" 0.5)        ;圆形标记大小,设为0时表示无圆心标记,设为-1时表示“直线”标记
        (setvar "DIMARCSYM" 0)                ;弧长符号。设为0表示勾选“标注文字的前缀”。设为1表示勾选“标注文字的上方”。设为2表示勾选“无”。
        ;;;        (setvar "DIMJOGANG" 45)                ;半径折弯标注-折弯角度
       
        ;***************文字相关变量***************
        (setvar "DIMTXSTY" "standard")                ;文字样式
        (setvar "DIMCLRT" 2)                ;文字颜色,256表示ByLayer
        (setvar "DIMTFILL" 0)                ;文字填充颜色。设为0表示“无”,设为1表示“背景”,设为2表示引用变量DIMTFILLCLR的值
        (setvar "DIMTFILLCLR" 256)                ;文字背景颜色。当变量DIMTFILL的值设为2时此值可显示效果
        (setvar "DIMTXT" 2.5)                ;文字高度
        (setvar "DIMTAD" 1)                ;文字位置-垂直,0表示居中,1表示上,2表示外部,3表示JIS,4表示下
        (setvar "DIMJUST" 0)                ;文字位置-水平,0表示居中,1表示第一条尺寸界线,2表示第二条尺寸界线,3表示第一条尺寸界线上方,4表示第二条尺寸界线上方
        (setvar "DIMTXTDIRECTION" 0)        ;指定标注文字的阅读方向。0表示从左到右,1表示从右到左。
        (setvar "DIMGAP" 0.5)        ;文字位置-从尺寸线偏移量
        (setvar "DIMTIH" 0)        ;控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置。0表示将文字与尺寸线对齐,1表示水平绘制文字。
        (setvar "DIMTOH" 0)        ;控制标注文字在尺寸界线外的位置。0表示将文字与尺寸线对齐,1表示水平绘制文字。
        (setvar "DIMTIX" 0)                ;对于半径标注和直径标注,启用 DIMTIX 可始终强制将标注文字放置在圆或圆弧外部
        (setvar "DIMSOXD" 0)        ;如果尺寸界线内没有足够的空间,则隐去箭头。0表示显示箭头,1表示隐藏箭头。如果 DIMTIX 设定为关,则 DIMSOXD 不起作用。
       
        ;***************调整相关变量***************
        (setvar "DIMATFIT" 3)        ;如果尺寸界线之间没有足够空间放置文字和箭头,那么首先从中移出:0表示文字和箭头,1表示箭头,2表示文字,3表示文字或箭头(最佳效果)
        (setvar "DIMTMOVE" 0)        ;文字不在默认位置上时,将其放置在:0表示“尺寸线旁边”,1表示“尺寸线上方,带引线”,2表示“尺寸线上方,不带引线”
        (setvar "DIMSCALE" 1)        ;标注特征比例,0表示勾选“将标注缩放到布局”,大于0的数字表示勾选“使用全局比例,数字表示全局比例的值”
        (setvar "DIMTOFL" 0)        ;控制是否在尺寸界线之间绘制尺寸线,0表示取消勾选“在尺寸界线之间绘制尺寸线”,1表示勾选“在尺寸界线之间绘制尺寸线”
       
        ;***************主单位相关变量***************
        (setvar "DIMLUNIT" 2)        ;线性标注-单位格式,1表示科学,2表示小数,3表示工程,4表示建筑,5表示分数,6表示Windows桌面
        (setvar "DIMDEC" 0)        ;线性标注-精度,0表示取整,1-8表示x位小数
        (setvar "DIMDSEP" ".")        ;线性标注-小数分隔符,有3个值可选:"."","" "
        (setvar "DIMRND" 0)        ;线性标注-舍入
        (setvar "DIMPOST" "")        ;线性标注-为标注测量值指定文字前缀或后缀(或两者),""表示空。使用 <> 指示文字相对于标注值的位置。例如,输入 <>mm 可将 5.0 毫米的半径标注显示为“5.0mm”。如果输入 mm <>,标注将显示为“mm 5.0”。
       
        (setvar "DIMZIN" 8)        ;线性标注-消零,0表示消除0英尺和0英寸,8表示消除后续的零
        (setvar "DIMAUNIT" 0)        ;角度标注-单位格式,0表示十进制度数,1表示度分秒,2表示百分度,3表示弧度
        (setvar "DIMADEC" 1)        ;角度标注-精度,0表示取整,1-8表示x位小数
        (setvar "DIMAZIN" 2)        ;线性标注-消零,0表示都不勾选,1表示勾选“前导”,2表示勾选“后续”,3表示同时勾选“前导”和“后续”
)


(defun ff:bzys2(BLYZ /)
        ;***************主单位相关变量***************
        (setvar "DIMLFAC" BLYZ)        ;测量单位比例-比例因子
)
(c:SDD);注意这个SDD和输入命令要保持一致

;=========换算单位和公差相关的系统变量如下,供自定义参考

;公差位置垂直      DIMTOLJ      0
;公差文字比例因子      DIMTFAC      1
;公差极限偏差      DIMTOL      关
;公差极限偏差上限      DIMTP      0
;公差极限偏差下限      DIMTM      0
;公差消零      DIMTZIN      8
;公差界限      DIMLIM      关
;公差精度      DIMTDEC      2
;换算公差消零      DIMALTTZ      0
;换算公差精度      DIMALTTD      3
;换算前缀和后缀      DIMAPOST      
;换算单位      DIMALTU      2
;换算比例因子      DIMALTF      0
;换算消零      DIMALTZ      0
;换算精度      DIMALTD      3
;换算舍入      DIMALTRND      0
;换算零后缀      DIMALTMZS      
;换算零因子      DIMALTMZF      100

vlisp2012 发表于 2024-9-29 12:17:28

多谢分享!

寒潮大冬瓜 发表于 2024-9-29 15:47:32

很好→很棒!很好~很棒!!很好……很棒!!!字体创建→建议结合自己电脑里字体的路径→容易成功创建!

伍星 发表于 2024-9-29 20:47:49

哇,备注的好详细

paulpipi 发表于 2024-9-29 21:41:44

感谢分享,辛苦了

jkop 发表于 2024-9-30 17:26:45

说明仔细,可以列为教学范例,收藏!

XPG 发表于 2024-10-1 05:03:14

感谢分享。
页: [1]
查看完整版本: 创建二级标注样式