问题标签 [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.

0 投票
1 回答
78 浏览

location - Autocad ObjectARX 类 AcDbGeoPositionMarker 坐标转换

AcDbGeoPositionMarker 类如何将 x、y、z 坐标转换为 lat、lon、elv,反之亦然?

0 投票
0 回答
1605 浏览

c++ - 由于可能缺少 dll,VC++ 单元测试项目无法设置执行上下文来运行测试

VC++ 新手在这里:

我正在尝试对使用第三方库(特别是 AutoDesk 的 ObjectARX)的项目进行 TDD。

我已经能够使用 unittest 项目和 helloworld ARX 项目创建一个虚拟解决方案。我可以成功测试一个虚拟方法,一切都很酷。

但是当我从 ObjectARX 库中调用任何东西时,单元测试会失败

在挖掘并使用 Dependency Walker 之后,我发现编译的 dll 无法找到acdb21.dll与 ARX 库之一命名相同的 dll。它期望在与编译的 dll 相同的文件夹中找到它。

我没有acdb21.dll,只有.hand.lib文件。我的理解是它们应该被编译成dll。

链接器很高兴找到.h.lib文件,因此 AFAICT 包含和库路径都设置正确。

Dependency Walker 报告的丢失的 dll 是红鲱鱼吗?还有什么不妥吗?

0 投票
3 回答
2822 浏览

autocad-plugin - 如何检查线或点是在区域内还是区域外

在 ModelSpace 中,我有一个由一些曲线限制的区域(加入它们以获得 AcDbRegion)。

我也画了AcDbLine。

我需要的是分割线以仅在区域内获取线。

我知道如何获得交点,但我怎样才能找到连接两个交点的线是否在里面?还是区外?

0 投票
2 回答
567 浏览

c# - AutoCAD resbuf 迁移

我有一个用 C++ 编写的应用程序,我必须将它迁移到 C#。此应用程序是 AutoCAD 的扩展。

C++ AutoCAD API 中的 resbuf 是一个链表,它处理所有 AutoCAD 基本数据类型。看起来像这样

因此,每个 resbuf 都包含 restype 成员描述的特定数据。例如,代码为 410 的 restype 是图层名称。所以在 C# 上它看起来像这样

在该应用程序中,resbuf 结构被用作处理 AutoCAD 对象的一种方式,无论我遇到 resbuf,我都会直接使用对象(线、折线、多行文字等)对其进行更改。

但是现在我发现resbuf的用法是代码10,我打开文档发现如下

10:主要点。这是线或文本实体的起点、圆心等。

而且我不知道迁移它的方式。因为对于每个对象,它都是不同的属性。唯一的想法是这样的。

但我不喜欢它。可能有更好的方法来做到这一点。你有什么主意吗?

0 投票
1 回答
382 浏览

drawing - AutoCAD:从内存而不是文件打开图形/数据库

我正在开发一个插件,使 AutoCAD 能够打开我的加密图纸。我想避免必须将绘图解密为磁盘上的 dwg 文件。但是,在 AutoCAD 中打开图形的 API 似乎都只适用于文件路径。是否有任何其他方法可以在 AutoCAD 中加载图形/数据库,而不涉及在硬盘上保存 dwg 文件?

引起我注意的是

AcDbDatabase::readDwgFile(AcDwgFileHandle * pDwgFile, ...)

函数,但我无法找到有关 AcDwgFileHandle 类的任何信息。如果它只是 Win32 HANDLE 或其他东西的包装器,它会很容易解决我的问题。

谢谢你的帮助。

0 投票
0 回答
118 浏览

autocad-plugin - 使用 acedGetDist 时,如何检查用户输入值是通过键盘还是通过点?

当我们要求用户选择距离时,acedGetDist用户可以通过键盘输入值,如 '4.0' ,或单击对或点。一切都很好,只要用户以 1:1 的比例绘制。但是当用户想要绘制其他比例时,点给出的距离是相同的,但是如果用户输入值我需要重新计算它。如何检查用户输入值的方式?

首先,我尝试检查系统变量“lastpoint”,但在 acedGetDist 中选择点时它没有更新。我用的是中望CAD(可能是没有更新的原因)

任何想法如何检查用户输入值的方式?

0 投票
2 回答
1055 浏览

c# - 如何等到 Acad 的实例运行才能创建新文档?

我正在使用 objectARX 并尝试创建一个新文档。我首先要做的是运行 AutoCad。

然后问题是当我等到 Acad 的实例准备好时。由于 Autocad 窗口尚未准备好并且我无法创建 AcadApplication 实例,因此我无法使用 Process 类以他的名字获取进程。它仅在 Autocad 完全加载时才有效,所以我使用 .

线程中运行的 acadGrid 方法在 AutoCad 中创建一个新文档,然后绘制一个网格。它有时工作有时不工作,当它工作时,它甚至会使用 50% 的 CPU。有时我得到这个例外。 在此处输入图像描述

0 投票
2 回答
579 浏览

c++ - AutoCAD C++ 何时需要打开 AcDbEntity 进行读取?

我不确定何时需要打开实体进行读取,何时可以省略。例如,我知道我在想使用时不需要打开实体,objectId()但是之前有一些方法需要打开实体。不知道有没有必要先AcDbPolylinegetArcSegAt()。在许多情况下,我可以简单地尝试在方法打开之前使用它,我会得到我想要的或不想要的。但也许有一些简单的规则?

例子:

now_pPoly已初始化,但由于pEnt->close(); 现在我想关闭它,例如使用:

我需要:

前:

0 投票
1 回答
145 浏览

autocad-plugin - AutoCAD ARX 函数获取选定点周围的封闭区域

在我的记忆深处,有信息表明在 AutoCAD API ObjectARX 中,有一个函数可以在已知点周围获取封闭区域,但我不记得这个函数的名称。它的工作原理类似于命令_boundary,但不是可以由用户界面运行的命令,而是clead ARX function。有人能记住这个函数的名字吗?

0 投票
1 回答
108 浏览

autocad-plugin - 有什么方法可以强制 acedTraceBoundary 总是返回区域

在这里我们可以读到 resultsBoundarySet :“包含 AcDbPolyline* 对象形式的结果边界”,但有时我们会得到一组 AcDbRegions* (当边界可能包含样条线时)。区域是我需要的。你知道有什么方法可以强制acedTraceBoundary总是创建AcDbRegionAcDbPolylines吗?