明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1012|回复: 13

[提问] 标注样式箭头的创建

[复制链接]
发表于 2024-8-27 12:15:06 | 显示全部楼层 |阅读模式
本帖最后由 aws 于 2024-8-27 17:50 编辑
  1. (entmake
  2.         (list
  3.           '(0 . "DIMSTYLE")
  4.           '(100 . "AcDbSymbolTableRecord")
  5.           '(100 . "AcDbDimStyleTableRecord")
  6.           (cons 2 "测试");标注样式名
  7.           '(176 . 3);尺寸线颜色
  8.           '(46 . 1);超出标记
  9.           '(43 . 5);基线间距
  10.           '(281 . 0);线-尺寸线-隐藏:尺寸线1,0=显示,1=隐藏
  11.           '(282 . 0);线-尺寸线-隐藏:尺寸线2,0=显示,1=隐藏
  12.           '(177 . 3);尺寸界线颜色
  13.           '(44 . 1);超出尺寸线
  14.           '(42 . 0);起点偏移量
  15.           '(75 . 0);线-延申线-隐藏:延伸线1,0=显示,1=隐藏
  16.           '(76 . 0);线-延申线-隐藏:延伸线2,0=显示,1=隐藏
  17.           '(290 . 1);固定长度的延伸线,0=不勾选,1=勾选此项
  18.           '(49 . 7);固定长度的延伸线-长度
  19.           '(5 . "ArchTick");符号和箭头-箭头-第一个,建筑标记="ArchTick",空心闭合="ClosedBlank",实心圆点="Dot"
  20.           '(41 . 1);符号和箭头-箭头-箭头大小
  21.           '(141 . 2.5);符号和箭头-圆心标记,0=无,正数=标记,负数=直线
  22.           (cons 340(tblobjname "style" "Standard"));文字-文字外观-文字样式
  23.           '(178 . 256);文字-文字外观-文字颜色,256=ByLayer,0=ByBlock,7=白色……
  24.           '(69 . 0);文字-文字外观-填充颜色类型,0=不填充,1=背景色,2=使用颜色编号
  25.           '(70 . 0);文字-文字外观-填充颜色,256=ByLayer,0=ByBlock,1红2黄……使用颜色编号时此项必备
  26.           '(140 . 5);文字-文字外观-文字高度
  27.           '(77 . 0);文字-文字位置-垂直:1=上,0=居中,4=下……
  28.           '(280 . 0);文字-文字位置-水平:0=居中,1=第一条延伸线……
  29.           '(147 . 2);文字-文字位置-从尺寸线偏移,填入负数时,“绘制文字边框”项会被勾选
  30.           '(73 . 0);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=0
  31.           '(74 . 1);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=1
  32.           '(174 . 1);调整-调整选项:文字始终在延伸线之间=1,文字=0,箭头=0,文字和箭头=0,文字或箭头=0
  33.           '(289 . 2);调整-调整选项:文字始终在延伸线之间=2,文字=2,箭头=1,文字和箭头=0,文字或箭头=此项消失
  34.           '(175 . 1);调整-调整选项-若箭头不能放在延伸线内则将其消除,不勾选=0,勾选=1
  35.           '(279 . 0);调整-文字位置:尺寸线上方不带引线=2,尺寸线上方带引线=1,尺寸线旁边=0
  36.           (cons 40 10);调整-标注特征比例:将标注缩放到布局=0,使用全局比例>0,
  37.           '(288 . 0);调整-优化:手动放置文字,不勾选=0,勾选=1
  38.           '(172 . 0);调整-优化:在延伸线之间绘制尺寸线,不勾选=0,勾选=1
  39.           '(270 . 2);主单位-线性标注-单位格式:科学=1,小数=2,工程=3……
  40.           '(271 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
  41.           '(271 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…(不是我重复,组码表就是列出了2个)
  42.           '(272 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
  43.           '(144 . 1);主单位-线性标注-测量单位比例
  44.           '(78 . 8);主单位-线性标注-消零:后续,勾选=8
  45.           '(275 . 0);主单位-角度标注-单位格式:十进制=0
  46.           '(79 . 2);主单位-角度标注-消零:后续,勾选=2
  47.         )
  48.       )
