问题标签 [autocad-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3280 浏览

c# - 正确使用 AutoCAD API 的 Document.SendStringToExecute 方法

我试图在以编程方式插入块之前标记我的绘图,以便如果由于错误而仅部分完成,我可以以编程方式撤消该操作。现在插入方法看起来像这样

MarkPosition 定义为

最后,像我上面那样将 MARKPOS 发送到命令行调用此方法

pointprompt 以某种方式击败了对 AutoCAD 命令行的 MARKPOS 调用,因此它尝试输入 MARKPOS 作为插入点,而不是暂停 C# 方法以等待 MARKPOS 作为命令执行。在提示插入点之前,如何向程序发出等待并执行 MARKPOS 命令的信号?我在 SendStringToExecute 调用之后尝试了 Thread.sleep() ,但没有成功。

0 投票
3 回答
5160 浏览

c# - 在 AutoCAD 中使用 Editor 类执行命令

我正在尝试创建一个按钮,当按下该按钮时,它会标记绘图的位置。现在方法看起来像这样。

但是,当我尝试执行该方法时,我得到下图所示的错误并且无法确定原因。

在此处输入图像描述

************** 异常文本 ************** Autodesk.AutoCAD.Runtime.Exception:Autodesk.AutoCAD.EditorInput.Editor.Command 处的 eInvalidInput( Object[] 参数)在 AutoCAD_Adapter.MyCommands.MarkPosition() 在 c:\Users\nickg\Documents\All Code\autocad-adapter\IOAutoCADHandler\myCommands.cs:Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo 的第 186 行mi, Object commandObject, Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) 在 Autodesk.AutoCAD。 Runtime.CommandClass.CommandThunk.Invoke()

0 投票
1 回答
783 浏览

c# - 如何在没有参考的情况下使用另一个项目的方法

我有两个项目 P1 和 P2(ClassLibrary 项目)。我将 P2 添加到 P1 的引用中。我需要从 P2 项目中的 P1 获取方法。

我尝试这样做:

但是当我按下button1时我有异常:

你调用的对象是空的。

这是 autoCad 插件。P1 从 P2 加载调色板,但调色板按钮的命令在 P1 项目中。

当 AutoCAD 运行时,调色板加载。当我按下按钮并尝试调用 Somemethod(); 时出现此错误 所有错误文本:

您的应用程序的组件中发生了未处理的异常。如果单击继续,应用程序将忽略此错误并尝试继续。你调用的对象是空的。

Somemethod() 必须在 AutoCad AutoCad 中运行新绘图 仅使用一个 dll(P1 项目)从第二个 dll(P2 项目)加载 UI 调色板我需要从第一个 .dll(P1 项目)加载调色板的方法

0 投票
2 回答
2110 浏览

c# - 将 C# 对象存储到 AutoCAD 实体的 XRecord

我正在尝试找到一种方法,可以将 C# 类作为 XRecord 存储到 AutoCAD 实体中。例如,我有以下课程:

我创建了一个实例:

将其存储到 AutoCAD 实体(例如图形中的一条线)XRecord 中的最佳方法是什么,以便我可以执行以下操作:

其中 GetXRecordFromEntity(Entity e) 是我可以编写的一个辅助方法,它接受一个实体 e,获取我之前存储的对象的 XRecord,然后返回它。

我对 XRecord 的工作原理以及 XRecord 与 AutoCAD 的命名对象字典 (NOD) 的关系没有很好的了解。我已经看到了使用二进制格式化程序对要存储在 XRecord 中的对象进行序列化并将序列化数据存储在实体的 XRecord 中的实现,但我正在寻找更好的方法。

0 投票
2 回答
355 浏览

c# - C# 无法绑定到目标方法

我正在努力将 C# 对象序列化为 AutoCAD 实体。我有一个序列化它们的方法,我试图从 AutoCAD 命令行调用这个方法来反序列化它们。

但是,当我调用它时,我收到了这个错误并且不知道为什么,因为它没有给出行号或有用的调试信息。

在此处输入图像描述

0 投票
2 回答
2058 浏览

c# - 无法加载类型“System.Windows.Input.ICommand”

我正在使用 Object ARX 2015 和 .Net Framework 为 AutoCad 编写扩展。在我的电脑上一切正常。但是当我尝试在其他计算机上使用我的 .dll 时。我收到此错误:

异常文本

System.TypeLoadException:无法从程序集“System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”加载类型“System.Windows.Input.ICommand”。在 Extension.MyCommands.KeelRibbon() 在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) 在 Autodesk .AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) 在 Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()

0 投票
2 回答
1858 浏览

c# - 使用 C# 以编程方式将 AutoCAD 实体连接到块中

我正在尝试编写一个方法,提示用户选择他们想要组合到一个块中的所有实体,然后将它们连接到一个块中并返回块引用。现在它看起来像这样。

我的问题是我不知道如何或是否可以获取实体列表并将它们加入块引用中。

0 投票
1 回答
107 浏览

c# - 导入多个 DXF 文件时实体错误

我有 3 个不同BlockTableRecord的要更新。我正在加载包含每个块定义的实体的外部 .dxf 文件。现在,当我删除旧实体并加载新实体时,它工作得非常好,但是一旦我开始更新第二个(第三个等)实体,它就会BlockTableRecord再次使用第一个实体。它甚至发生在保存并重新加载整个绘图之后。

GetPositionBlock()根据其 XData获取BlockTableRecord我要更新的内容。错误不在此方法中,因为它获得了要更新的正确块。

我仔细检查了每个值。它从不使用相同的 guid、名称或类似的东西。似乎问题出在某处blockId_dataBase.Insert(...). 似乎某些值在第一次使用时被覆盖或设置,之后没有任何重置。有什么想法可能导致这个问题吗?非常感谢任何提示或帮助。

0 投票
0 回答
111 浏览

c# - 将块定义导入 AutoCAD 的 AC# 方法

我正在尝试编写一种以编程方式将块导入图形的方法,以便我的 .NET 插件可以将这些块的实例放入图形中。现在我的方法是这样的:

我想要的是文件路径在字符串数组 filesToTryToImport 中的所有块在我插入块时显示为选项

在此处输入图像描述

因此,例如,如果 One-Inch-Block 最初不在列表中,但它的文件路径作为字符串传递给传递给此方法的数组中的字符串,则它成为一个选项。

0 投票
1 回答
1977 浏览

vb.net - 如何在 winform vb.net 上嵌入 Autodesk Viewer

我需要完成一个旧项目,其中 AutoDesk Viewer 嵌入在 Winform 上。这个项目是几年前使用我假设的旧版本 Autodesk 完成的。我可以在参考资料中看到他们有一个 AxACCTRLLib.AxAcCtrl.dll。我下载了 Autodesk Design Review 2013。我的问题是嵌入式视图的 .dll 库有不同的名称?因为我找不到任何与上面显示的库名称相同的库。这个项目在另一台电脑上,所以我必须安装新的 autocad 等。

下面是显示 Autodesk 查看器控件的项目的屏幕截图。任何帮助请我已经研究了一段时间没有任何成功

Winform AutoDeskVwr 嵌入式