明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: YDPLDL

[求助]请教一下,如何编定义标注样式的LSP?

[复制链接]
发表于 2009-3-7 10:53:00 | 显示全部楼层

几年前做了一个,当时水平也低,做的很粗糙,但是用的也没啥问题,在此抛砖引玉,里面有注释,楼主可以根据自己需要修改

(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)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-27 21:07 , Processed in 0.135734 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表