请问这个箭头,为什么创建不成功,始终都是默认的那个实心箭头。

  •   (setvar "DIMSAH" 0)
  •   (setvar "DIMBLK" "_ARCHTICK")
即使我附加了这样的方式,也是无法创建成功。有没有了解的?


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-8-27 12:43:04 | 显示全部楼层
(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" 1)        ;已启用固定的尺寸界线,1表示ON开启,0表示OFF关闭
        (setvar "DIMFXL" 3)                ;固定的尺寸界线长度设为3
        (setvar "DIMSE1" 0)                ;隐藏尺寸界线1,0表示取消勾选,1表示勾选
        (setvar "DIMSE2" 0)                ;隐藏尺寸界线2,0表示取消勾选,1表示勾选
       
        ;***************符号和箭头相关变量***************
        (setvar "DIMBLK" ".")                ;设置尺寸线末端显示的箭头块。
        (setvar "DIMSAH" 1)                        ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块
        (setvar "DIMBLK1" "")                ;第一个箭头的样式
        (setvar "DIMBLK2" "")                ;第二个箭头的样式
        (setvar "DIMLDRBLK" ".")                ;引线箭头的样式
        ;=====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" "仿宋体")                ;文字样式
        (setvar "DIMCLRT" 256)                ;文字颜色,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)        ;测量单位比例-比例因子
)


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

;公差位置垂直        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

点评

