问题标签 [objectarx]
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.
c# - AutoCAD 中的选择更改跟踪
在我的项目中,我需要跟踪实体选择的变化,并以我需要的方式更改选择集(比如过滤)。我将委托添加到 Document.ImpliedSelectionChanged 我检查选择更改:
,但是当我不按 Escape 键时它可以工作。按下 Escape 后,不再触发事件。
我不需要设置要跟踪的选定子实体,因此 Editor.SelectionAdded 和 Editor.SelectionRemoved 事件也帮不了我。
所以问题是:如何使用 C# ObjectArx 框架观察 AutoCad 文档中当前选择的变化?
c# - 如何从 AutoCad 绘图中隐藏实体?
如何隐藏 DBEntity 不被绘制?如果我在事务中使用 ent.erase() 调用将某个对象标记为已删除,例如,当我保存文件时,它可以从绘图中删除。那么有什么方法可以安全地隐藏某个对象而不更改它的 ObjectId 和 Handle 吗?
c++ - AutoCAD实体可以序列化吗?
使用 AutoCAD 2010 的 ObjectARX (C++),可以序列化 AutoCAD 实体吗?
我们需要将序列化的实体保存在数据库(Oracle、PostgreSQL 等,而不是 AcDbDatabase)的字段中。如果您告诉我如何将它们保存在磁盘中,就可以了,如下所示:
谢谢
c++ - 如何在移动或缩放时覆盖 AcDbEntity::transformBy 以获取自定义实体转换?
我正在实现从 AcDbEntity 派生的自定义实体。我在重载的 subWorldDraw 函数中绘制了一些线条和文本标签,我希望我的实体能够被缩放、移动、旋转,所以据我所知,我应该重写 AcDbEntity::transformBy,如此处所写。但是当我尝试添加这个方法时,编译器会出现一个错误,告诉我这个方法是密封的。还有其他方法可以让我的实体对用户完成的转换负责吗?
c# - c# Autocad Map 3D 2012 获取用户绘制的对象
是否可以发送一个字符串来执行 Map 并找出用户以更简单的方式绘制了哪些对象?我觉得我做的事情太多了……
这是命令:
到目前为止,我所做的是订阅对象附加事件和命令结束事件,然后调用 sendStringToExecute 并从那里检查数据库中的所有新对象并保留对我找到的对象的引用用户已绘制。
所以首先:
和
命令执行时:
Autocad 在执行 _MPOLYGON 命令时将对象添加到数据库中,因此我保留了对所有对象的引用。AutoCAD 在用户绘图时将点和线添加到数据库中。例如,对于一行的第一次和第二次单击似乎已放入数据库中。此外,当将多边形添加到工作数据库时,并不意味着它是最后一个。最后添加的对象也不保证是真实对象。
然后当命令结束时,我会寻找正确的 objectId,即使绘制了很多多边形,也只有 1 个有效的 objectId 引用了一个或多个绘制的多边形。
我想知道是否有更好,更可靠的方法来做到这一点?可能类似于当您提示选择对象时,这会返回一个包含所有对象的选择集。有没有一种方法可以“promptForPolygon”或类似的方法,一旦用户绘制它们就会返回我新的对象?
c# - 将 AutoCAD 图层导出到 ESRI shapefile
我需要将 Autocad2013 绘图中特定图层的特征导出为 ESRI shapefile 格式。当我使用 时c#
,我已经为 Autocad 下载了 ObjectARX。但我不知道是否有任何库支持直接转换为 shapefile 格式。
如果有人能提供正确的建议,我将不胜感激。
autocad - AutoCAD 2013 - 错误:ARXLOAD 失败
目前我有 AutoCAD 2012 并想升级到 AutoCAD 2013。
我有一个自定义添加到我的 AutoCAD。但是当我尝试加载这个时,我得到了这个:
COM.VLX 已加载。错误:ARXLOAD 失败
谁能帮我这个?我在某些地方读到arx加载发生了一些变化......
c# - 如何在不使用 Autocad.Interop 的情况下枚举 Autocad 实体?
我想枚举 Autocad 绘图中的所有实体,但不使用Autocad.Interop
参考。
使用互操作,我可以选择:
但是通过Object Arx
参考资料,我只能找到使用数据库中的事务获取实体的教程,通过 ID 获取对象。我认为放慢工作速度真的很无聊。
c++ - 将 VStudio 2008 VC++ 项目导入 VStudio 2010 ....使用 MFC
我正在将 Visual Studio 2008 VC++ 项目导入 VStudio 2010。我正在使用 Object arx 应用程序,我需要在其中包含他们的库文件。现在的问题是包含以前版本的库文件而不是当前版本,而如果我在 VStudio 2010 中打开一个新的示例项目,它应该包含当前版本的库文件.....
任何有关相同的帮助将不胜感激....
.net - .NET 中的 AutoCAD -INSERT 命令
我的任务是将 AutoCAD 插件从 VBA 转换为 VB.NET,但我目前有点卡住了。
我正在处理的命令创建一个新层(如果它已经存在,则选择它作为活动层),然后执行 2 个“-INSERT”命令,给出用户选择的点和一个 dwg 文件。然后,先前的有源层被重置为有源层。
插入命令看起来像这样:
注意:命令中的所有换行符都添加为vbCR
(not vbCrLf
)。
我的问题是,如何在 .NET 中针对 ObjectARX 获得相同的结果?我不能使用SendStringToExecute
,因为它是异步的(没有回调),所以换句话说,一旦它完成执行,我就无法重置当前层。必须有某种方法可以在纯 .NET 代码中复制此功能,可能使用 .NET 代码,BlockTable
但我不知道如何。
我试过按照这里找到的文章:http: //through-the-interface.typepad.com/through_the_interface/2006/08/import_blocks_f.html,但这对文档根本没有明显的影响。我也尝试使用myDatabase.Insert(transform, otherDatabase, False)
,命令提示符说明了已经存在的块,因此被跳过,但我仍然没有看到任何变化。我不知道“-INSERT”命令在幕后实际上有多大的魔力,但是在 .NET 中复制它是否可行?还是以某种方式可以作为普通方法调用(而不是作为发送以由 AutoCAD 处理的文本命令)?