几年前做了一个,当时水平也低,做的很粗糙,但是用的也没啥问题,在此抛砖引玉,里面有注释,楼主可以根据自己需要修改 (defun fsdb () (if (= (tblsearch "style" "FSDB") nil) (progn (princ "\n建立FSDB字体并设为当前。") (command "style" "FSDB" "fsdb_e.shx,tjhzf.shx" "0" "0.7" "" "" "" ) ) (progn (command "style" "FSDB" "fsdb_e.shx,tjhzf.shx" "0" "0.7" "" "" "" ) ;(command "style" "FSDB" "" "" "" "" "" "") (princ "\n检测到FSDB字体,将其设为当前。") ) ) (princ) ) (defun c:mydim (/ cm) (setq cm (getvar "cmdecho")) ;(setvar "cmdecho" 0) (fsdb) (linestyle) (if (= (tblsearch "dimstyle" "wab") nil) (progn (command "dimstyle" "s" "WAB") (setvar "DIMDSEP" ".") ;小数分隔符 (setvar "DIMADEC" 1) ;角度小数位数 (setvar "DIMALT" 0) ;选定的换算单位 (setvar "DIMALTD" 2) ;换算单位小数位数 (setvar "DIMALTF" 25.4000) ;换算单位比例因子 (setvar "DIMALTRND" 0.0000) ;换算单位舍入值 (setvar "DIMALTTD" 2) ;换算公差小数位数 (setvar "DIMALTTZ" 0) ;换算公差消零 (setvar "DIMALTU" 2) ;换算单位 (setvar "DIMALTZ" 0) ;换算单位消零 (setvar "DIMASZ" 1.500) ;箭头大小 (setvar "DIMATFIT" 3) ;箭头和文字调整 (setvar "DIMAUNIT" 0) ;角度单位格式 (setvar "DIMAZIN" 2) ;角度消零 (setvar "DIMBLK" ".") ;箭头块名 (setvar "DIMBLK1" ".") ;第一个箭头块名 (setvar "DIMBLK2" ".") ;第二个箭头块名 (setvar "DIMCEN" 0.0900) ;圆心标记大小 (setvar "DIMCLRD" 3) ;尺寸线和引线颜色(绿色) (setvar "DIMCLRE" 3) ;尺寸界线颜色(绿色) (setvar "DIMCLRT" 7) ;标注文字颜色(绿色) (setvar "DIMDEC" 1) ;小数位数 (setvar "DIMDLE" 0.0000) ;尺寸线 (setvar "DIMDLI" 0.0000) ;尺寸线间距 (setvar "DIMEXE" 1.5000) ;尺寸界线在尺寸线上 (setvar "DIMEXO" 1.5000) ;尺寸界线原点偏移 (setvar "DIMFRAC" 0) ;分数格式 (setvar "DIMGAP" 0.625) ;尺寸线和文字的间距 (setvar "DIMJUST" 0) ;尺寸线上的文字对正 (setvar "DIMLDRBLK" ".") ;引线块名 (setvar "DIMLFAC" (getvar "DIMLFAC")) ;线性单位比例因子 (setvar "DIMLIM" 0) ;生成标注界限 (setvar "DIMLUNIT" 2) ;线性单位格式 (setvar "DIMLWD" -2) ;尺寸线和引线线宽 (setvar "DIMLWE" -2) ;尺寸界线线宽 (setvar "DIMRND" 0.0000) ;舍入值 (setvar "DIMSAH" 0) ;独立的箭头块 (setvar "DIMSCALE" (getvar "dimscale")) ;全局比例因子 (setvar "DIMSD1" 0) ;隐藏第一条尺寸线 (setvar "DIMSD2" 0) ;隐藏第二条尺寸线 (setvar "DIMSE1" 0) ;隐藏第一条尺寸界线 (setvar "DIMSE2" 0) ;隐藏第二条尺寸界线 (setvar "DIMSOXD" 0) ;隐藏外侧尺寸线 (setvar "DIMTAD" 1) ;文字位于尺寸线上方 (setvar "DIMTDEC" 1) ;公差小数位数 (setvar "DIMTFAC" 1.0000) ;公差文字高度比例因子 (setvar "DIMTIH" 0) ;尺寸界线内侧的文字水平放置 (setvar "DIMTIX" 1) ;将文字放置于尺寸界线内侧 (setvar "DIMTM" 0.0000) ;下偏差 (setvar "DIMTMOVE" 2) ;文字移动 (setvar "DIMTOFL" 0) ;强制在尺寸界线内侧画尺寸线 (setvar "DIMTOH" 0) ;外侧文字水平放置 (setvar "DIMTOL" 0) ;公差标注 (setvar "DIMTOLJ" 1) ;公差垂直对齐 (setvar "DIMTP" 0.0000) ;上偏差 (setvar "DIMTSZ" 0.0000) ;标记大小 (setvar "DIMTVP" 0.0000) ;文字垂直位置 (setvar "DIMTXSTY" "FSDB") ;文字样式 (setvar "DIMTXT" 2.500) ;文字高度 (setvar "DIMTZIN" 0) ;公差消零 (setvar "DIMUPT" 0) ;用户定位的文字 (setvar "DIMZIN" 8) ;消零 (princ "\n已新建标注样式WAB,该样式符合重庆院标准,默认全局比例为1,修改比例请输入DIMSCALE。") ) (progn ;;; (command "dimstyle" "s" "WAB") (setvar "DIMDSEP" ".") ;小数分隔符 (setvar "DIMADEC" 1) ;角度小数位数 (setvar "DIMALT" 0) ;选定的换算单位 (setvar "DIMALTD" 2) ;换算单位小数位数 (setvar "DIMALTF" 25.4000) ;换算单位比例因子 (setvar "DIMALTRND" 0.0000) ;换算单位舍入值 (setvar "DIMALTTD" 2) ;换算公差小数位数 (setvar "DIMALTTZ" 0) ;换算公差消零 (setvar "DIMALTU" 2) ;换算单位 (setvar "DIMALTZ" 0) ;换算单位消零 (setvar "DIMASZ" 1.5000) ;箭头大小 (setvar "DIMATFIT" 3) ;箭头和文字调整 (setvar "DIMAUNIT" 0) ;角度单位格式 (setvar "DIMAZIN" 2) ;角度消零 (setvar "DIMBLK" ".") ;箭头块名 (setvar "DIMBLK1" ".") ;第一个箭头块名 (setvar "DIMBLK2" ".") ;第二个箭头块名 (setvar "DIMCEN" 0.0900) ;圆心标记大小 (setvar "DIMCLRD" 3) ;尺寸线和引线颜色(绿色) (setvar "DIMCLRE" 3) ;尺寸界线颜色(绿色) (setvar "DIMCLRT" 7) ;标注文字颜色(绿色) (setvar "DIMDEC" 1) ;小数位数 (setvar "DIMDLE" 0.0000) ;尺寸线 (setvar "DIMDLI" 0.0000) ;尺寸线间距 (setvar "DIMEXE" 1.5000) ;尺寸界线在尺寸线上 (setvar "DIMEXO" 1.5000) ;尺寸界线原点偏移 (setvar "DIMFRAC" 0) ;分数格式 (setvar "DIMGAP" 0.625) ;尺寸线和文字的间距 (setvar "DIMJUST" 0) ;尺寸线上的文字对正 (setvar "DIMLDRBLK" ".") ;引线块名 (setvar "DIMLFAC" (getvar "DIMLFAC")) ;线性单位比例因子 (setvar "DIMLIM" 0) ;生成标注界限 (setvar "DIMLUNIT" 2) ;线性单位格式 (setvar "DIMLWD" -2) ;尺寸线和引线线宽 (setvar "DIMLWE" -2) ;尺寸界线线宽 (setvar "DIMRND" 0.0000) ;舍入值 (setvar "DIMSAH" 0) ;独立的箭头块 (setvar "DIMSCALE" (getvar "dimscale")) ;全局比例因子 (setvar "DIMSD1" 0) ;隐藏第一条尺寸线 (setvar "DIMSD2" 0) ;隐藏第二条尺寸线 (setvar "DIMSE1" 0) ;隐藏第一条尺寸界线 (setvar "DIMSE2" 0) ;隐藏第二条尺寸界线 (setvar "DIMSOXD" 0) ;隐藏外侧尺寸线 (setvar "DIMTAD" 1) ;文字位于尺寸线上方 (setvar "DIMTDEC" 1) ;公差小数位数 (setvar "DIMTFAC" 1.0000) ;公差文字高度比例因子 (setvar "DIMTIH" 0) ;尺寸界线内侧的文字水平放置 (setvar "DIMTIX" 1) ;将文字放置于尺寸界线内侧 (setvar "DIMTM" 0.0000) ;下偏差 (setvar "DIMTMOVE" 2) ;文字移动 (setvar "DIMTOFL" 0) ;强制在尺寸界线内侧画尺寸线 (setvar "DIMTOH" 0) ;外侧文字水平放置 (setvar "DIMTOL" 0) ;公差标注 (setvar "DIMTOLJ" 1) ;公差垂直对齐 (setvar "DIMTP" 0.0000) ;上偏差 (setvar "DIMTSZ" 0.0000) ;标记大小 (setvar "DIMTVP" 0.0000) ;文字垂直位置 (setvar "DIMTXSTY" "FSDB") ;文字样式 (setvar "DIMTXT" 2.500) ;文字高度 (setvar "DIMTZIN" 0) ;公差消零 (setvar "DIMUPT" 0) ;用户定位的文字 (setvar "DIMZIN" 8) ;消零 (princ "\n检测到标注样式WAB,为防止样式被改动,程序自动将其还原(全局比例不变)。") ) ) (command "graphscr") ;(setvar "cmdecho" cm) (princ) ) (defun linestyle () (if (= (tblsearch "layer" "尺寸标注和说明") nil) (command "layer" "n" "尺寸标注和说明" "c" "3" "尺寸标注和说明" "") ) (if (= (tblsearch "layer" "中心线") nil) (command "layer" "n" "中心线" "c" "2" "中心线" "l" "center" "中心线" "" ) ) (if (= (tblsearch "layer" "阴影线") nil) (command "layer" "n" "阴影线" "c" "2" "阴影线" "l" "dashed" "阴影线" "" ) ) (if (= (tblsearch "layer" "轮廓线") nil) (command "layer" "n" "轮廓线" "c" "4" "轮廓线" "") ) (if (= (tblsearch "layer" "钢筋线") nil) (command "layer" "n" "钢筋线" "c" "5" "钢筋线" "") ) ) (princ "\n自动新建FSDB文字样式及初步设计格式标注,MYDIM启动命令。" ) (princ) |