jbuzbee 发表于 2008-3-18 16:42:27

使用VBA添加/删除样式覆盖

我正在尝试将一些旧的ABS/MEP图纸更新为新的office标准,并希望使用VBA进行大量的自动更新……但……我似乎不知道如何访问信息以应用或删除对特定系统的覆盖。我想扩展词典在这方面起到了一定的作用,但我在这方面没有太多经验,所以我正在寻求帮助。有人能给我指出正确的方向吗
我认为墙、门和窗基本上是一样的(只是名称不同),所以如果您有关于如何更改AEC对象的任何片段,如果您愿意分享,我想看看它们
以下是我到目前为止得到的信息。
Public Sub PipeSystemDefinitions()
    Dim oPlumbingSysDef As AecbPlumbingSystemDef
    Dim oPlumbingSysDefs As AecbPlumbingSystemDefs
    Dim oDB As New AecbPlumbingDatabase
    Dim oDictionary As AcadDictionary
   
    oDB.Init ThisDrawing.Database
    Set oPlumbingSysDefs = oDB.PlumbingSystemDefs
   
    For Each oPlumbingSysDef In oPlumbingSysDefs
      If oPlumbingSysDef.Name"Standard" Then
            Debug.Print oPlumbingSysDef.Name
            Set oDictionary = oPlumbingSysDef.GetExtensionDictionary
      End If
    Next oPlumbingSysDef
End Sub
**** Hidden Message *****

jbuzbee 发表于 2008-3-18 17:01:14

本不再经常来这里了,但我会打电话给他,看看如果没有人插话,他是否会看看这个帖子。很确定他做过类似的事情。

jbuzbee 发表于 2008-3-18 20:28:26

*环顾四周*
哪个本??!?

jbuzbee 发表于 2008-3-18 21:06:01

Ben又名Bashworth又名CSO又名CorpSellOut。我把他指向了我能做的最多的线程。我知道他在ADT对象上做了一些挣扎。

jbuzbee 发表于 2008-3-18 21:08:20

谢谢!

jbuzbee 发表于 2008-3-19 11:50:30

Matt,
我们使用ADT,现在是AutoCAD Architecture。你们用项目导航器吗?它有一个漂亮的项目标准功能,可以在整个项目中更新样式
如果没有,您可以通过编程更改内容,甚至可以使用ObjectDBX。请注意以下几点:
(setq wallobj(vlax-ename->vla-object(car(entsel))))
(setqwallstyle(vlax-get wallobj 'style))
(vlax-dump-Object wallobj t)
(vlax-dump-Object wallstyle)
(vlax-put wallobj 'stylename "MyStyle")
你只需要知道每个集合支持的方法….
哎呀-我刚刚在VBA论坛上发布了VLISP代码-抱歉。(无论如何,lisp更好:丑陋:)

jbuzbee 发表于 2008-3-19 15:55:53


我们不使用项目导航器。 我们仅使用图纸集管理器来打印绘图。

jbuzbee 发表于 2008-3-19 17:28:15

伙计-项目领航员是上帝。这是自mirrtext sysvar以来AutoDesk最好的发明!
我强烈建议您花点时间看看它能做些什么。如果你有任何问题,就问我,我会尽力回答。。
页: [1]
查看完整版本: 使用VBA添加/删除样式覆盖