gpt4 book ai didi

vba - 如何在 VBA 中查找可用于语法的选项

转载 作者:行者123 更新时间:2023-12-01 03:11:23 26 4
gpt4 key购买 nike

我不确定标题的适当术语。如果我的标题不好,请提出修改建议

情况

我正在通过 Excel 的 VBA 运行 AutoCAD。作为我编码的一部分,我在 AutoCAD 中对基本尺寸样式进行硬编码。我没有使用 ANNOTATIVE 尺寸样式。我的计划是根据需要复制基本尺寸样式,并根据需要更改比例因子。

问题

我找到了this snippit of code这基本上给了我遵循的想法。问题是我想设置每个维度选项。我知道如果我在 AutoCAD 中查看,我可以在手动设置样式或查看尺寸的属性窗口时看到很多不同的选项。它们有很多,这些位置的名称是为了便于阅读,不一定等于它们 VBA 名称的确切语法。我可以去哪里或应该阅读什么来确定“。”之后可以使用哪些名称。 ?

我还发现在执行此操作时,一些值不是典型值,而是非常特殊的术语。 IE。 acAbove,acHorzCentered?我应该在哪里查看潜在值(value)是什么?经过一个小时左右的搜索,我偶然发现了 this site这给了我箭头的潜在值(value),但我希望有一种比谷歌+猜测搜索词+点击随机结果更快更直接的方法。

到目前为止我已经尝试过什么

GOOGLE 搜索 wazoo 以获取链接

Horizontal Options (useful results but random discovery)

Creating Dimensions (not what I was looking for)

我当前的代码:

Dim DimStyle As AcadDimStyle


Set DimStyle = DWGFILE.DimStyles.Add("mm-0001")

With DimStyle
.Color = acByLayer
.ExtensionLineExtend = 2
.Arrowhead1Type = acArrowDefault
.Arrowhead2Type = acArrowDefault
.ArrowheadSize = 3
.TextColor = acWhite
.TextHeight = 2.5
.UnitsFormat = asDimLDecimal
.PrimaryUnitsPrecision = acDimPrecicisionZero
.TextGap = 2
.LinearScaleFactor = 1
.ExtensionLineOffset = 2
.VerticalTextPosition = acAbove
.HorizontalTextPosition = acHorzCentered
End With

Set DimStyle = DGWFile.DimStyle.Add("mm-" & Format(DimScale, "0000"))

'todo list
'copy base dimstyle to new name
'change scale factor in new name

概括

您如何找到我可以与 Dimstyle(又名 AcadDymStyle)一起使用的所有尺寸选项的完整列表,例如:
.Color
.ExtensionLineExtend
.Arrowhead1Type

您如何找到它们可以相等的值的完整列表,例如
.VerticalTextPosition = acAbove
.VerticalTextPosition = acBelow

现在在我的具体示例中,它是 autocad,但我认为这是非常通用的,因为我在 Excel 中为类似的事情拼了命,最终找到了一些恰好使用该术语正在寻找的随机代码。因此,虽然 AutoCAD 特定的答案将极大地帮助我解决这个特定的情况。我也在寻找一般情况下,当我在 Excel 上工作时,它也有望使我的头免受一些瘀伤。

更新

所以我在 ObjectBrowser (F2) 中闲逛。我可以在 Classes 下找到 AcadDimStyle,我可以在相邻的窗口中看到一堆成员,我假设这些成员是我可以在“.”之后使用的东西。 Thins 似乎是一个很好的起点。对于我在这个问题中作为示例所举的具体案例,令我感到困惑的部分是,并非所有在“。”之后使用的东西。显示在此列表中。

ObjectBrowser

从屏幕截图来看,没有证据表明:
.Color
.ExtensionLineExtend
.Arrowhead1Type

我错过了什么吗?

最佳答案

AutoCAD 中的标注样式有点特殊。
而其他符号表记录对象(例如 Text Style object )具有与其所代表的 AutoCAD 元素相关的 ActiveX 属性和方法(例如,Text Style object 具有 fontfile height obliqueangle 属性),一个 Dimension Style object仅具有符号表记录所需的最少属性:对父对象的引用、唯一标识符(句柄/对象 ID)和名称。
相反,尺寸样式的属性存储在 DIMSTYLE 中的 DXF 数据中。符号表,并且,如果维度样式处于事件状态,则由维度样式系统变量集(DIMPOSTDIMAPOSTDIMBLKDIMSCALEDIMASZDIMEXO 等)保存的值。 ) - 您可以使用 AutoCAD SETVAR命令以下列方式获取此类系统变量的完整列表:

Command: SETVAR
Enter variable name or [?]: ?
Enter variable(s) to list <*>: DIM*
现在,虽然您可以访问 DIMSTYLE 持有的 DXF 数据AutoLISP 中使用 tblsearch 的符号表记录函数,它可能会产生一个关联列表,如下所示:
_$ (tblsearch "dimstyle" "standard")

(
(0 . "DIMSTYLE")
(2 . "Standard")
(70 . 0)
(3 . "")
(4 . "")
(5 . "ClosedBlank")
(6 . "")
(7 . "")
(40 . 1.0)
(41 . 1.0)
(42 . 1.0)
(43 . 0.0)
(44 . 0.2)
(45 . 0.0)
(46 . 0.0)
(47 . 0.0)
(48 . 0.0)
(140 . 1.0)
(141 . -1.0)
(142 . 0.0)
(143 . 25.4)
(144 . 1.0)
(145 . 0.0)
(146 . 1.0)
(147 . 1.0)
(71 . 0)
(72 . 0)
(73 . 1)
(74 . 1)
(75 . 0)
(76 . 0)
(77 . 0)
(78 . 0)
(170 . 0)
(171 . 2)
(172 . 0)
(173 . 0)
(174 . 0)
(175 . 0)
(176 . 256)
(177 . 256)
(178 . 0)
(270 . 2)
(271 . 2)
(272 . 2)
(273 . 2)
(274 . 2)
(340 . <Entity name: 7ffff703910>)
(275 . 0)
(280 . 0)
(281 . 0)
(282 . 0)
(283 . 1)
(284 . 0)
(285 . 0)
(286 . 0)
(287 . 3)
(288 . 0)
)
据我所知,这些数据无法通过 VBA 访问。
但是,由于控制 Dimension 对象本身外观的各个属性可以 覆盖 用于创建它们的尺寸样式,例如 维度对象具有对应于每个可配置维度样式设置的 ActiveX 属性 .可以找到这些属性的引用 here .
TL;博士
因此,在以编程方式创建和配置新的尺寸样式时,您有三个选项:
  • 临时创建维度对象,配置properties相应地,然后使用 CopyFrom 方法将此类属性复制到新的尺寸样式。
  • 相应地设置各种标注样式系统变量的值(使用 AutoCAD SetVariable 对象的 Document 方法),然后使用 CopyFrom 使用 AutoCAD Document 的方法对象为 SourceObject参数,以便将此类属性复制到您的新维度样式。
  • 在单独的模板图中配置尺寸样式并使用 CopyObjects 方法通过 ObjectDBX 接口(interface)将尺寸样式导入目标图形。我在我的 Steal from Drawing 中演示了这种方法应用程序 - 此应用程序的代码是 AutoLISP,但可以轻松移植到 VBA。
  • 关于vba - 如何在 VBA 中查找可用于语法的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51902092/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com