volutionshh 发表于 2018-12-8 00:12:27

怎样用lisp打开dwg文件后打印

怎样用lisp打开dwg文件后打印那个dwg中的布局?
目前是开文件并激活文件是可以的,已经打开的文件用lisp打印布局也是可以的,但是,让他连起来就不行。

比如,目前处于一个新建的空图中,

[*](vla-Activate (vla-open (vla-get-documents (vla-get-application (vlax-get-acad-object))) filename))
[*]就会打开一个文件并激活,
[*](command "-plot" ""ly "" "Adobe PDF""N" "N""Y")就会打印布局

oistre 发表于 2018-12-10 09:55:18

谢谢!分享程序!!!

pengfei2010 发表于 2018-12-10 11:33:06

lsp不能跨文档,单纯用lsp是无法实现的,放弃吧

Andyhon 发表于 2018-12-10 11:52:11

Lisp的短板就是只能在目前的工作dwg文件发生效用

ref:

https://knowledge.autodesk.com/zh-hans/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2018/CHS/AutoCAD-LT/files/GUID-CD9B5B2F-74A0-4C69-9176-A8BE717B833F-htm.html

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/scriptopro-help/td-p/837409
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/autolisp-function-that-lists-page-setups/td-p/876233

https://www.tigerdroppings.com/rant/o-t-lounge/batch-plot-on-autocad-2007/10855226/
http://www.plctalk.net/qanda/archive/index.php/t-30941.html

$$$
http://www.cuteapps.com/Graphic_Painting_and_Drawing/CAD_and_3D/dwgPlotX_19315_Review.html

669423907 发表于 2018-12-10 18:15:42

可以用vbs向CAD发送命令
WScript.Sleep 2000             '等待

Const a0 = "AutoCAD 2008 - "   ' 查找窗口名称
Const a1 = 3            ' 指定超时
Dim a2, a3
a2 = Now()
Do While DateDiff("s", a2, Now()) < a1
If CreateObject("WScript.Shell").Appactivate(a0) Then
a3 = True' 做标记-已找到
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 500             '等待
WshShell.SendKeys "9q "   '发送按键
Exit Do
End If
Loop

volutionshh 发表于 2018-12-12 23:08:06

感谢以上各位的回复!!
页: [1]
查看完整版本: 怎样用lisp打开dwg文件后打印