问题标签 [autocad]

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 回答
831 浏览

c# - 以编程方式刷新图层使用信息

在 AutoCAD 中,通过图层特性管理器 UI,用户可以刷新图形中图层的使用信息。当您拥有来自外部参照的图层时,信息有时会变得陈旧。在您的代码中,当您访问LayerTable绘图时,其记录将不包括它认为未使用的那些图层(在图层特性管理器 UI 中,灰色状态 = 未使用,蓝色状态 = 已使用)。为了让我进入这些层,我的程序首先需要刷新使用信息。有没有办法通过 .NET API、COM API 或命令行来做到这一点?

我也在 AutoCAD 论坛中同时寻求答案

http://forums.autodesk.com/t5/NET/Programmatically-refresh-layer-usage-information-NET/mp/2794756

0 投票
1 回答
3508 浏览

c# - 在不打开图形的情况下使用数据库获取图形的范围

在 AutoCAD .NET API 中,当您打开图形时,您可以使用环境变量 EXTMAX 和 EXTMIN 获取范围。但是,当您没有打开图形时,这些变量不会提供正确的值。您如何在不打开图纸的情况下获得这些相同的范围(AKA 使用数据库)?

0 投票
1 回答
1516 浏览

c# - 打开绘图时出现异常“错误解密数据”

我有一个程序可以对一些图纸进行批处理。当我尝试打开其中一张图纸时,会引发异常“错误解密数据”。这张图尤其是由 AutoCAD 以外的第三方工具生成的。此外,此问题仅在 AutoCAD 2011 中出现。在 AutoCAD 2010 中,它会提示用户文件是在 AutoCAD 之外生成的,但他们可以单击,批处理将继续。我尝试使用托管 .NET API 和 COM Interop API 打开它,但都给出了相同的错误。

这是来自 AutoCAD 表单的帖子,尽管它没有为我提供解决方案:

http://forums.autodesk.com/t5/NET/Error-Decrypting-Data-Acad-2011/td-p/2661762/highlight/true

托管 API

COM 互操作

0 投票
1 回答
424 浏览

java - 如何使用java将autocad文件导出为png?

如何在 Java 中将 AutoCAD 文件导出为 PNG 格式?

问候,

维姆

0 投票
2 回答
1247 浏览

csv - 从 Autocad 获取实体数据

这是一个两部分的问题。

1)有没有办法使用autocad或其他方法获取autocad dwg的所有实体数据(包括xdata)的csv文件?

2) 有没有一种简单的方法来解析 AutoCAD dxf 文件以将实体数据转换为 csv 文件?

0 投票
1 回答
4429 浏览

lisp - 如何按实体名称选择 Autocad 实体以在 lisp 中的 autocad 命令中使用

这可能是我一直想念的简单事情,但是...

我可以获取实体名称,但无论如何要使用分配给变量的实体名称来让 Autocad 命令将该实体用作要作用的选定对象?

0 投票
1 回答
691 浏览

oracle10g - 如何使用 Oracle10g Spatial 函数或任何其他 API 在不规则多边形内查找点 (x,y)

我在使用 GIS 或几何数据方面非常陌生。我在 oracle10g 数据库中有几何数据(多边形)。是否有任何空间函数可以在该多边形内找到一个点。如果没有,那么任何工具(如 .Net 的 geotools 或任何其他 API)都可以帮助我。多边形内部可以有孔。所以点必须在多边形区域中。

在此先感谢您的帮助

奈姆

0 投票
2 回答
1066 浏览

.net - 有哪些方法可以安装和更新 .NET AutoCAD 插件

现在我有一套用于 AutoCAD 的工具,可以部署给我们公司的用户。目前,它们正在通过我通过 Visual Studio 安装项目维护的 msi 进行部署。这些文件包括我们的一些自定义命令和 lisp 函数的 .NET dll,以及许多脚本、lisp、.pc3、.ctb 等文件。目前的安装方法是这样的:

在登录时,它会检查机器是否安装了工具或需要更新。如果它们没有安装,那么它会静默运行 msi。如果它们已安装但需要更新,则它会进行卸载,然后也静默安装。

当用户关闭 AutoCAD 时,它也会运行相同的方法,只是它通过系统托盘通知用户在更新完成之前不要重新打开 AutoCAD。

现在看来,登录或更新程序并不总是有效,因为我有用户因缺少组件而出现错误,而且它们似乎是随机发生的。我假设其中一个 msis 正在中断中间进程。

考虑到我需要能够即时更新(即告诉用户退出 AutoCAD 并重新进入以接收更新),有哪些替代方法可以更新我的 AutoCAD 插件?

0 投票
2 回答
2085 浏览

.net - 如何从 AutoCAD 中的给定 COM 对象获取 .NET 对象

我有一个用 VB.NET 编写的 AutoCAD 2008 插件。该插件主要使用 COM 接口来访问 ACAD 对象。

我目前正在从 COM 接口切换到托管接口,并且有以下问题:如何从给定的 COM ACAD 对象中获取匹配的托管 ACAD 对象。

示例:我有一个AcadBlockReference对象,但我不想让该BlockReference对象指向绘图中的同一对象。我如何得到这个对象或者它的ObjectID

0 投票
2 回答
765 浏览

.net - Activator.CreateInstance 启动不同路径的应用程序

我正在处理这个项目,.Net EXE 将启动 AutoCAD 并运行一些代码。谷歌搜索后,我有以下选项:

a) Activator.CreateInstance
b) Process.Start

如果我使用 b),AutoCAD 启动后很难控制代码。所以 a) 是唯一的选择。在我客户的机器上,可能安装了多个 AutoCAD,不同的版本(2008、2009、2010、2011 等)、不同的偏好(AutoCAD Vanilla、AutoCAD Map、AutoCAD Architecture 等)。对于不同的版本,我可以添加版本号,如 AutoCAD.Application.17.1 为 2008。现在不同的喜好是我需要弄清楚的唯一问题。例如,我的机器上安装了 AutoCAD Map 和 AutoCAD Architecture。它们位于不同的文件夹中。Activator.CreateInstance 总是启动最近运行的一个。即使我只使用 AutoCAD Architecture,如何在我的 exe 中启动 AutoCAD Map。