明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9633|回复: 14

[VBA]用VBA如何创建一个标注样式并自定义各项参数?

  [复制链接]
发表于 2005-9-8 18:54:00 | 显示全部楼层 |阅读模式
用VBA如何创建一个标注样式可采用DimStyles.Add方法,可是如何定义这个自定义样式的各项参数?帮助文件中说明通过系统变量的设置实现,可如何使设置完后能存入自定义的这个样式中?
发表于 2021-11-15 10:47:37 来自手机 | 显示全部楼层
fen00 发表于 2021-11-11 16:03
厉害,原来是这样设置的,一直以为是用vla-put-xxx之类的函数搞,找了好几天找不到,
原来果然是要用:use ...

lisp和vba处理模式一模一样,都是ActiveX的com接口。lisp用了组码看起来简洁,vba的关键字表述直观性强,语言通用型更好,各有优势
发表于 2021-11-11 16:03:49 | 显示全部楼层
本帖最后由 fen00 于 2021-11-11 16:05 编辑

厉害,原来是这样设置的,一直以为是用vla-put-xxx之类的函数搞,找了好几天找不到,
原来果然是要用:use the CopyFrom method to copy the dimension style from the document to the active dimension style. 感觉处理标注样式还是用lisp方便直观。

发表于 2022-2-19 08:26:48 | 显示全部楼层
当前已有的标注样式,更新变量后不能改变,请教用什么方法?谢谢!
发表于 2005-9-9 17:03:00 | 显示全部楼层

吃饭后给你写出来,呵呵我也是拷贝的

 