aws
感谢提供详细的参数  发表于 2024-8-27 16:15
 楼主| 发表于 2024-8-27 16:04:04 | 显示全部楼层
  1. ;---制作新的标注样式
  2. (defun make-dimstyle(name sc /)
  3.   (setvar "CMDECHO" 0);关闭显示,下面开始对当前标注样式进行一系列设定
  4.   ;***************尺寸线相关变量***************
  5.   (setvar "DIMCLRD" 3);尺寸线的颜色,256表示ByLayer
  6.   (setvar "DIMLTYPE" "ByLayer");尺寸线的线型ByLayer
  7.   (setvar "DIMLWD" -1);尺寸线的线宽,-1表示ByLayer
  8.   (setvar "DIMDLE" 1);尺寸线超出标记,设为0
  9.   (setvar "DIMDLI" 5);尺寸线基线间距,设为0.5
  10.   (setvar "DIMSD1" 0);隐藏尺寸线1,0表示取消勾选,1表示勾选
  11.   (setvar "DIMSD2" 0);隐藏尺寸线2,0表示取消勾选,1表示勾选
  12.   ;***************尺寸界线相关变量***************
  13.   (setvar "DIMCLRE" 3);尺寸界线的颜色,256表示ByLayer
  14.   (setvar "DIMLTEX1" "ByLayer");尺寸界线1的线型ByLayer
  15.   (setvar "DIMLTEX2" "ByLayer");尺寸界线2的线型ByLayer
  16.   (setvar "DIMLWE" -1);尺寸界线的线宽,-1表示ByLayer
  17.   (setvar "DIMEXE" 1);尺寸界线超出尺寸线量
  18.   (setvar "DIMEXO" 0);尺寸界线的起点偏移量
  19.   (setvar "DIMFXLON" 1);已启用固定的尺寸界线,1表示ON开启,0表示OFF关闭
  20.   (setvar "DIMFXL" 7);固定的尺寸界线长度
  21.   (setvar "DIMSE1" 0);隐藏尺寸界线1,0表示取消勾选,1表示勾选
  22.   (setvar "DIMSE2" 0);隐藏尺寸界线2,0表示取消勾选,1表示勾选
  23.   ;***************符号和箭头相关变量***************
  24.   (setvar "DIMSAH" 0);设置0就行
  25.   (setvar "DIMBLK" "_ARCHTICK");设置尺寸线末端显示的箭头
  26.   (setvar "DIMLDRBLK" ".");引线箭头的样式
  27.   (setvar "DIMASZ" 1);箭头大小
  28.   (setvar "DIMCEN" 2.5);圆形标记大小,设为0时表示无圆心标记,设为-1时表示“直线”标记
  29.   (setvar "DIMARCSYM" 0);弧长符号。设为0表示勾选“标注文字的前缀”。设为1表示勾选“标注文字的上方”。设为2表示勾选“无”。
  30.   ;***************文字相关变量***************
  31.   (setvar "DIMTXSTY" "Standard");文字样式
  32.   (setvar "DIMCLRT" 256);文字颜色,256表示ByLayer
  33.   (setvar "DIMTFILL" 0);文字填充颜色。设为0表示“无”,设为1表示“背景”,设为2表示引用变量DIMTFILLCLR的值
  34.   (setvar "DIMTFILLCLR" 256);文字背景颜色。当变量DIMTFILL的值设为2时此值可显示效果
  35.   (setvar "DIMTXT" 5);文字高度
  36.   (setvar "DIMTAD" 0);文字位置-垂直,0表示居中,1表示上,2表示外部,3表示JIS,4表示下
  37.   (setvar "DIMJUST" 0);文字位置-水平,0表示居中,1表示第一条尺寸界线,2表示第二条尺寸界线,3表示第一条尺寸界线上方,4表示第二条尺寸界线上方
  38.   (setvar "DIMTXTDIRECTION" 0);指定标注文字的阅读方向。0表示从左到右,1表示从右到左。
  39.   (setvar "DIMGAP" 2);文字位置-从尺寸线偏移量
  40.   (setvar "DIMTIH" 0);控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置。0表示将文字与尺寸线对齐,1表示水平绘制文字。
  41.   (setvar "DIMTOH" 0);控制标注文字在尺寸界线外的位置。0表示将文字与尺寸线对齐,1表示水平绘制文字。
  42.   ;***************调整相关变量***************
  43.   (setvar "DIMTIX" 1);文字始终保持在尺寸界线之间,0=关闭,1=开启
  44.   (setvar "DIMSOXD" 1);若箭头不能放在尺寸界线内,则将其消除,0=关闭,1=开启
  45.   (setvar "DIMATFIT" 3);如果尺寸界线之间没有足够空间放置文字和箭头,那么首先从中移出:0表示文字和箭头,1表示箭头,2表示文字,3表示文字或箭头(最佳效果)
  46.   (setvar "DIMTMOVE" 0);0=尺寸线旁边,1=尺寸线上方,带引线,2=尺寸线上方,不带引线
  47.   (setvar "DIMSCALE" sc);标注特征比例,0表示勾选“将标注缩放到布局”,大于0的数字表示勾选“使用全局比例,数字表示全局比例的值”
  48.   (setvar "DIMTOFL" 0);控制是否在尺寸界线之间绘制尺寸线,0表示取消勾选“在尺寸界线之间绘制尺寸线”,1表示勾选“在尺寸界线之间绘制尺寸线”
  49.   ;***************主单位相关变量***************
  50.   (setvar "DIMLUNIT" 2);线性标注-单位格式,1表示科学,2表示小数,3表示工程,4表示建筑,5表示分数,6表示Windows桌面
  51.   (setvar "DIMDEC" 1);线性标注-精度,0表示取整,1-8表示x位小数
  52.   (setvar "DIMDSEP" ".");线性标注-小数分隔符,有3个值可选:"."  ","  " "
  53.   (setvar "DIMRND" 0);线性标注-舍入
  54.   (setvar "DIMPOST" "");线性标注-为标注测量值指定文字前缀或后缀(或两者),""表示空。使用 <> 指示文字相对于标注值的位置。例如,输入 <>mm 可将 5.0 毫米的半径标注显示为“5.0mm”。如果输入 mm <>,标注将显示为“mm 5.0”。
  55.   (setvar "DIMZIN" 8);线性标注-消零,0表示消除0英尺和0英寸,8表示消除后续的零
  56.   (setvar "DIMAUNIT" 0);角度标注-单位格式,0表示十进制度数,1表示度分秒,2表示百分度,3表示弧度
  57.   (setvar "DIMADEC" 1);角度标注-精度,0表示取整,1-8表示x位小数
  58.   (setvar "DIMAZIN" 2);线性标注-消零,0表示都不勾选,1表示勾选“前导”,2表示勾选“后续”,3表示同时勾选“前导”和“后续”
  59.   (command "_.dimstyle" "s" name);相当于另存为新的标注样式并调用至当前
  60.   (setvar "CMDECHO" 1)
  61. )
