明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10806|回复: 33

[源码] 发一个自己修改的标注设置给初学者(个人觉得比较好用)

  [复制链接]
发表于 2013-8-2 10:19 | 显示全部楼层 |阅读模式
本帖最后由 tranney 于 2013-8-2 15:19 编辑

注:本代码是在本论坛高手拿来的代码,因为他本身的代码不是很好用,所以略做修改

修改后  适合1:1绘图,大样图为直接sc放大的情况,这个标注设置我个人觉得比较好修改,故发给大家,希望大家喜欢!

本人在2011天正环境调试成功,,不能保证r14能够使用
送切换标注比例样式代码:
(defun c:d10 ()(command "-DIMSTYLE" "R" "菜菜建筑1-10")(princ "\n当前标注样式:菜菜建筑1-10")(princ))
(defun c:d20 ()(command "-DIMSTYLE" "R" "菜菜建筑1-20")(princ "\n当前标注样式:菜菜建筑1-20")(princ))
(defun c:d25 ()(command "-DIMSTYLE" "R" "菜菜建筑1-25")(princ "\n当前标注样式:菜菜建筑1-25")(princ))
(defun c:d50 ()(command "-DIMSTYLE" "R" "菜菜建筑1-50")(princ "\n当前标注样式:菜菜建筑1-50")(princ))
(defun c:d100 ()(command "-DIMSTYLE" "R" "菜菜建筑1-100")(princ "\n当前标注样式:菜菜建筑1-100")(princ))
(defun c:dst () (command "-DIMSTYLE" "R" "standard")(princ "\n当前标注样式:standard")(princ))

