jason_a 发表于 2022-7-6 10:11:24

打印布局t的Lisp例程

我正在尝试创建一个ACAD2000 lisp例程,该例程将只打印纸张空间选项卡。这是我到目前为止得到的:
 
(defun c:Plt (/ )
(foreach layoutname (layoutlist )
   (command "._layout" "set" layoutname )
   (command "-plot"
"yes"
layoutname
"\\\\sbserver\\Canon ir3235"
"LETTER"
"INCHES"
"PORTRAIT"
"NO" ;PLOT UPSIDE DOWN
"LAYOUT"
"1:1"
"0.00,0.00"
"YES" ;PLOT WITH PLOTSYTLES
"MONOCHROME.CTB"
"NO" ;PLOT WITH LINEWEIGHTS
"NO" ;SCALE LINEWEIGHTS WITH PLOT SCALE
"YES" ;PLOT PAPER SPACE LAST
"NO" ;REMOVE HIDDEN LINES
"NO" ;WRITE THE PLOT TO A FILE
"NO" ;SAVE CHANGES TO LAYOUT
"YES");PROCEED WITH PLOT
)
(princ)
)有效
 
但是
 
我的一些AutoCad文件将“模型”选项卡合并到布局列表中,我不希望这样。为了纠正这个问题,我想在lisp代码中放置一个模型选项卡排除字符串。
 
我从互联网上获取了这段代码。它编译字母布局选项卡顺序,并从其列表中删除模型空间选项卡。我如何将这段代码合并到我现有的例程中?
 
谢谢

Lee Mac 发表于 2022-7-6 10:21:13

您可以使用以下内容:
 
(vl-remove "Model" (layoutlist))

Lee Mac 发表于 2022-7-6 10:27:02

或者,另一种可能性:
 
或者,在香草中:
 
4

alanjt 发表于 2022-7-6 10:32:37

(布局列表)不包括模型。

Lee Mac 发表于 2022-7-6 10:33:35

 
是的,我也不这么认为-但OP说他的一些文件确实包括它。
 

alanjt 发表于 2022-7-6 10:38:47

自然生长的旧版本一定很奇怪。可能与r14创建的文件有关(在布局存在之前)。 
回答OP的问题:
替换:(foreach layoutname(layoutlist)
With:(foreach layoutname(LayoutAblist)

jason_a 发表于 2022-7-6 10:45:26

因此,我尝试用LayoutAblist替换layoutlist,得到了以下结果:
这是我在有问题的图形中简单使用布局列表时得到的结果:
请注意,如果我在其他图形中使用布局列表,它可以正常工作,我会得到:
所以我怀疑在那张特别令人反感的画里面有什么东西。我不知道的设置或开关。
 
我将(vl remove“Model”(layoutlist))合并到代码中,但它没有消除模型选项卡选择。
8

alanjt 发表于 2022-7-6 10:54:18

啊,我明白了。我现在就试试,谢谢。

Lee Mac 发表于 2022-7-6 10:57:48

非常好,感谢您的澄清。
 
最后,既然您已经提供了两种不同的方法来完成相同的任务,那么一种例程是否优于另一种?
 
 
编辑:
 
抓取问题。我看到其中一个组织了选项卡。

jason_a 发表于 2022-7-6 11:01:21

不客气
 
在大多数(但并非所有)情况下,更简洁的解决方案通常更快。
页: [1] 2
查看完整版本: 打印布局t的Lisp例程