(变量)名称中有什么?
我不希望在这里得到答案,但也许有人愿意发表评论。(这部分是LISP,部分是脚本。)
我有一个脚本文件来打印很多图纸。这很好,但我总是在开始之前将SDI设置为1,因为我不喜欢一次打开500多个文件。没问题,反正我通常在SDI模式下工作。然而,我已经调整了脚本生成器,因为一位同事希望在最后重置SDI。没问题,在脚本的开头和结尾添加以下行。
tbh,它不是SDIMode,但我不记得我用了什么,但它是相关的。
然而,当脚本达到纸张大小时
A3 (297 x 420 mm)
脚本退出,AutoCAD将下一个命令(m)导出为指令。我试着在纸张大小周围加引号,但没有影响。
我最终通过将变量名更改为“mySDI”来“纠正”它。
正如我所说,我并不期待得到答案,但以前有人遇到过这种行为吗?
事实上,我想起了我们曾经有过的另一个奇怪之处。我们的平面图总是旋转90度。我们最终将其重命名,并正确绘制。 变量丢失,因为每个图形都有自己的名称空间;这样,您可以在一个名称空间中设置它,并尝试在另一个名称空间中还原它,而在另一个名称空间中不可用。
我认为有两种解决方法:
[列表=1]
[*]使用黑板,这是所有图形可用的通用命名空间。请检查VL-BB-SET和VL-BB-REF函数。
[*]根据用户名设置SDI系统变量:
[/列表]
(if (member (getenv "USERNAME") '("User1st" "User2nd")) (setvar "SDI" 0)) 谢谢你的评论,不过它看起来确实有效。我遇到的“问题”是,剧本在第一幅画的某一行出现了问题。当我重新命名变量时,一切都如期进行。
我希望返工的例行程序运行在VB中。Net,但目前它只是一个简单的脚本,只有两个LISP语句,并不想让它变得更复杂。 MSasu,
我现在已经看了(vl bb…,可以看出这是一个比我以前做的更好的选择。
我修改了代码并将其发送出去进行测试。。。。。 你简单描述的行为是不可能的lol:说真的,虽然SDI在我的2012中没有调用任何输入帮助,但它确实可以作为命令工作。嗯。我想知道是否有任何其他“未记录”的SDI ish命令,您可能在工作中无意中遇到。你最初的选择可能非常相关。如果你能准确地回忆起你所拥有的。。。
我恭敬地表示不同意。。。下面将详细介绍。
SDI(Single Drawing Interface,单图形界面)是一个系统变量,尽管Civil 3D的前身Land Desktop大量使用了剩余的功能,但直到最近才被记录在案。
输入SDI命令的能力产生与通过LISP设置系统变量完全相同的结果:
(setvar 'sdi 1)
... 这两种情况都可以通过SystemVariableChanged事件在SDI分别为0或1时启用/禁用Autodesk的图形选项卡插件来说明。
从逻辑上讲,当您排除关闭调用时,您的脚本必须在本质上考虑SDI=1。。。在SDI=1时,保存活动文档后可以简单地调用OPEN,而在SDI=0时,必须先关闭活动文档(除非希望在同一会话中保持打开无数图形)。
也就是说,在没有看到您的脚本的情况下,我大胆猜测它取决于SDI=1。。。在强制SDI=1(全局变量仅存在于该文档的命名空间中)之前,您可以考虑将原始值写入用户注册表,而不是尝试使用LISP跨文档命名空间恢复原始值。
4
... 此外,有一天(很快?)通过正确使用静态属性对象、字段、端数据库和核心控制台,您将利用您对黑暗面(也称为.NET开发)的丰富而不断增长的知识,不再需要担心这些琐事。。。Mwaaatttahhhhahahahahaha!
/邪恶的笑声 目前,使用MSasu’(VL-BB位)脚本运行良好,因此我不会再次更改它,但我确实想知道如何使用LISP写入注册表,非常感谢。
脚本取决于在SDI模式下运行(正如BB正确所说)。我打开下一个图形,而不必关闭上一个图形。我画一条线来确保所有文件都已更改,然后放弃更改。我们这里的大多数人选择在SDI中工作,因为多年前的网络不可靠(崩溃时只失去1个绘图而不是抽签),所以在SDI模式下运行脚本是明智的。我曾经将代码转换为VBA,但无法在SDI中工作(听起来很熟悉BB?)而且不确定这些机器如何处理一次打开500张图纸。在SDI中运行脚本要容易得多,但确实是VB。Net解决方案在列表中。
至于影响脚本的变量的名称,我知道它不应该,但确实如此。像我引用的另一个例子一样,文件名不应该影响打印的方向,但确实会影响。这只是我们爱上AutoCAD的原因之一。
一次不会打开500个图形-脚本将打开、修改、保存和关闭每个已处理的图形,这意味着将只打开两个图形(正在处理的图形和运行脚本的图形)。 即使在MDI模式下?
是的,在处理下一个图形之前,脚本可以在MDI模式下打开、修改、保存和关闭每个图形。
页:
[1]
2