2017-04-20 171 views
-2

我正在运行香草AutoCAD 2017 accoreconsole.exe将启动,但显示示例屏幕,似乎运行命令,但我不知道一种方式直接从核心控制台打开文件,所以我真的不能做任何事情它。为什么我的AutoCAD accoreconsole不能打开文件或执行脚本?

方法试图 1.脚本Pro的2.0:读取日志文件C错误: 从https://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autodesk-customization-conversion-tools.html 脚本亲使用AutoCAD时,成功执行脚本,但是当我切换到Core控制台,然后失败 它生成读取日志文件:\ Users \ Documents \ TEST \ ARCH01_FIRST楼层平面图 - 区域C.dwg

2.自动Lisp 从AutoCAD使用Auto Lisp命令我发现在BIM之家。该命令的工作原理和我测试的几个脚本,我第一次使用AutoCad中的运行脚本按钮进行测试,他们的工作,但不是当我使用核心控制台。

这产生所谓的临时文件accc34642其内容m_kernelList仍然有1项

/我的核心控制台闪烁,然后消失 /I核心控制台从QNEW模板文件路径打开一个新的文件

这似乎在lisp声明中无论发生什么事情都会发生。

然后在核心控制台中的OPEN命令不会返回提示或错误,它只是返回两次而不执行任何操作。 键入一个文件路径将产生错误

3.Widows批处理文件 我只用其中的一个,在过去成功,但我检查,我发现了几个不同的网站,仍然没有运气上获得脚本的那些执行。 我也尝试了所有这些从不同的文件路径

回答

0

我不相信有可能从核心控制台内打开文件。我相对确定的核心控制台必须使用该路径作为您希望打开的图形的参数进行初始化。一旦打开,你就可以使用该文件。所以,你基本上必须为你想要处理的每个文件打开一个核心控制台实例。

希望有所帮助。

0

AutoCAD控制台的主要思想是处理1个文件并退出。在处理单个实例中的多个文件时,避免内存碎片和错误也很重要accoreconsole.exe

因此,如前所述,请考虑一个工作流,其中每个实例处理单个文件然后退出。您甚至可以考虑多个accoreconsole实例一次处理多个文件。

0

Wed0, 上手与accoreconsole工作,这里有几个链接,这将有助于你:

1)http://adndevblog.typepad.com/autocad/2012/04/getting-started-with-accoreconsole.html

2)http://through-the-interface.typepad.com/through_the_interface/2012/02/the-autocad-2013-core-console.html

的第二篇文章中,基恩那张进入了一些细节,但我并不特别喜欢使用.bat文件的方法。使用像C#这样的编程语言更好。

至于打开文件,它实际上是可能的! 我最近发现了一种使用accorconsole(或AutoCAD,如果这是你喜欢的)处理dwg文件的非常快的方法。例如,对一批dwg文件运行dbtext和mtext的搜索和替换操作在单个进程上以大约15个图纸/秒运行。平行设置5或6将处理接近5000图纸/分钟!我认为我会与社区分享这一点,因为这个发现对于我公司在处理大批dwg文件时是一个改变游戏规则的游戏。

为此,您必须使用.NET API(或C++等)。我完成了所有用C#处理的代码,并且lisp脚本文件中只有2行用于NETLOAD我的dll并调用执行处理的命令。

原来,您可以在accoreconsole的同一个实例中处理多个dwg文件。这里的想法是在不打开绘图的情况下加载dwg数据库(需要约70ms),操纵数据库然后保存。对于i/switch,您可以使用任何虚拟图形文件,因为它对批次没有任何影响。然后,在C#中的命令的方法,你会做这样的事情:

string[] dwgFiles = Directory.GetFiles("C:\\MyDWGFiles"); 
foreach(string drawingFilePath in dwgFiles) 
{ 
    using(Database database = new Database(false, true)) 
    { 
    database.ReadDwgFile(drawingFilePath, FileShare.ReadWrite, 
         true String.Empty); 
    using(Transaction transaction = 
     database.TransactionManager.StartTransaction()) 
    { 
     //DO STUFF HERE 
     transaction.Commit(); 
     database.SaveAs(drawingFilePath, DwgVersion.Current); 
    } 
    } 
} 

让我知道,如果您有任何疑问或需要更多的细节,

相关问题