muck 发表于 2022-7-6 15:20:48

使用创建新的dimstyle

在VBA中使用注释尺寸创建新的尺寸样式
Version 2009,VBA
 
有没有办法用注释性标注创建新的dimstyle
在AutoCAD VBA中?我认为dimanno变量必须是1,但是
它是一个只读变量。Dimscale变量可能必须为0。
 
我已经在这个dimstyle主题上发布了几个simular线程,但是
我在网上搜索到的关于这个话题的信息很少。
 
 
非常感谢。
 
 
 
 
 
非常感谢。

ASMI 发表于 2022-7-6 15:37:26

我可以使用lisp创建注释性标注。我认为在VBA中也是可能的,但这并不容易,因为注释数据包含在“ACDB\u AnnotationScale”扩展字典中。用VBA用数据填充字典是一个很好的代码。我不想这样做,但我认为原则上这是可能的。您可以使用lisp函数获取并浏览此词典的所有成员,如下所示:
 
(defun Get_Annotation_Dictionary(vlaObj / aDic)
(if(= :vlax-true
   (vla-get-HasExtensionDictionary vlaObj))
   (progn
   (vlax-for d(vla-GetExtensionDictionary vlaObj)
      (if(and
   (vlax-property-available-p d 'Name)
   (= "ACDB_ANNOTATIONSCALES"(vla-get-Name d))
   ); end and
(setq aDic d)
); end if
      ); end vlax-for
   ); end progn
   ); end if
aDic
); end of Get_Annotation_Dictionary

muck 发表于 2022-7-6 15:47:03

也许有人知道如何在VBA中做到这一点,可能会回复这篇文章。
 
我在网上搜索时发现的很少。
 
非常感谢。

Lee Mac 发表于 2022-7-6 15:50:55

正如ASMI在他的帖子中提到的,VBA替代方案需要大量的编码,为什么不使用更简单的LISP方法呢?

muck 发表于 2022-7-6 16:08:47

我想我们必须采取有效措施。
 
我想我应该使用Set objDimStyle=ThisDrawing。尺寸样式。添加(“stNa”)
开始并在后面调用上述rountine?
 
如何使用VBA调用上述lisp例程。有人吗
有一个使用VBA-lisp例程更改注释尺寸比例的示例
 
非常感谢。

muck 发表于 2022-7-6 16:20:22

那么使用Sendcommand创建一个新的dimstyle呢
用其他变量更改新创建的dimstyle?
 
这样行吗?

muck 发表于 2022-7-6 16:28:45

也许是这样,但我得想办法
每次点击事件按钮时,给我的新dimstyle起一个unque名称。
有什么建议吗,我还在努力呢?
 
私有子命令按钮5_Click()
'UserForm1.hide
'此绘图。SendCommand“Dimscale”和vbCr
'此绘图。SendCommand“0”和vbCr
'此绘图。SendCommand“*”&vbCr
尺寸X为整数
X=5
X=X+1
Dim DimStyName作为字符串
DimStyName=“DimstyleName”
DimStyName=DimStyName&Str(X)
此图纸。SendCommand“-dimstyle”&vbCr和“AN”&vbCr和“Y”&vbCr和DimStyName&vbCr和“S”&vbCr和vbCr
末端接头
 
也许我可以将当前的dimstyle更改为注释性dim。任何建议。
页: [1]
查看完整版本: 使用创建新的dimstyle