综合来看,我选择这种方法。值得注意的是,(command "_.dimstyle" "s" name);相当于另存为,桌子翻译过来是保存,,,我真是理解不能
发表于 2024-8-27 15:42:56 | 显示全部楼层
本帖最后由 hubeiwdlue 于 2024-8-27 15:52 编辑
aws 发表于 2024-8-27 12:58
咦。不对劲啊,setvar好像只是调整参数,做不到生成吧,是不是需要和command结合使用?

是的,要和command一起使用,先吧参数设置好,然后用command创建标注样式
  1. (defun wdl_new-dimcommond(name wzys qju bili zigao / v6)
  2.         ;文字设置
  3.         (if (= (tblsearch "style" wzys) nil)
  4.                 (progn
  5.                         (setq v6 (getvar "textstyle"))                ;获取当前文字样式并记录
  6.                         (wdl_new-style "fsdb" "fsdb_e.shx" "fsdb.shx" 0.7 0)
  7.                         (setvar "textstyle" v6)                ;恢复文字样式设置
  8.                 );end progn
  9.         )
  10.         (setvar "DIMTXSTY" wzys)                ;文字样式
  11.         (setvar "DIMTXT" zigao)                ;文字高度
  12.         (setvar "DIMTAD" 1)                ;文字位置-垂直,0表示居中,1表示上,2表示外部,3表示JIS,4表示下
  13.         (setvar "DIMJUST" 0)                ;文字位置-水平,0表示居中,1表示第一条尺寸界线,2表示第二条尺寸界线,3表示第一条尺寸界线上方,4表示第二条尺寸界线上方
  14.         ;箭头设置
  15.         (setvar "DIMBLK" "")                ;设置尺寸线末端显示的箭头块。
  16.         (setvar "DIMSAH" 1)                        ;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块
  17.         (setvar "DIMBLK1" "_OBLIQUE")                ;第一个箭头的样式
  18.         (setvar "DIMBLK2" "_OBLIQUE")                ;第二个箭头的样式
  19.         (setvar "DIMLDRBLK" "")                ;引线箭头的样式,实心箭头
  20.         (setvar "DIMASZ" (* 0.6 zigao))                ;箭头大小
  21.         ;尺寸界限
  22.         (setvar "DIMDLE" 0)                ;尺寸线超出标记,设为0
  23.         (setvar "DIMGAP" (* 0.1 zigao)) ;从尺寸线偏移
  24.         (setvar "DIMDLI" (* 2.5 zigao))        ;尺寸线基线间距
  25.         (setvar "DIMEXE" (* 0.5 zigao))                ;尺寸界线超出尺寸线量
  26.         (setvar "DIMEXO" (* 0.5 zigao))                ;尺寸界线的起点偏移量
  27.         (setvar "DIMFXLON" 1)        ;已启用固定的尺寸界线,1表示ON开启,0表示OFF关闭
  28.         (setvar "DIMFXL" (* 0.5 zigao))                ;固定的尺寸界线长度设为
  29.         ;主单位
  30.         (setvar "DIMLUNIT" 2)        ;线性标注-单位格式,1表示科学,2表示小数,3表示工程,4表示建筑,5表示分数,6表示Windows桌面
  31.         (setvar "DIMDSEP" ".")        ;线性标注-小数分隔符,有3个值可选:"."  ","  " "
  32.         (setvar "DIMZIN" 8)        ;线性标注-消零,0表示消除0英尺和0英寸,8表示消除后续的零
  33.         ;全局比例和测量比例
  34.         (setvar "DIMSCALE" qju)        ;标注特征比例,0表示勾选“将标注缩放到布局”,大于0的数字表示勾选“使用全局比例,数字表示全局比例的值”
  35.         (setvar "DIMLFAC" bili)        ;测量单位比例-比例因子
  36.         ;创建标注样式
  37.         (if (not (tblsearch "dimstyle" name))
  38.                 (command "DIMSTYLE" "S" name)
  39.         )
  40.         (command "DIMSTYLE" "R" name);将标注样式置为当前
  41. )
