我想在.dwg文件的所有块上运行ATTOUT例程,使用Core Console自动化应用程序..
我使用默认" attout.lsp"在我的AutoCAD 2016安装的Express文件夹中,因为我想在所有块上使用它而不需要选择特定的块。
我试过了:
accoreconsole.exe /i C:/<pathing_to_my_dwg_file>/sample1.dwg /s test-attout.scr
test-attout.scr是:
(load "attout.lsp" "/omg it"s not working)
结果如下:
`Redirect stdout (file: C:\Users\lboey\AppData\Local\Temp\accc64962).
AutoCAD Core Engine Console - Copyright Autodesk, Inc 2009-2013.
Regenerating layout.
Regenerating model.
..
**** System Variable Changed ****
1 of the monitored system variables has changed from the preferred value. Use SY
1 of the monitored system variables has changed from the preferred value. Use SY
SVARMONITOR command to view changes.
Command:
Command:
Command:
Command: (load "attout" "omg it's not loading")_quit
Command:`
我是AutoCAD中的noobie,非常感谢任何建议。
感谢所有!!
答案 0 :(得分:2)
此命令(ATTOUT)将显示一个对话框,这就是它无法在Console上运行的原因。此外,任何使用COM的LISP都不会工作(vl-load-com)
答案 1 :(得分:0)
我会回答我自己的问题:
(load "C:\\Program Files\\...\\my_routine.lsp")> att-out
(defun c:att-out()(load&#34; attout&#34;)(setq out(strcat(getvar&gt; &#34; dwgprefix&#34;)(acet-filename-path-remove(acet-filename-ext-remove&gt; (getvar&#34; dwgname&#34;)))。txt&#34; ))(setq ss(ssget&#34; X&#34;&#39;((0。&#34; INSERT&#34;) (66.1))))(bns_attout out ss))
acad.exe C:\ Program Files ... \ a_simple_dwg.dwg / b my_script.scr
Autocad Core Console现在处于早期开发阶段,因此自动化一系列操作的最简单方法是使用AutoLisp。
答案 2 :(得分:-1)
my_routine.lsp 适用于Autocad 2011并进行小幅调整
(defun c:att-out () (load "attout") (setq out (strcat (getvar "dwgprefix") (acet-filename-path-remove (acet-filename-ext-remove (getvar "dwgname"))) ".txt" )) (setq ss (ssget "X" '((0 . "INSERT") (66 . 1)))) (bns_attout out ss))
Thanx @ user3336544