Bill Tillman 发表于 2022-7-6 22:01:33

.NET代码在AC201中运行良好

好吧,就这么定了。我昨天在运行一台有AutoCAD 2013的机器。我还在Visual Studio Express中使用一个C#程序,该程序收集了一些数据,启动了AutoCAD 2013,加载并执行了一个LISP文件,该文件准备并保存了一个图形。一切都很好。
 
昨晚他们把我的系统升级到了一台新的更快的机器上,它有AutoCAD 2015 Mechanical。我使用的是相同的Visual Studio C代码和相同的LISP代码。该过程开始,AutoCAD打开并启动图形,但随后暂停。我可以看到它暂停的地方,我检查了LISP代码是否有任何异常,但似乎什么都没有。因此,我在2015年机器上加载了LISP代码,打开了LISP IDE,并从AutoCAD命令行运行它,它运行良好。只有当我使用AutoCAD 2015从C代码运行它时,它才会暂停。
 
如果我将窗口聚焦在AutoCAD窗口上并单击鼠标或按enter键,则可以继续暂停。但这只发生在2015年的机器上。使用完全相同的代码,这种暂停不会在2013年的机器上发生。是的,当我在机器之间切换时,我用VS中的2015 COM引用替换了2013 COM引用。
 
我确切地知道代码暂停的位置,它位于两个dimlinear命令之间:
(command "._DIMLINEAR" (polar (polar pt1 pi 4) a90 2) (polar (polar pt2 0 4) a90 2) (polar pt1 a90 24) "")
(command "._DIMLINEAR" (polar (polar pt1 pi 2) a90 4) (polar (polar pt4 pi 2) a270 4) (polar pt1 pi 24) "")
第一个dimlinear命令执行,然后在2015年暂停。除非我与第二个命令交互,否则它不会执行。正如你们大多数人所知,我正在开发严格自动化的程序,这些程序不能依赖于任何类型的用户输入。

Tharwat 发表于 2022-7-6 22:23:19

你好
 
切换到cad 2015时,将命令调用名称“command”替换为“command-s”,然后重试。

Bill Tillman 发表于 2022-7-6 22:42:13

谢谢负责指挥。。。。但在那之后它又停了下来。这是AutoCAD 2015或Mechanical独有的“-s”。。。。如果是这样,我是否应该将所有的“command”更改为“command-s”?这没有问题,但至少有一些没有-s的命令正在工作。

BlackBox 发表于 2022-7-6 23:10:21

http://through-the-interface.typepad.com/through_the_interface/2014/03/autocad-2015-calling-commands.html
页: [1]
查看完整版本: .NET代码在AC201中运行良好