发表于 2024-8-27 12:35:49 | 显示全部楼层
可能用entmake就是这样吧 搞不懂 我用的setvar 和command新建标注样式
发表于 2024-8-27 12:39:03 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2024-8-28 07:40 编辑

caoyin版主发过了,如下,可以找来看看。我最终选择用command.

;;12 [功能] 设置 Qleader 命令"引线设置"对话框的相关参数
;;注:<font color=\"red\">引线的箭头跟DIMSTYLE使用同一设置,可以直接修改DIMLDRBLK系统变量</font>
;;2011.5.5 by caoyin
(defun QleaderSet (/ DICEN)
  (Setvar "DIMLDRBLK" ".");实心箭头
  (setq DICEN (namedobjdict));(entget DICEN)可查看内容(3 . 词典)
  (if (dictsearch DICEN "AcadDim")
    (dictremove DICEN "AcadDim")
  )
  (dictadd DICEN
           "AcadDim"
            (entmakex '((0 . "XRECORD")
                        (100 . "AcDbXrecord")
                        (280 . 1)
                        (90 . 990106)
                        (3 . "");;-----引线和箭头-〉箭头[用户箭头的缺省块名,""则表示未设置]
                        (60 . 4);;-----注释-〉注释类型[0,1,2,3,4]
                        (61 . 0);;-----注释-〉重复使用注释[0,1,2]
                        (62 . 4);;-----附着-〉文字在右边[0,1,2,3,4]
                        (63 . 4);;-----附着-〉文字在左边[0,1,2,3,4]
                        (64 . 1);;-----附着-〉最后一行加下划线[0,1]
                        (65 . 0);;-----引线和箭头-〉引线[0,1]
                        (66 . 1);;-----引线和箭头-〉点数-〉无限制[0,1]
                        (67 . 4);;-----引线和箭头-〉点数[任意正整数]
                        (68 . 0);;-----注释-〉多行文字选项-〉提示输入宽度[0,1]
                        (69 . 0);;-----注释-〉多行文字选项-〉始终左对齐[0,1]
                        (70 . 0);;-----引线和箭头-〉角度约束->第一段[0,1,2,3,4,5]
                        (71 . 0);;-----引线和箭头-〉角度约束->第二段[0,1,2,3,4,5]
                        (72 . 0);;-----注释-〉多行文字选项-〉文字边框[0,1]
                        (40 . 0)
                        (170 . 0);;----控制"引线设置"对话框的缺省选项卡[0,1,2]
                     ;; (340 . 图元名)
                     ;;-----当DXF组码60的值为3,且已经设定了块参照的块名,则340组码才会出现
                     ;;-----格式为(340 . 上次使用块参照作为注释对象,实际插入的块实例的图元名)
                      )
              )
    )
)


 楼主| 发表于 2024-8-27 12:39:10 | 显示全部楼层
飞雪神光 发表于 2024-8-27 12:35
可能用entmake就是这样吧 搞不懂 我用的setvar 和command新建标注样式

setvar有没有模板发一下瞅瞅
 楼主| 发表于 2024-8-27 12:58:59 | 显示全部楼层
