tofuannie 发表于 2022-7-6 12:22:51

好的,我知道我的“新”正在上映。我只是迫不及待地想试试你的帮助,但我仍然需要更多的指导。这个脚本程序太棒了。我真的一点都不懂,但我明白了要点。我最终要做的是搜索脚本中列出的每个变量的信息,也许在未来的某个地方,它会开始凝结!回到问题上来。。我按照你的建议更改了我的lsp,除了名称是“nfcon.lsp和nfcoff.lsp”(我有一个用于解冻层,另一个用于冻结层)之外,我创建了ACADDOC。lsp并添加了您建议的行,除了我的外,还包括路径。。(加载“z:/blah/blah/nfcon.lsp”)。我将你的脚本文件保存在记事本中的“wScript.lsp”中,并将其保存在我的“nfcon.lsp”的同一位置。然后在命令行中剪切并粘贴“_u.open*file*(c:nfcon)close”。你的脚本运行并打开对话框来选择我的文件(非常酷);他们开放了,但“nfcon”并没有解冻这一层。除了最后一块,一切都很顺利。我做错了什么?

Lee Mac 发表于 2022-7-6 12:28:42

只是澄清一下,如果我的程序成功地将脚本创建到您选择的保存位置,您仍然需要使用AutoCAD中的“脚本”命令运行该脚本-我的例程只是编写脚本。
 
我还要看一下你正在使用的代码

Lee Mac 发表于 2022-7-6 12:29:27

代码的VL替代方案:
 

(defun c:nfcon (/ lay app)
(vl-load-com)

(if (not (vl-catch-all-error-p
            (setq lay
            (vl-catch-all-apply
                (function vla-item)
                  (list (vla-get-layers                           
                        (vla-get-ActiveDocument
                            (setq app (vlax-get-acad-object)))) "tb|nfc")))))
   
   (vla-put-freeze lay :vlax-false))

(vla-ZoomExtents app)
(vla-save (vla-get-ActiveDocument app))

(princ))

tofuannie 发表于 2022-7-6 12:34:34

你是快李麦克!如果你不介意的话,请帮我理解几件事。我检查了ACad中的txt窗口,它显示“_.open”有效,但它将*file*显示为未知命令,然后没有继续执行“(c:nfcon)”。为什么?这三个例程是否相互不关联,这就是你提出上述建议的原因?或(总是,谢谢!)

tofuannie 发表于 2022-7-6 12:36:13

对不起,我是想问。。。什么是VL?

Lee Mac 发表于 2022-7-6 12:39:48

 
好的,我想我们可能一路上有点困惑。*文件*只是一个“令牌”,我只在我的脚本程序中使用它来表示图形的文件名。
 
因此,用户输入他/她想要在一组图形上执行的一行操作,但将图形的文件路径替换为*file*令牌。
 
然后,我的程序将编写一个脚本,对选定目录中所有图形的文件路径进行编码,以代替*file*标记。
 
然后可以运行脚本对这些图形进行操作。
 
优点是用户不必手动复制/粘贴/键入脚本的每一行,而只需第一行。
 
 
Visual LISP-具有额外功能的标准AutoLISP的扩展

tofuannie 发表于 2022-7-6 12:42:14

没关系,李,你可以说“我”一路上很困惑。我是个新手,所以每一件小事都是从字面上理解的。
 
因此,我打开了任何ACad dwg,并在命令行中放置“_.open z:\xxx\xxx.dwg(c:nfcon)close”,然后它将运行您的“wScript.lsp”,打开我的许多dwg,并运行“nfcon”。为了创建脚本,该命令行条目在哪里提取“wScript.lsp”?
 
对不起,这些疯狂的问题。。。只要知道,你正在种下一粒种子,我会种下去的。谢谢

Lee Mac 发表于 2022-7-6 12:45:41

别担心,我会帮你解决的。
 
[列表]
[*]打开AutoCAD以查看任何新图形
[*]确保我的WScript。lsp已加载
[*]在命令行键入WScript
[*]输入脚本行[即_.打开*文件*(c:ncfcon)_.关闭]
[*]选择要处理的目录
[*]选择脚本文件的位置
现在脚本文件已经写入,我们可以运行它了。
 
[列表]
[*]在AutoCAD中,在命令行键入“script”
[*]选择我们刚刚创建的脚本文件,单击“确定”。
希望这能为您澄清一些事情,但如果您在这方面有任何问题,请告诉我,我很乐意提供更多帮助。
 

tofuannie 发表于 2022-7-6 12:48:46

哦,哇!
 
太阳出来真的很有帮助,不是吗?一切都像你布置的那样完美。这正是我想做的。
 
谢谢,下一次我将从非常小的需求开始。当我刚开始的时候,我真的不知道我想做什么。我想这将是一个瞬间齐心协力。。。不适合我。。。还没有。你是最棒的,非常感谢!!

Lee Mac 发表于 2022-7-6 12:53:45

 
没问题,我很乐意。
 
这是一个陡峭的学习曲线,现在您知道下次您要在多个图形上操作
 
页: 1 [2]
查看完整版本: lisp can的新手';t获取#0