发表于 2005-9-9 18:43:00 | 显示全部楼层
  1. '自创建标注样式1
  2. Public Function AddDimStyle1()
  3.     Dim dimStyle As AcadDimStyle
  4.     Set dimStyle = ThisDrawing.DimStyles.Add("dimStyle1")
  5.     ThisDrawing.ActiveDimStyle = dimStyle '激活该标注样式
  6.    
  7.    With ThisDrawing
  8.        '第一组定义全局和线性比例因子
  9.          .SetVariable "DimScale", 1     '设置全局比例因子
  10.          .SetVariable "DimLFac", 2   '线性比例因子. '1'=1:1, '2'=2:1,'.5'=1:2等
  11.         '定义典型的标注特性
  12.         .SetVariable "DimADec", 0      '控制角度标注的显示精确位数
  13.         .SetVariable "DimAssoc", 2     '控制标注对象的关联性
  14.                                        '实际上该系统变量由图形控制
  15.         .SetVariable "DimASz", 1.5        '控制尺寸线、引线箭头的大小。并控制钩线的大小
  16.         .SetVariable "DimAtFit", 3    '当尺寸界线的空间不足以同时放下标注文字和箭头时,确定这两者的排列方式
  17.                                         '0 将文字和箭头均放置于尺寸界线之外
  18.                                         '1  先移动箭头,然后移动文字
  19.                                         '2  先移动文字,然后移动箭头
  20.                                         '3  移动文字和箭头中较合适的一个
  21.         .SetVariable "DimAUnit", 0     '设置角度标注的单位格式
  22.                                        '0 十进制度数
  23.         .SetVariable "DimAZin", 0      '对角度标注作消零处理
  24.                                        '0 显示所有前导零和后续零
  25.         .SetVariable "DimBlk", ""      '设置尺寸线或引线末端显示的箭头块
  26.                                        '"" 实心闭合
  27.         .SetVariable "DimBlk1", ""     '当 DIMSAH 系统变量打开时,设置尺寸线第一个端点的箭头
  28.         .SetVariable "DimBlk2", ""     '当 DIMSAH 系统变量打开时,设置尺寸线第二个端点的箭头
  29.         .SetVariable "DimClrD", 256     '为尺寸线、箭头和标注引线指定颜色
  30.         .SetVariable "DimClrE", 256    '为尺寸界线指定颜色。此颜色可以是任意有效的颜色编号
  31.         .SetVariable "DimClrT", 256     '为标注文字指定颜色
  32.          .SetVariable "DimDec", 0       '设置标注主单位显示的小数位位数
  33.         .SetVariable "DimExe", 1        '指定尺寸界线超出尺寸线的距离
  34.         .SetVariable "DimExO", 6       '指定尺寸界线偏移原点的距离
  35.         .SetVariable "DimFrac", 0      '在 DIMLUNIT 系统变量设置为 4(建筑)或 5(分数)时设置分数格式
  36.         .SetVariable "DimGap", 0.5     '当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离
  37.         .SetVariable "DimJust", 0      '控制标注文字的水平位置
  38.                                         '0  将文字置于尺寸线之上,并在尺寸界线之间置中对正
  39.                                         '1  紧邻第一条尺寸界线放置标注文字
  40.                                         '2  紧邻第二条尺寸界线放置标注文字
  41.                                         '3  将标注文字放在第一条尺寸界线以上,并与之对齐
  42.                                         '4  将标注文字放在第二条尺寸界线以上,并与之对齐
  43.         .SetVariable "DimLwd", acLnWtByLayer '指定尺寸线的线宽
  44.         .SetVariable "DimLwe", acLnWtByLayer '指定尺寸界线的线宽
  45.         .SetVariable "DimPost", ""     '指定标注测量值的文字前缀或后缀(或者两者都指定)
  46.         .SetVariable "DimRnd", 0       '将所有标注距离舍入到指定值
  47.         .SetVariable "DimSAh", 0       '控制尺寸线箭头块的显示
  48.         .SetVariable "DimSD1", 0       '控制是否禁止显示第一条尺寸线
  49.         .SetVariable "DimSD2", 0       '控制是否禁止显示第二条尺寸线
  50.         .SetVariable "DimSE1", 0       '控制是否禁止显示第一条尺寸界线
  51.         .SetVariable "DimSE2", 0       '控制是否禁止显示第二条尺寸界线
  52.         .SetVariable "DimSOXD", 0      '控制是否允许尺寸线绘制到尺寸界线之外
  53.         .SetVariable "DimTAD", 1       '控制文字相对尺寸线的垂直位置
  54.                                        '0 标注文字在尺寸界线之间居中放置
  55.                                         '1  除非尺寸线不是水平放置的或者尺寸界线内的文字被强制为水平放置
  56.                                         '(DIMTIH = 1),否则就将标注文字放置在尺寸线的上方。标注文字最底部
  57.                                         '基线到尺寸线的距离值就是系统变量DIMGAP 的当前值。
  58.         .SetVariable "DimTIH", 0       '控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置
  59.                                         '0 或关 将文字与尺寸线对齐
  60.                                         '1 或开 将文字水平放置
  61.         .SetVariable "DimTIX", 1      '在尺寸界线之间绘制文字
  62.                                         '0 或关 结果随标注类型的不同而不同。对于线性和角度标注,AutoCAD
  63.                                         '将文字放置到尺寸界线之间(如果有足够的空间)。对于不适于放入圆
  64.                                         '或圆弧中的半径标注和直径标注,DIMTIX 无效并总是强制将文字放到圆或圆弧之外
  65.                                         '1 或开 将标注文字绘制在尺寸界线之间,即使 AutoCAD 通常将这些文字放置于尺寸界线之外。
  66.         .SetVariable "DimTMOVE", 2      '设置标注文字的移动规则
  67.                                         '0  尺寸线和标注文字一起移动
  68.                                         '1  在移动标注文字时添加一条引线
  69.                                         '2  允许标注文字自由移动而不用添加引线
  70.         .SetVariable "DimTOFL", 0      '控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)
  71.         .SetVariable "DimTOH", 0       '控制标注文字在尺寸界线外的位置
  72.         .SetVariable "DimTSz", 0      '指定线性标注、半径标注以及直径标注中替代箭头的小斜线尺寸
  73.         .SetVariable "DimTVP", 0        '控制尺寸线上方或下方标注文字的垂直位置
  74.         .SetVariable "DimTxSty", "STANDARD"     '指定标注的文字样式
  75.         .SetVariable "DimTxt", 1.8         '指定标注文字的高度,除非当前文字样式具有固定的高度
  76.         .SetVariable "DimUPT", 0        '控制用户定位文字的选项
  77.         .SetVariable "DimZIn", 0        '控制是否对主单位值作消零处理
  78. '
  79.         '定义换算单位的特性
  80.         .SetVariable "DimAlt", 0        '控制标注中换算单位的显示
  81.         .SetVariable "DimAltD", 4       '控制换算单位中小数位的位数
  82.         .SetVariable "DimAltF", 25.4    '控制换算单位乘数
  83.         .SetVariable "DimAltRnd", 0     '舍入换算标注单位
  84.         .SetVariable "DimAltTD", 4      '设置标注换算单位公差值小数位的位数
  85.         .SetVariable "DimAltTZ", 0      '控制是否对公差值作消零处理
  86.         .SetVariable "DimAltU", 2       '为所有标注样式族(角度标注除外)换算单位设置单位格式
  87.         .SetVariable "DimAltZ", 0       '控制是否对换算单位标注值作消零处理
  88.         .SetVariable "DimAPost", ""     '为所有标注类型(角度标注除外)的换算标注测量值指定文字前缀或后缀(或两者都指定)
  89.    End With
  90.     '标注样式的特性从图形已有样式中获得
  91.    dimStyle.CopyFrom ThisDrawing
  92. End Function
发表于 2006-10-8 10:40:00 | 显示全部楼层

高手!佩服佩服!

但是还有一个问题,怎样才能设置公差显示方式,比如:无,对称公差,极限偏差,极限尺寸,基本尺寸

谢谢指教!

发表于 2008-4-1 15:25:00 | 显示全部楼层

此帖与结合我干的活一起用。

发表于 2011-1-19 23:36:15 | 显示全部楼层
非常感谢,正需要这方面的内容,省了我很多时间。
发表于 2011-5-13 17:41:54 | 显示全部楼层
实在是太好了,全面,真是太谢谢了
发表于 2011-5-17 23:34:28 | 显示全部楼层
正需要这方面的内容,注释很清晰啊。谢谢
发表于 2011-5-18 23:36:45 | 显示全部楼层
太佩服了非常感谢
发表于 2011-5-30 10:36:41 | 显示全部楼层
太好了,学习,感谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 02:55 , Processed in 0.169575 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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