set\u tile和get\u tile
大家好,我一直潜伏在这个论坛很长时间,现在我需要一些帮助。我想做一个dcl,其中有一些基本的预设值。用户可以更改它们。
稍后将使用这些值进行计算。
该lisp在AutoCAD2002中工作,是更大的lisp的一部分。其中一些我无法发布。
这是我得到的(部分),但我只是无法用get\u tile获得值。
给我类型错误。或零。
DCL:
:boxed_列{
label=“安全区域2参数”;
:列{
:行{
:编辑框{
label=“Korkeus 1 alle;”;
key=“PAAA1”;
编辑宽度=15;
allow\u accept=true;
}
:编辑框{
label=“偏移1开:”;
key=“PAAA2”;
编辑宽度=15;
allow\u accept=true;
}
}
}
:列{
:行{
:编辑框{
label=“Korkeus 2 alle:”;
key=“PAAA3”;
编辑宽度=15;
allow\u accept=true;
}
:编辑框{
label=“偏移量2开:”;
key=“PAAA4”;
编辑宽度=15;
allow\u accept=true;
}
}
}
:列{
:行{
:编辑框{
label=“Korkeus 3 YLI:”;
key=“PAAA5”;
编辑宽度=10;
allow\u accept=true;
}
:编辑框{
label=“偏移3开:”;
key=“PAAA6”;
编辑宽度=10;
allow\u accept=true;
}
:编辑框{
label=“Kerroin:”;
key=“PAAA7”;
编辑宽度=10;
allow\u accept=true;
}
}
}
和lisp:(lisp的一部分,它很大)8设置对话框参数)
(defun setit(模式/列表页面)
(条件
(=模式1)
(setq lista(列表“PROD01”“PROD02”“PROD03”)
“PROD04”“PROD041”“PROD05”
“PROD06”“PROD061”“PROD07”
“PROD08”“PROD09”
)
)
)
(=模式2)
(setq lista(列表“PROD03”“PROD05”“PROD09”))
)
)
(每个页面的页面列表
(set_平铺页面“0”)
)
(每页列表A
(set_tile第“1”页)
)
)
;;dialogin alustus公司
(if系列
(set_tile“SERIES”(strcase SERIES))
(set_tile“SERIES”“Finno”)
)
(setq p11 10)
(set_tile“PAAA1”(rtos P11 2))
(setq p12 0)
(set_tile“PAAA2”(rtos P12))
(setq p13 1500)
(set_tile“PAAA3”(rtos P13 2))
(setq p14 1500)
(set_tile“PAAA4”(rtos P14 2))
(setq p15 1500)
(set_tile“PAAA5”(rtos P15 2))
(setq p16 2500)
(set_tile“PAAA6”(rtos P16 2)
(setq p17 0.6667)
(set_tile“PAAA7”(rtos P17 2)
(如果项目
(set_tile“PROJECT”项目)
)
(设置1)
(set_tile“PROD05”“1”)
(set_tile“UPDATE”“0”)
(action_tile“accept”“(setq pagelist(prodok pagelist)))
(action_tile“cancel”“(exit)”)
;;(action\u tile“ALL”“(tilemode pagelist“1”)
(action\u tile“NONE”(tilemode页面列表“0”)
(action_tile“INS”“(setit 1)”)
(action_tile“PROD”“(setit 2)”)
;;Dialogi valmis käynnistettäväksi
(start_对话框)
(unload\u对话框dcl\u id)
(列出项目
(如果系列
(strcase系列)
""
)
页面列表
使现代化
)
)
LISP中的计算:(所有其他变量都可以,只有get_tile是问题)
(setq puuuu1(atof(get\u tile“PAAA1”))
(setq puuuu2(atof(get_tile“PAAA2”))
(setq puuuu3(atof(get_tile“PAAA3”))
(setq puuuu4(atof(get_tile“PAAA4”))
(setq PUUU5(atof(get_tile“PAAA5”))
(setq puuuu6(atof(get_tile“PAAA6”))
(setq PUUUU7(atof(get_tile“PAAA7”))
(setq lc_偏移量2(最小值(如果(
PUUU2
(如果(
PUUU4
(+PUUU5(*PUUU7(-korkeus2 PUUU5)))
)
)
PUUU6
)
)
无论我做什么,我都会出错:
; 错误:错误的参数类型:stringp nil
有人能给我引路吗?
BR。Eetu公司 我还尝试了dcl框中的值函数。给出其中的值并仅使用(setq puuuu1(atof(get\u tile“PAAA1”))
仍然会出现相同的错误。lisp中的所有其他值都已定义并正常工作。
如果我在计算中使用数字而不是变量puuuu1。。。Lisp程序很好用。
页:
[1]