使用自动化和批处理
我正试图对ATTIN命令进行修改,以实现过程自动化;从指定目录中删除用户提示、指定文件导入位置和批处理。但是我遇到了一堵墙,我对LISP很陌生(现在大约3周了)。这是我为我的公司开发的一个过程,它可以更统一地更新标题栏属性标记,减少用户在执行数百个图形时的输入错误。现在我终于开始自学Autolisp了,我正试着更进一步。
到目前为止,我已经消除或解决了所有用户提示(文件位置、yes\u no框等)的(定义的变量)。我使用Find代码编写了一个脚本,在定义的目录中的所有图形上运行此lisp,并将单用户选择修改为全局搜索,添加了一个参数“(8)TB_层),以便它仅查看该层上具有属性的块。这是为了避免在找到没有匹配标记名的块时出现“acet警报”框,从而停止批处理例程,并导致警报框循环冻结AutoCAD。
我很难指出的问题是,当我用正确的参数在单个图形上运行此例程时,它就像一个符咒。它成功地用新信息更新了块,而无需用户进行任何输入。然而,当脚本运行时,我得到一个“未找到句柄”返回,它不会结束脚本,但不会成功重写属性。我不知所措,因为脚本只是打开图形,单独运行命令,保存和关闭图形。所以我不明白为什么它的工作方式与我在每张图的基础上运行它的方式不同。
任何帮助都将不胜感激,正如我之前所说,我对lisp编码非常陌生,所以对你们中的一些人来说这可能很简单。请温柔一点
阿提波特。lsp 我想我已经把问题缩小到“a”变量。我认为,这个变量通常与块句柄相关联,块句柄与“attout”创建的原始句柄相匹配。由于句柄不匹配图形到图形、块到块,我将其与块名一起从源文本文件中删除。
正常运行时,这将提示用户指定块选择以搜索匹配的属性标记。我重写了这个选择,告诉它在整个图形中查看特定层上具有属性的块,或者在我使用的变体中按块名(410,“此处为块名”)。我认为这是出于某种原因造成了冲突,或者消息本身“无句柄规范”在从脚本运行时挂起了进程。我仍然不知道为什么它在单独运行而不返回此消息时有效,以及为什么这只发生在脚本期间,但这只是一个开始。
有人能确认我可能在正确的轨道上吗?
谢谢
页:
[1]