我想在.dwg文件的所有块上运行ATTOUT例程,使用核心控制台自动化应用程序。
我使用默认的"attout"。在我的AutoCAD 2016安装的Express文件夹中,因为我想在所有块上使用它,而不需要选择特定的块。
i tried:
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:UserslboeyAppDataLocalTempaccc64962).
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的新手,任何建议都非常感谢。
谢谢大家!!
这个命令(ATTOUT)将显示一个对话框,这就是为什么它不能在控制台工作。同样,任何使用COM的LISP也不能工作(vl-load-com)
我来回答我自己的问题:
- 创建一个my_script。可控硅文件
(load "C:\Program Files\...\my_routine.lsp")> att-out
- 创建AutoLisp例程文件my_routine.lsp
- 用acad.exe 调用脚本
(defun c: attout () (load "attout") (setq out (strcat (getvar>))(乙酰-filename-path-remove(乙酰-filename-ext-remove>)(getvar dwgname))) . txt"))(setq ss (ssget"X"((0。"插入")(66。1)))) (bns_attout out ss))
acad.exe C:Program Files…a_simple_dwg。my_script.scr
Autocad核心控制台现在处于早期开发阶段,因此自动化操作链的最简单方法是使用AutoLisp。
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))
谢谢@user3336544