【问题标题】:Changing Autocad parametric block's parameters from .net从 .net 更改 AutoCAD 参数块的参数
【发布时间】:2017-02-04 19:54:20
【问题描述】:

我想将参数值传递给 .net 应用程序中的 Autocad 参数块。 一个简单的参数是“d1”(距离)。

我正在编写一种复杂的 asp.net 产品配置器应用程序,它会根据用户输入生成一个 2D dxf 文件。 我使用 Unity webgl 在网页中渲染 3D,但我还需要在运行时创建一个 dxf 文件,因为需要兼容 Autocad 的 2D 部分。

为了避免从头开始创建该部分,我发现参数块可能是一种解决方案:设计师为我提供了一个非常复杂的参数块,我在运行时将参数传递给它,以便可以下载输出文件。

不知何故需要两个任务:

1) 将参数传递给参数块

2) 将其保存到简单的 dxf 中(我不感兴趣它是传递参数后的参数块)

我无法弄清楚在 .net 中执行此操作。

【问题讨论】:

  • 我发现我能够编辑块比例和其他属性,但最终无法使用 API 中的参数块。见stackoverflow.com/questions/19290030/…
  • @reckface 你能给我一个关于 API 的指针吗?它们到底是什么?我无法从您链接的问题中理解为什么参数块不可用。谢谢。
  • 我使用了block.GetDynamicBlockProperties(),然后遍历属性并尝试设置值,但是对block没有任何影响。我可以 _document.ModelSpace.InsertBlock(coordinate.Point, name, scale, yScale, scale, angleInRadians) 然后缩放它,但这就是你得到的全部

标签: asp.net autocad


【解决方案1】:

要更改动态块的参数,您可以使用GetDynamicBlockProperties 获取属性,然后您可以更改每个属性的值。

这里有一个 VBA 示例:http://visiblevisual.com/jupgrade/index.php/autocad-vb-vba/9-insert-dynamic-block

要将绘图保存到 DXF 文件,您可以使用 Document.SaveAs(fileName, AcSaveAsType.ac2000dxf)

但是,如果您正在构建网站,则应使用 Forge Design Automation API(以前称为 AutoCAD I/O API)而不是驱动 AutoCAD 实例(这不可靠,AutoCAD EULA 不允许你这样做)。你也可以使用Teigha

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2021-06-22
    • 1970-01-01
    • 2019-03-22
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    相关资源
    最近更新 更多