问题标签 [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 回答
1704 浏览

c# - 在 C# 中查找 AutoCAD 属性的单位

我正在获取模型空间中的所有对象以绘制 AutoCAD 图形。这些对象有各种类型,如 Pipe、Duct、DuctFitting、Line、Mesh、Solid3D 等,所以我正在编写逻辑来通过使用 TypeDescriptor 反映来确定它们的属性。我想知道是否有一种更聪明的方法来获取对象的所有属性,以及是否有一种方法可以确定给定项目的度量单位。我知道如何查看绘图使用的单位,但我如何判断名为“长度”的属性实际上是使用绘图中的单位(如英尺或米)的长度?

这是我必须枚举所有我想要的项目的代码:

0 投票
1 回答
247 浏览

c# - 如果从 AutoCAD 初始化,Mono 插件不会加载

我有一个相当复杂的应用程序,这个应用程序的结构如下:

Main.exe(是一个独立的应用程序)

Main.exe用途Project1.dll(其中包含一个表格)

中包含的表单Project1.dll由另一个 dll ( Project2.dll) 扩展,使用mono.addins

Main.exe我可以看到以正确方式扩展的表单。

我还实现了一个Project3.dll通过 autocad 内部加载的 autocad 连接器(比如 )netload,该连接器使用 的形式,Project1.dll并且该形式也必须在 autocad 中扩展。

结果是在 AutoCAD 中我的表单似乎没有扩展,如果我调试代码:

foreach 不会产生任何插件。

请注意,这些 .dll 中的每一个都存储在同一目录中。

我想问题出在 autocad exe 文件的不同位置,但我尝试了一些调整,但都没有工作..

我试过了:

  • 创建一个包含 .dlls 路径的 .addins 文件。
  • 使用所有 .dll 的副本创建一个子文件夹 \addins\
  • 初始化AddinManager给出的.dll路径
  • 更新AddinManager.Registry给定的 .dll 路径

代码结构相当复杂(涉及许多文件和项目),因此不太容易粘贴或提供一些工作代码。

0 投票
1 回答
1458 浏览

visual-studio-2010 - 在 Visual Studio 2010 中使用实体框架 4.1 定位 x64 平台

我有一个引用 Entity Framework 4.1 的数据库应用程序。在项目的属性窗口中,配置平台选择选项都被禁用。我不想将此应用程序仅针对 x64 系统。

在同一解决方案中还有一些其他项目,它们只有 x86 选项可用作平台。

我不明白为什么我不能专门针对 x64 系统。我的电脑上运行的是 Windows 7 64 位。

任何线索如何专门针对基于 x64 的系统。所有项目都参考 .Net Framework 4。

仅显示“任何 CPU”选项的项目屏幕截图

在此处输入图像描述

编辑 1:为什么我需要针对 x64 系统。

实际上,我正在开发的 dll 必须在 Autocad x64 系统中加载。但是,当我尝试将 dll 加载到 Autocad 中时,它会拒绝 dll,并出现以下错误

我强烈怀疑 Autocad x64 拒绝 dll,因为它不是 x64 格式,尽管我在这里可能错了。所以现在我将问题的范围扩大到包括 AutoCAD,因为问题的根源是在 AutoCAD 中加载 dll。我在网上搜索了一下,发现 AutoCAD 对 x32 和 x64 类型非常挑剔。用于开发 Autocad 插件的原生开发环境AutoCAD.net也可在 x32 和 x64 类型下单独使用,我认为使用 x32 开发的插件不会在 x64 类型的 Autocad 版本中运行,反之亦然。所以,我需要具体说明 Autocad 插件的目标平台

0 投票
5 回答
9381 浏览

html - 在 HTML 中嵌入 DWG 文件

我想问如何在 HTML 页面中嵌入 DWG 文件。

我曾尝试将标签与 Volo Viewer 一起使用,但此解决方案仅在 IE 中运行,而不在 Firefox 和 Chrome 中运行。

0 投票
2 回答
4309 浏览

c# - 在 AutoCAD 绘图中的特定属性中查找具有特定值的对象

我在 Autocad 绘图中有对象,其属性名为Base. 我试图在该图形中找到所有具有Base属性的对象都具有特定的字符串值,例如“ Pipe”。

我可以迭代绘图中的对象并获取所有对象 ID。然后我获取具有该 Id 的对象的所有属性并检查属性是否命名为Base = "Pipe".

迭代性能不够好。有什么方法可以直接获取具有名为的属性的对象 ID Base = "Pipe"

这是我遍历所有对象的方式:

以下是我如何获取ObjectIds集合中对象的所有属性。

0 投票
2 回答
4774 浏览

.net - 带有 vb.net 的 AUTOCAD 插件调色板 - 自动启动 - 易于安装 - 易于使用

我对 Autocad 和 vb.net 之间的集成很感兴趣。任务是让autocad使用vb.net代码自动绘制。最终项目将允许我自动创建电缆绘图,从 tmeplates 和带有信息的 csv 文件(当然还有我的插件)开始。

“用户友好”是我的关键词。我不喜欢用户必须在 autocad 上键入命令来安装插件然后使用它的实现。出于这个原因,我有两个问题:

1)找到一种方法让我的用户轻松安装插件