启动命令 ccjz
;----------建立基本标注 开始
(defun CaiCaihz ()
  (if (= (tblsearch "style" "菜菜hz") nil)
    (progn
      (princ "\n建立菜菜hz字体并设为当前。")
      (command "style" "菜菜hz" "txt.shx,hztxt.shx" "0.0" "0.7" "" "" "" "")
    )
    (progn
       (command "style" "菜菜hz" "txt.shx,hztxt.shx" "0.0" "0.7" "" "" "" "")
      ;(command "style" "菜菜hz" "" "" "" "" "" "")
      (princ "\n检测到菜菜hz字体,将其设为当前。")
    )
  )
  (princ)
)
;建立建筑标注标注界限块
(defun dimblk1(/ p1 p2 mp p3 p4 ent1 ent2 ifdimblk )
  (setq p1 (list 0 0)
p2 (polar p1 (* 0.25 pi) 2)
mp (list (* 0.5 (car p2)) (* 0.5 (cadr p2)))
p3(list (- (car mp) 1.5) (cadr mp))
p4(list (+ (car mp) 1.5) (cadr mp))
   )
  (command "line" p3 p4 "")
  (setq ent1 (entlast))
  (command "pline" p1 "w" 0.5 0.5 p2 "")
  (setq ent2 (entlast))
  (setq ifdimblk (tblsearch "block" "ccjzDIM"))
  (if ifdimblk (command "block" "ccjzDIM" "y" mp ent1 ent2 "")
               (command "block" "ccjzDIM" mp ent1 ent2 "")
  )
  (princ)
)
(defun c:ccjz (/ cm)
  (setq cm (getvar "cmdecho"))
  ;(setvar "cmdecho" 0)
  (CaiCaihz)
  (dimblk1)
  (if (= (tblsearch "dimstyle" "菜菜建筑1-100") nil)
    (progn (command "dimstyle" "s" "菜菜建筑1-100")
    (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" 0.7) ;箭头大小
    (setvar "DIMATFIT" 3) ;箭头和文字调整
    (setvar "DIMAUNIT" 0) ;角度单位格式
    (setvar "DIMAZIN" 2)  ;角度消零
    (setvar "DIMBLK" "ccjzDIM") ;箭头块名
    (setvar "DIMBLK1" "ccjzDIM") ;第一个箭头块名
    (setvar "DIMBLK2" "ccjzDIM") ;第二个箭头块名
    (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.8) ;尺寸线和文字的间距
    (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" 1)  ;强制在尺寸界线内侧画尺寸线
    (setvar "DIMTOH" 0)  ;外侧文字水平放置
    (setvar "DIMTOL" 0)  ;公差标注
    (setvar "DIMTOLJ" 1)  ;公差垂直对齐
    (setvar "DIMTP" 0.0000) ;上偏差
    (setvar "DIMTSZ" 0.0000) ;标记大小
    (setvar "DIMTVP" 0.0000) ;文字垂直位置
    (setvar "DIMTXSTY" "菜菜hz") ;文字样式
    (setvar "DIMTXT" 2.500) ;文字高度
    (setvar "DIMTZIN" 0)  ;公差消零
    (setvar "DIMUPT" 0)  ;用户定位的文字
    (setvar "DIMZIN" 8)  ;消零
    (princ "\n已新建标注样式菜菜建筑1-100,该样式符合本院标准,默认全局比例为1,修改比例请输入DIMSCALE。")
    )
    (progn
;;;      (command "dimstyle" "s" "菜菜建筑1-100")
      (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" 0.70)  ;箭头大小
      (setvar "DIMATFIT" 3)  ;箭头和文字调整
      (setvar "DIMAUNIT" 0)  ;角度单位格式
      (setvar "DIMAZIN" 2)  ;角度消零
      (setvar "DIMBLK" "ccjzDIM")  ;箭头块名
      (setvar "DIMBLK1" "ccjzDIM")  ;第一个箭头块名
      (setvar "DIMBLK2" "ccjzDIM")  ;第二个箭头块名
      (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.8)  ;尺寸线和文字的间距
      (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" 1)  ;强制在尺寸界线内侧画尺寸线
      (setvar "DIMTOH" 0)  ;外侧文字水平放置
      (setvar "DIMTOL" 0)  ;公差标注
      (setvar "DIMTOLJ" 1)  ;公差垂直对齐
      (setvar "DIMTP" 0.0000)  ;上偏差
      (setvar "DIMTSZ" 0.0000)  ;标记大小
      (setvar "DIMTVP" 0.0000)  ;文字垂直位置
      (setvar "DIMTXSTY" "菜菜hz") ;文字样式
      (setvar "DIMTXT" 2.500)  ;文字高度
      (setvar "DIMTZIN" 0)  ;公差消零
      (setvar "DIMUPT" 0)  ;用户定位的文字
      (setvar "DIMZIN" 8)  ;消零
      (princ "\n检测到标注样式:“菜菜建筑1-100”,为防止样式被改动,程序自动将其还原(全局比例不变)。")
    )
  )
  (command "_.DIMSTYLE" "_SAVE" "菜菜建筑1-100" "y" "")
  ;(setvar "cmdecho" cm)
  (princ)
  (ccdimdayang)
)

;----------建立各种比例大样图所需的标注样式
(defun ccdimdayang(/ ACADDOCUMENT ACADOBJECT CURRDIMSTYLE MSPACE)
  (PRINC "\n模型空间中,建立各种比例大样图所需的标注样式 :")
;;; 首先,返回当前的标注的样式
;;; 接着,设定新的样式。
;;; 最后,将样式恢复为原来的设定值。
  (VL-LOAD-COM)
  (setq AcadObject(vlax-get-acad-object)
        AcadDocument(vla-get-ActiveDocument AcadObject)
        mSpace(vla-get-ModelSpace AcadDocument)
  )
;;; 返回激活文件当前的标注样式
(setq currDimStyle(vla-get-ActiveDimStyle AcadDocument))
;(princ "当前的标注型式是 ")(princ (vla-get-name currDimStyle))
;;; 建立标注样式 菜菜1-10
  (setvar "dimlfac" 0.1);因为图元放大了10倍
  (setvar "DIMCLRD" 1);改变颜色以区分
  (setvar "dimclre" 1)
  (if (not (tblsearch "dimstyle" "菜菜建筑1-10"))
      (command "-dimstyle" "s" "菜菜建筑1-10")
      (command "-dimstyle" "s" "菜菜建筑1-10" "y")
  )
  ;;; 建立标注样式 菜菜1-20
  (setvar "dimlfac" 0.20)
  (setvar "DIMCLRD" 2)
    (setvar "dimclre" 2)
  (if (not (tblsearch "dimstyle" "菜菜建筑1-20"))
      (command "-dimstyle" "s" "菜菜建筑1-20")
      (command "-dimstyle" "s" "菜菜建筑1-20" "y")
  )
  ;;; 建立标注样式 菜菜1-25
  (setvar "dimlfac" 0.25)
  (setvar "DIMCLRD" 4)
    (setvar "dimclre" 4)
  (if (not (tblsearch "dimstyle" "菜菜建筑1-25"))
      (command "-dimstyle" "s" "菜菜建筑1-25")
      (command "-dimstyle" "s" "菜菜建筑1-25" "y")
  )
    ;;; 建立标注样式 菜菜1-50
  (setvar "dimlfac" 0.5)
  (setvar "DIMCLRD" 5)
    (setvar "dimclre" 5)
  (if (not (tblsearch "dimstyle" "菜菜建筑1-50"))
      (command "-dimstyle" "s" "菜菜建筑1-50")
      (command "-dimstyle" "s" "菜菜建筑1-50" "y")
  )
  (vla-put-ActiveDimStyle AcadDocument currDimStyle);; 将标注样式设回原来的标注样式
  ;(princ "标注型式重设为 ")(princ (vla-get-name currDimStyle))
  (princ)
)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 2明经币 +2 收起 理由
ucuc2003 + 1 赞一个!收藏!
wowan1314 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

  • · 收集|主题: 58, 订阅: 4
发表于 2018-8-26 18:09 | 显示全部楼层
这种事情不需要用 LISP 来做,直接设置好各种比例的 dimstyle 后保存在模板文件或者随便哪个dwg中,需要时拖到本dwg中即可啊。

其实养成并严格遵守良好的图形组织习惯是根本。

最后,如果使用高版本中的 Annotative 特性来设置 Dimstyle ,都不再需要设置多个对应各种常用比例的dimstyles 了,只需要 1个即可。
发表于 2021-9-12 16:34 | 显示全部楼层
本帖最后由 alexmai 于 2021-9-12 16:35 编辑

这个程序一点用都没有,一个标注走天下的
DIMRND 标注四舍五入
DIMSCALE 改标注比例
DIMLFAC 图纸空间改标注比例
(vl-cmdf "-dimstyle" "a" (ssget (list '(0 . "DIMENSION"))) "")  标注更新
在图纸空间上,一键获取视口标注比例
发表于 2021-9-12 12:55 | 显示全部楼层
这程序太牛了,以前就通过重复的程序加数字实现,没想到现成的有整合的程序了
发表于 2013-8-2 10:26 | 显示全部楼层
好程序最后弄个动画一起发布,要不容易被埋了!
发表于 2013-8-2 10:34 | 显示全部楼层
顶一个,非常不错
发表于 2013-8-2 17:35 | 显示全部楼层
我也顶一个,非常不错
发表于 2013-8-5 22:01 | 显示全部楼层
值得我们学习。
发表于 2013-8-6 12:15 | 显示全部楼层
有解释,确实不错,
发表于 2013-8-11 17:29 | 显示全部楼层
支持下
发表于 2013-9-29 15:37 | 显示全部楼层
谢谢楼主的分享!太好用了!收藏备用。
发表于 2013-9-30 00:00 | 显示全部楼层
很详细的lsp,赞!
发表于 2013-9-30 10:26 | 显示全部楼层
新人,来学习下,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 00:08 , Processed in 2.395883 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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