【问题标题】:Plot dwg file programmatically以编程方式绘制 dwg 文件
【发布时间】:2012-01-31 06:56:10
【问题描述】:

我编写了一个应用程序来打开和打印一个 dwg 文件。绘图过程正常工作;但是,当我查看 Plot and Publish Details 窗口时,我看到 File 属性设置为 <UnSaved Drawing> 而不是我的 dwg 文件名。

我的意思是这样的:

工作表:UnsavedDwg_2-Model - Plotted

File : <UnSaved Drawing>> 
Category name :> 
Page setup :> 
Device name : \\server\MyPrinterName> 
Plot file path :> 
Paper size : Letter

我的错误是什么?!!!

注意:我使用DocumentCollection 类的Open 方法打开我的dwg 文件,并使用this code 将打开的dwg 文件打印到打印机。

我打开 dwg 文件的代码:

String MyDWGFilePath = @"\\Server\SharedFolder\Projects\File1.dwg";
DocumentCollection dm = Application.DocumentManager;
Document doc = null;

if(File.Exists(MyDWGFilePath))
{
   doc = dm.Open(MyDWGFilePath, false);
   Application.DocumentManager.MdiActiveDocument = doc;
}

【问题讨论】:

  • 您的标签说您使用的是 C#,但在您的描述中您说您使用的是 LISP?你能提供你在做什么的代码吗?不过,作为第一个猜测,如果您在打开之后和打印之前对绘图进行任何更改,这可能是名称问题的原因。
  • @Origin,我为我的错误道歉。我已经编辑了我的帖子并附加了我的打开代码。
  • 当您打印的文件是本地文件时,它会做同样的事情吗?
  • 我已经对其进行了测试,但现在我收到了任何文件路径的 2 个错误。命令行中的第一个(无法创建临时绘图戳记日志文件。绘图未记录。)另一个作为消息(内部错误:!dbplotset.cpp@440:elockviolation !!!!)
  • 它在哪里尝试创建绘图日志文件?此外 - 当您打开文档时,您可能需要指定只读模式以外的模式。这通常是导致我收到 eLockViolation 的原因

标签: c# plot autocad dwg


【解决方案1】:

您的打开代码基本上会打开现有绘图并将其内容加载到新文档实例中。由于新文档实例以前不存在,因此它没有保存名称,因此您的绘图消息会显示意外的文件名。

我不能 100% 确定这是否可行(我面前没有我的 AutoCAD 机器来测试),但您可以尝试将加载代码更改为:

String MyDWGFilePath = @"\\Server\SharedFolder\Projects\File1.dwg";
DocumentCollection dm = Application.DocumentManager;

if(File.Exists(MyDWGFilePath))
{
  dm.Open(MyDWGFilePath, false);
}

【讨论】:

  • 感谢您的回复,但我稍后尝试过,发现它有问题。它打开 dwg 文件但不是活动文档。所以我必须做一些类似我的代码来激活dwg 文件。
  • 这是否意味着它已解决?如果您通过Open 加载它,然后使用 DocumentManager 使其处于活动状态,打印日志是否显示您的预期?
  • 不,我的问题正是你所说的。我的意思是我已将我的 dwg 文件设置为活动文档,但是当绘图代码完成时,文件名是 而不是我的 dwg 文件路径.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多