hubeiwdlue 发表于 2024-8-27 12:43
(defun ff:bzys1()
        ;***************尺寸线相关变量***************
        (setvar "DIMCLRD" 256)        ;尺寸线的 ...

咦。不对劲啊,setvar好像只是调整参数,做不到生成吧,是不是需要和command结合使用?
 楼主| 发表于 2024-8-27 15:57:25 | 显示全部楼层
  1. (defun c:gg(/  )
  2.   
  3.   (entmake
  4.     (list
  5.       '(0 . "DIMSTYLE")
  6.       '(100 . "AcDbSymbolTableRecord")
  7.       '(100 . "AcDbDimStyleTableRecord")
  8.       (cons 2 "测试");标注样式名
  9.       '(176 . 3);尺寸线颜色
  10.       '(46 . 1);超出标记
  11.       '(43 . 5);基线间距
  12.       '(281 . 0);线-尺寸线-隐藏:尺寸线1,0=显示,1=隐藏
  13.       '(282 . 0);线-尺寸线-隐藏:尺寸线2,0=显示,1=隐藏
  14.       '(177 . 3);尺寸界线颜色
  15.       '(44 . 1);超出尺寸线
  16.       '(42 . 0);起点偏移量
  17.       '(75 . 0);线-延申线-隐藏:延伸线1,0=显示,1=隐藏
  18.       '(76 . 0);线-延申线-隐藏:延伸线2,0=显示,1=隐藏
  19.       '(290 . 1);固定长度的延伸线,0=不勾选,1=勾选此项
  20.       '(49 . 7);固定长度的延伸线-长度
  21.       '(5 . "ArchTick");符号和箭头-箭头-第一个,建筑标记="ArchTick",空心闭合="ClosedBlank",实心圆点="Dot"
  22.       '(41 . 1);符号和箭头-箭头-箭头大小
  23.       '(141 . 2.5);符号和箭头-圆心标记,0=无,正数=标记,负数=直线
  24.       (cons 340(tblobjname "style" "Standard"));文字-文字外观-文字样式
  25.       '(178 . 256);文字-文字外观-文字颜色,256=ByLayer,0=ByBlock,7=白色……
  26.       '(69 . 0);文字-文字外观-填充颜色类型,0=不填充,1=背景色,2=使用颜色编号
  27.       '(70 . 0);文字-文字外观-填充颜色,256=ByLayer,0=ByBlock,1红2黄……使用颜色编号时此项必备
  28.       '(140 . 5);文字-文字外观-文字高度
  29.       '(77 . 0);文字-文字位置-垂直:1=上,0=居中,4=下……
  30.       '(280 . 0);文字-文字位置-水平:0=居中,1=第一条延伸线……
  31.       '(147 . 2);文字-文字位置-从尺寸线偏移,填入负数时,“绘制文字边框”项会被勾选
  32.       '(73 . 0);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=0
  33.       '(74 . 1);文字-文字对齐:水平=1,与尺寸线对齐=0,ISO标准=1
  34.       '(174 . 1);调整-调整选项:文字始终在延伸线之间=1,文字=0,箭头=0,文字和箭头=0,文字或箭头=0
  35.       '(289 . 2);调整-调整选项:文字始终在延伸线之间=2,文字=2,箭头=1,文字和箭头=0,文字或箭头=此项消失
  36.       '(175 . 1);调整-调整选项-若箭头不能放在延伸线内则将其消除,不勾选=0,勾选=1
  37.       '(279 . 0);调整-文字位置:尺寸线上方不带引线=2,尺寸线上方带引线=1,尺寸线旁边=0
  38.       '(40 . 20);调整-标注特征比例:将标注缩放到布局=0,使用全局比例>0,
  39.       '(288 . 0);调整-优化:手动放置文字,不勾选=0,勾选=1
  40.       '(172 . 0);调整-优化:在延伸线之间绘制尺寸线,不勾选=0,勾选=1
  41.       '(270 . 2);主单位-线性标注-单位格式:科学=1,小数=2,工程=3……
  42.       '(271 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
  43.       '(271 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…(不是我重复,组码表就是列出了2个)
  44.       '(272 . 1);主单位-线性标注-精度:0=0,0.0=1,0.00=2…
  45.       '(144 . 1);主单位-线性标注-测量单位比例
  46.       '(78 . 8);主单位-线性标注-消零:后续,勾选=8
  47.       '(275 . 0);主单位-角度标注-单位格式:十进制=0
  48.       '(79 . 2);主单位-角度标注-消零:后续,勾选=2
  49.     )
  50.   )
  51.   (command "_.dimstyle" "r" "测试")
  52.   (setvar "DIMSAH" 0)
  53.   (setvar "DIMBLK" "_ARCHTICK")
  54.   (command "_.dimstyle" "s" "测试" "y")
  55.   
  56. )
我悟了啊,这样就可以了。但是,这样有点奇葩,既用到了entmake又用到了setvar还有command。。。
发表于 2024-8-27 17:21:02 | 显示全部楼层
帖子不错,受益匪浅,感谢大佬的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:25 , Processed in 0.195492 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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