问题标签 [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.
location - Autocad ObjectARX 类 AcDbGeoPositionMarker 坐标转换
AcDbGeoPositionMarker 类如何将 x、y、z 坐标转换为 lat、lon、elv,反之亦然?
c++ - 由于可能缺少 dll,VC++ 单元测试项目无法设置执行上下文来运行测试
VC++ 新手在这里:
我正在尝试对使用第三方库(特别是 AutoDesk 的 ObjectARX)的项目进行 TDD。
我已经能够使用 unittest 项目和 helloworld ARX 项目创建一个虚拟解决方案。我可以成功测试一个虚拟方法,一切都很酷。
但是当我从 ObjectARX 库中调用任何东西时,单元测试会失败
在挖掘并使用 Dependency Walker 之后,我发现编译的 dll 无法找到acdb21.dll
与 ARX 库之一命名相同的 dll。它期望在与编译的 dll 相同的文件夹中找到它。
我没有acdb21.dll
,只有.h
and.lib
文件。我的理解是它们应该被编译成dll。
链接器很高兴找到.h
和.lib
文件,因此 AFAICT 包含和库路径都设置正确。
Dependency Walker 报告的丢失的 dll 是红鲱鱼吗?还有什么不妥吗?
autocad-plugin - 如何检查线或点是在区域内还是区域外
在 ModelSpace 中,我有一个由一些曲线限制的区域(加入它们以获得 AcDbRegion)。
我也画了AcDbLine。
我需要的是分割线以仅在区域内获取线。
我知道如何获得交点,但我怎样才能找到连接两个交点的线是否在里面?还是区外?
c# - AutoCAD resbuf 迁移
我有一个用 C++ 编写的应用程序,我必须将它迁移到 C#。此应用程序是 AutoCAD 的扩展。
C++ AutoCAD API 中的 resbuf 是一个链表,它处理所有 AutoCAD 基本数据类型。看起来像这样
因此,每个 resbuf 都包含 restype 成员描述的特定数据。例如,代码为 410 的 restype 是图层名称。所以在 C# 上它看起来像这样
在该应用程序中,resbuf 结构被用作处理 AutoCAD 对象的一种方式,无论我遇到 resbuf,我都会直接使用对象(线、折线、多行文字等)对其进行更改。
但是现在我发现resbuf的用法是代码10,我打开文档发现如下
10:主要点。这是线或文本实体的起点、圆心等。
而且我不知道迁移它的方式。因为对于每个对象,它都是不同的属性。唯一的想法是这样的。
但我不喜欢它。可能有更好的方法来做到这一点。你有什么主意吗?
drawing - AutoCAD:从内存而不是文件打开图形/数据库
我正在开发一个插件,使 AutoCAD 能够打开我的加密图纸。我想避免必须将绘图解密为磁盘上的 dwg 文件。但是,在 AutoCAD 中打开图形的 API 似乎都只适用于文件路径。是否有任何其他方法可以在 AutoCAD 中加载图形/数据库,而不涉及在硬盘上保存 dwg 文件?
引起我注意的是
AcDbDatabase::readDwgFile(AcDwgFileHandle * pDwgFile, ...)
函数,但我无法找到有关 AcDwgFileHandle 类的任何信息。如果它只是 Win32 HANDLE 或其他东西的包装器,它会很容易解决我的问题。
谢谢你的帮助。
autocad-plugin - 使用 acedGetDist 时,如何检查用户输入值是通过键盘还是通过点?
当我们要求用户选择距离时,acedGetDist
用户可以通过键盘输入值,如 '4.0' ,或单击对或点。一切都很好,只要用户以 1:1 的比例绘制。但是当用户想要绘制其他比例时,点给出的距离是相同的,但是如果用户输入值我需要重新计算它。如何检查用户输入值的方式?
首先,我尝试检查系统变量“lastpoint”,但在 acedGetDist 中选择点时它没有更新。我用的是中望CAD(可能是没有更新的原因)
任何想法如何检查用户输入值的方式?
c++ - AutoCAD C++ 何时需要打开 AcDbEntity 进行读取?
我不确定何时需要打开实体进行读取,何时可以省略。例如,我知道我在想使用时不需要打开实体,objectId()
但是之前有一些方法需要打开实体。不知道有没有必要先AcDbPolyline
开getArcSegAt()
。在许多情况下,我可以简单地尝试在方法打开之前使用它,我会得到我想要的或不想要的。但也许有一些简单的规则?
例子:
now_pPoly
已初始化,但由于pEnt->close();
现在我想关闭它,例如使用:
我需要:
前:
autocad-plugin - AutoCAD ARX 函数获取选定点周围的封闭区域
在我的记忆深处,有信息表明在 AutoCAD API ObjectARX 中,有一个函数可以在已知点周围获取封闭区域,但我不记得这个函数的名称。它的工作原理类似于命令_boundary,但不是可以由用户界面运行的命令,而是clead ARX function。有人能记住这个函数的名字吗?
autocad-plugin - 有什么方法可以强制 acedTraceBoundary 总是返回区域
在这里我们可以读到 resultsBoundarySet :“包含 AcDbPolyline* 对象形式的结果边界”,但有时我们会得到一组 AcDbRegions* (当边界可能包含样条线时)。区域是我需要的。你知道有什么方法可以强制acedTraceBoundary
总是创建AcDbRegion
不AcDbPolylines
吗?