wenyuan 发表于 2003-12-1 15:08:00

求助,关于设置系统变量

R14版本的VBA中,标注的一些属性只能用系统变量来修改

以下是我对标注的要求,用系统变量来写的:
    AcadApp.ActiveDocument.SetVariable "DIMASZ", 2.5
    AcadApp.ActiveDocument.SetVariable "DIMTXT", 3.5
    AcadApp.ActiveDocument.SetVariable "DIMTIH", False
    AcadApp.ActiveDocument.SetVariable "DIMTOH", False
    AcadApp.ActiveDocument.SetVariable "DIMTAD", 1

问题是,我把这些代码放在什么位置?我把代码放在程序打开CAD之后,绘制标注之前,或者放在绘制标注之后,刷新标注之前,都不行。多谢!

subtlation 发表于 2003-12-1 15:43:00

http://www.vba.cn/a2/list.asp?id=17

wenyuan 发表于 2003-12-2 14:11:00

多谢

我试试看

wenyuan 发表于 2003-12-2 14:56:00

我根据subtlation 兄提供的方法写了如下的函数:
Public Sub test()
    Dim adDimStyle As AcadDimStyle

    Set adDimStyle = AcadApp.ActiveDocument.DimStyles.Add("adDimStyle")
    AcadApp.ActiveDocument.ActiveDimStyle = adDimStyle

    AcadApp.ActiveDocument.SetVariable "DIMASZ", 2.5
    AcadApp.ActiveDocument.SetVariable "DIMTXT", 3.5
    AcadApp.ActiveDocument.SetVariable "DIMTIH", False
    AcadApp.ActiveDocument.SetVariable "DIMTOH", False
    AcadApp.ActiveDocument.SetVariable "DIMTAD", 1
   
End Sub

但是有以下两个问题:
1.adDimStyle在R14中并没有提供CopyFrom 方法
2.这个函数应该加载在什么位置,应该在打开图纸绘图之前吗?

wenyuan 发表于 2003-12-3 12:34:00

帮忙,多谢!

subtlation 发表于 2003-12-3 12:46:00

我早已经不用R14了,我现在用的是2004版了。
如果没有copyfrom方法,可以考虑用sendcommand来实现--我原来不知道copyfrom时就是用这个方法实现的,但运行的速度大大降低了。建议升级你的cad来得好些。R14肯定要被淘汰的。
至于加载的时间,看你自己什么时候需要。如果想每次打开就需要,那就每次打开文件时都自动加载。如果自动加载可以搜索有关帖子。--我也不是特别熟悉。

这是我原来在autocad2002里用的,可以参考一下。
ThisDrawing.SendCommand ("-dimstyle" & Chr(13) & "s" & Chr(13) & StyleName & Chr(13) & "y" & Chr(13))

wenyuan 发表于 2003-12-3 14:34:00

我也不想开发R14,没有办法

我试试看

真的非常感谢你!

wenyuan 发表于 2003-12-5 10:06:00

不行啊,还是没有这种方法。还有什么办法呢?多谢

zhaoguo 发表于 2003-12-6 20:23:00

r14中也没有sendcommand方法,我解决的办法是:1用vb中的sendkey函数,2用本站中提供的实用函数r14sendcommand。但都有缺陷,有时不能把字符串发送到命令行,还不知道什么原因。试一试吧。

wenyuan 发表于 2003-12-7 15:53:00

好的,我试试看,多谢了!
页: [1] 2
查看完整版本: 求助,关于设置系统变量