2)开发一个易于使用的图形界面插件。

我找到了解决方案,我想与您分享。

编辑:@David wolfe 回答了在 autocad 2012 及更早版本中自动启动插件的解决方案,但我的工厂只有 autocad 2011 及更高版本的许可证。

0 投票
2 回答
435 浏览

c# - 获取 AutoCAD 项目详细信息

我正在尝试通过插件中的 C# 获取 Autocad 项目的项目详细信息。我可以访问以下类中的一些属性。

但是,此类不提供所有项目详细信息,例如项目编号等。如何通过 C# 访问项目详细信息?

0 投票
1 回答
2702 浏览

autocad - 如何将AutoCAD绘图转换为图像?

我有一个 Autocad 绘图,它是一个土地方块的平面图,每个方块都包含一个数字。

我尝试通过选择将其转换为图像:文件->导出数据->和文件格式位图(bmp)。(我有 Autocad 2013 Mac 版)

文件转换为图像,但质量太差,放大图像时看不到正方形内的土地编号。

我也尝试过使用 Postscript(PS 文件格式),质量稍好一些,但仍然很差。

是否可以将 Autocad 文件转换为图像但仍保留它的高质量细节

我需要将文件转换为图像,因为我想在我的网站上在线发布它。可能还有其他方法可以在线发布autocad文件,如果有,请指教。但是我希望 autcad(计划)的背景是透明的,这样我就可以在谷歌地图上显示它。如果我使用 autocad 插件,我无法使其透明。对?

0 投票
1 回答
655 浏览

log4net - log4net 在部署时未从 Autocad 插件记录

我正在使用 autocad 的 .net API 开发 AutoCAD 2012 插件。Autocad 插件是 dll,在 Autocad 启动时加载到 Autocad 运行时。我已经能够使用 Visual Studio 开发环境从 log4net 成功登录。但是,当我在Visual Studio之外运行插件时,也就是部署插件时,log4net不会记录任何消息,甚至不会创建日志文件。这里是日志相关的代码和配置文件。

log4net_autocad.config

myPlugin.cs:配置日志记录的代码

void IExtensionApplication.Initialize()将在 Autocad 启动时执行。我检查过的几件事:

  • 检查 Autocad 插件是否正确加载到 Autocad 中,这意味着 log4net 初始化代码已运行。
  • 检查 log4net 配置文件 (log4net_autocad.config) 是否复制到已部署应用程序的 bin 目录中

奇怪的是,当我在开发环境(VS 2010)中加载插件时,插件正确记录。那么为什么 log4net 在部署中没有记录(甚至创建日志文件)。

编辑: 我检查了一些额外的东西

在我登录之前的插件中,我通过警报对话框检查了以下内容。

  • log.Logger.Name正确返回我正在使用的记录器的名称
  • log.Logger.IsEnabledFor(log4net.Core.Level.All) 返回 false,即使我在配置文件中配置了Level Value=All



EDIT-2 我尝试按照答案的引用网址中的说明定义配置文件。我引用了文档中概述的方法。

2.] 应用程序配置文件:[AppName].exe.config, [AppName].dll.config 应用程序级配置 [AppName].exe.config 或 [AppName].dll.config 是本文档的大部分内容会花时间。此配置文件将包含所有应用程序级设置,甚至可用于定义与漫游用户和本地用户配置文件相关的设置的使用和默认值。这些文件通常存储在与应用程序可执行文件相同的目录中,但如果需要,可以放在其他地方。将来会有更多关于这个的讨论。

上述方法适合我的应用程序,但我仍然无法让记录器记录任何内容。我定义了一个名为RelayAnalysis_Autocad.dll.config的 log4net 配置文件,并将其提供给 log4net 进行配置。我认为还有一些我无法理解的东西。我开始怀疑我们是否可以使用 autocad 插件中的 log4net 进行日志记录?我还删除了环境路径并对其进行了硬编码,以消除有关读取环境变量的任何问题。仍然没有运气。

0 投票
1 回答
1429 浏览

c# - Windows 窗体仅在由 ShowDialog() 调用时引发异常

我有一个 Windows 窗体,里面有一些错误的代码(无论错误是什么,它们都是故意检查引发的异常)。

请记住,我没有使用 any try-catch,不在表格内部,也不在外部。我只是期待调试器抛出异常并停止运行。

当我使用 显示表单时ShowDialog(),抛出异常没有问题。当我使用 显示表单时Show(),不会引发任何异常。错误发生在代码执行期间,代码中断在应该引发异常的地方运行,但表单保持活动和功能,接受点击并正常运行所有事件。调试器不应该抛出表单引发的异常吗???

这正常吗???该Show()方法真的是为了不抛出异常???或者是 Autocad 插件中的表单中的一些奇怪的错误???


一些代码(我认为它没用,但它就在那里)