打印布局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代码中放置一个模型选项卡排除字符串。
我从互联网上获取了这段代码。它编译字母布局选项卡顺序,并从其列表中删除模型空间选项卡。我如何将这段代码合并到我现有的例程中?
谢谢 您可以使用以下内容:
(vl-remove "Model" (layoutlist)) 或者,另一种可能性:
或者,在香草中:
4 (布局列表)不包括模型。
是的,我也不这么认为-但OP说他的一些文件确实包括它。
自然生长的旧版本一定很奇怪。可能与r14创建的文件有关(在布局存在之前)。
回答OP的问题:
替换:(foreach layoutname(layoutlist)
With:(foreach layoutname(LayoutAblist) 因此,我尝试用LayoutAblist替换layoutlist,得到了以下结果:
这是我在有问题的图形中简单使用布局列表时得到的结果:
请注意,如果我在其他图形中使用布局列表,它可以正常工作,我会得到:
所以我怀疑在那张特别令人反感的画里面有什么东西。我不知道的设置或开关。
我将(vl remove“Model”(layoutlist))合并到代码中,但它没有消除模型选项卡选择。
8 啊,我明白了。我现在就试试,谢谢。 非常好,感谢您的澄清。
最后,既然您已经提供了两种不同的方法来完成相同的任务,那么一种例程是否优于另一种?
编辑:
抓取问题。我看到其中一个组织了选项卡。 不客气
在大多数(但并非所有)情况下,更简洁的解决方案通常更快。
页:
[1]
2