ishka 发表于 2022-7-5 20:02:54

对inser的条件Lisp调用

我错过什么了吗?我有一个原始的代码,我想让它基于用户的选择,但它似乎并没有像预期的工作条件时使用。
因此,原始代码为:
 
(定义c:esd\u gcid(/GRDREF MAPPATH)
(setvar“cmdecho”1)
(setvar“filedia”0)
(setvar“cmddia”0)
(命令“layer”“M”“G-NPLT”“))
(命令“rectang”PAUSE PAUSE)
(princ“\nCAD数据…”)
(setq GRDREF(getstring“输入数据类型:”))
(setq MAPPATH(strcat“M:\\GIS-CAD\\地籍\\TCAD\\DWG\\TCAD”GRDREF))
(位于“MAPPATH”X的命令“adedrawings”)
(命令“adequery”“C”“D”“L”“L”“P”“C”PAUSE“X”“E”“D”)
(命令“adedrawings”“DE”“*”“X”)
(setvar“cmddia”1)
(setvar“filedia”1)
(普林斯)
)
 
修改后的条件代码为
 
(定义c:esd\u gcid(/GRDREF MAPPATH)
(setvar“cmdecho”1)
(setvar“filedia”0)
(setvar“cmddia”0)
(命令“layer”“M”“G-NPLT”“))
(命令“rectang”PAUSE PAUSE)
(princ“\nCAD数据…”)
(setq GRDREF(getstring“输入数据类型:”))
(条件
(=GRDDEF“TCAD”)(setq MAPPATH(strcat“M:\\GIS-CAD\\地籍\\TCAD\\DWG\\”GRDREF)))
(=GRDDEF“TCAD-TEXT”)(setq MAPPATH(strcat“M:\\GIS-CAD\\地籍\\TCAD\\DWG\\”GRDREF)))
)
(位于“MAPPATH”X的命令“adedrawings”)
(命令“adequery”“C”“D”“L”“L”“P”“C”PAUSE“X”“E”“D”)
(命令“adedrawings”“DE”“*”“X”)
(setvar“cmddia”1)
(setvar“filedia”1)
(普林斯)
)
 
我在这个过程中失去了什么?GRDREF在传递到条件之前是否未存储在任何位置?我试图实现的是基于用户使用mapattach加载特定数据的答案。我不想为每种类型的数据生成单独的lisp命令。

Lee Mac 发表于 2022-7-5 20:30:29

您正在将getstring的返回值赋给变量GRDREF,但测试GRDDEF的值。
 
然而,条件是多余的,因为无论GRDREF的值是多少,您似乎在连接相同的路径。

ishka 发表于 2022-7-5 20:39:05

 
我懂了。我想那是我的用户错误。GRDDEF应该是GRDREF。这是我的意图,但我想胖手指在捣乱方面做得很好。谢谢你指出我在编码上的错误。这实际上是我第一次尝试编写lisp例程。所以我在正确的轨道上。非常感谢李。你的帖子和回复总是准确无误

Lee Mac 发表于 2022-7-5 20:55:13

不客气-祝您好运!

SLW210 发表于 2022-7-5 21:10:08

请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
页: [1]
查看完整版本: 对inser的条件Lisp调用