- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个应用程序,该应用程序在 AutoCAD 的 ObjectARX 界面中使用 COM 来自动执行绘图操作,例如打开和另存为。
根据文档,我应该能够调用 AcadDocument.SaveAs() 并传入文件名、“保存类型”和安全参数。该文档明确指出,如果安全性为 NULL,则不会尝试任何与安全性相关的操作。但是,它没有给出任何正确对象类型的指示以作为“另存为类型”参数传递。
我已尝试使用文件名调用 SaveAs,其余参数为 null,但我的应用程序在调用该方法时挂起,AutoCAD 似乎崩溃了 - 您仍然可以使用功能区,但不能对工具栏执行任何操作,并且可以'关闭 AutoCAD。
我感觉是我的 NULL 参数导致了这里的问题,但 COM/VBA 部门严重缺乏文档。事实上,它说 AcadDocument 类甚至没有 SaveAs 方法,而它显然有。
这里有没有人实现过同样的事情?有什么指导吗?
另一种方法是我使用 SendCommand() 方法发送 _SAVEAS 命令,但我的应用程序正在管理一批绘图并且需要知道 a) 保存是否失败,以及 b) 保存何时完成(我'我通过监听 EndSave 事件来完成。)
编辑
这是请求的代码 - 它所做的只是启动 AutoCAD(或连接到正在运行的实例,如果它已经在运行),打开现有图形,然后将文档保存到新位置 (C:\Scratch\Document01B.dwg .)
using (AutoCad cad = AutoCad.Instance)
{
// Launch AutoCAD
cad.Launch();
// Open drawing
cad.OpenDrawing(@"C:\Scratch\Drawing01.dwg");
// Save it
cad.SaveAs(@"C:\Scratch\Drawing01B.dwg");
}
然后在我的 AutoCad 类中(this._acadDocument 是 AcadDocument 类的一个实例。)
public void Launch()
{
this._acadApplication = null;
const string ProgramId = "AutoCAD.Application.18";
try
{
// Connect to a running instance
this._acadApplication = (AcadApplication)Marshal.GetActiveObject(ProgramId);
}
catch (COMException)
{
/* No instance running, launch one */
try
{
this._acadApplication = (AcadApplication)Activator.CreateInstance(
Type.GetTypeFromProgID(ProgramId),
true);
}
catch (COMException exception)
{
// Failed - is AutoCAD installed?
throw new AutoCadNotFoundException(exception);
}
}
/* Listen for the events we need and make the application visible */
this._acadApplication.BeginOpen += this.OnAcadBeginOpen;
this._acadApplication.BeginSave += this.OnAcadBeginSave;
this._acadApplication.EndOpen += this.OnAcadEndOpen;
this._acadApplication.EndSave += this.OnAcadEndSave;
#if DEBUG
this._acadApplication.Visible = true;
#else
this._acadApplication.Visible = false;
#endif
// Get the active document
this._acadDocument = this._acadApplication.ActiveDocument;
}
public void OpenDrawing(string path)
{
// Request AutoCAD to open the document
this._acadApplication.Documents.Open(path, false, null);
// Update our reference to the new document
this._acadDocument = this._acadApplication.ActiveDocument;
}
public void SaveAs(string fullPath)
{
this._acadDocument.SaveAs(fullPath, null, null);
}
最佳答案
来自 Autodesk discussion groups , 看起来第二个参数是要另存为的类型,可能是必需的:
app = new AcadApplicationClass();<br/>
AcadDocument doc = app.ActiveDocument;
doc.SaveAs("d:\Sam.dwg",AcSaveAsType.acR15_dwg,new Autodesk.AutoCAD.DatabaseServices.SecurityParameters());
由于您使用的是 AutoCAD 2010,类型应增加到 acR17_dwg 或 acR18_dwg。
关于autocad - SaveAs in COM挂AutoCAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287864/
AutoCAD 允许将 SPLINE 实体存储在仅由 拟合点,问题是,这样的样条定义有无限 数值正确的解决方案,Autodesk 不提供必要的 从给定的拟合点计算所需参数的信息。 tl;dr - 缺失
是否有用于解析 AutoCAD 文件(DWG 或 DXF)的库(最好是开源的)? 最佳答案 重复(或至少相关)Open source cad drawing (dwg) library in C# &
我看到了 v2.0: 75% there帖子提到 Autocad 并且有一个 AutoCADApp.cs文件,但我似乎找不到使用 Rubberduck 的引用在 Office 之外,在一些随机主机应用
我想提取 Autocad 文件的坐标(纬度、经度)和一些属性,例如名称和颜色。我可以通过 Java 程序执行此操作。 在 Autocad 中,哪种格式是正确的导出格式,以便我可以通过编程方式解析文件、
我使用 dot net 3.50 添加了一个 autocad,我引用了 autocad 2012 中的 acdbmgd.dll、acmgd.dll我该怎么做才能让它在 autocad 2010 和 a
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
这可能是我一直想念的简单的东西,但是...... 我可以获得实体名称,但是是否可以使用分配给变量的实体名称来让 Autocad 命令使用该实体作为要操作的选定对象? 最佳答案 要在“立即”模式下使用,
我开发了一个外部 WPF 应用程序来用 C# 生成绘图。我已经能够使用 Autodesk.AutoCAD.Interop 绘制、标注尺寸、添加 block 以及应用程序所需的所有其他内容,但是我似乎无
我已经运行 win32com 来访问 AutoCAD 相当长一段时间了,没有出现任何问题。我了解到应用 makepy 实用程序可以在交互式提示下创建更加用户友好的体验,因此我运行它并添加了“AutoC
我有一个 Autocad 绘图,它是一个土地方 block 的平面图,每个方 block 都包含一个数字。 我尝试通过选择将其转换为图像:文件->导出数据->和文件格式位图(bmp)。 (我有 Aut
我有一个三角形作为折线,我想画一个高度。我发出命令 "line"或 "_line"正确的点,但 AutoCAD 绘制从顶点到相邻顶点的线。 不只是在 AutoLISP 中,AutoCAD 不允许我在折
我想使用代码来分析 dwg 文件。任何人都知道任何 SDK 工具可以开始使用吗? 最佳答案 来自 Wikipedia : Autodesk 根据选择性许可条款销售名为 RealDWG 的读/写库,用于
本文为大家分享了AutoCAD .Net禁止图元被删除的具体代码,供大家参考,具体内容如下 禁止图元被用户删除可以通过 ObjectOverrule 实现。 以下代码: 1、命令 AddEra
我正在使用 C# 编写 AutoCAD 插件,需要在阴影对象的中间(例如,圆心)显示阴影属性。我在代码中有两个问题: 如何访问圆心? 如何获取hatch的属性? 我在 autocad 中的这一行遇到错
我正在研究一个autoCAD .net项目,在其中创建了MVVM模式以选择和修改实体。我想将所选实体的信息/值存储到 View 模型中,更改信息/值(通过弹出的WPF UI以及我的代码),然后将更改应
我正在实现一个应用程序,该应用程序在 AutoCAD 的 ObjectARX 界面中使用 COM 来自动执行绘图操作,例如打开和另存为。 根据文档,我应该能够调用 AcadDocument.SaveA
我对开发 AutoCAD 插件感兴趣,并试图了解几种不同类型的 AutoCAD 插件文件之间的关系: 随 AutoCAD 插件一起提供的托管 DLL ARX files附带 AutoCAD 插件 CU
我正在使用 C#.NET 编写 AutoCAD 插件。我需要一种方法来将 Table.IsReadEnabled 和 Table.IsWriteEnabled 设置为 true。我有一个名为 addR
使用 ObjectARX (C++) for AutoCAD 2010,AutoCAD 实体可以序列化吗? 我们需要将序列化的实体保存在数据库(Oracle、PostgreSQL 等,不是 AcDbD
我正在尝试制作一个表格,当用户提交更多数据时动态添加行: public void addRow(String[] data) { Transaction tr = doc.TransactionMan
我是一名优秀的程序员,十分优秀!