The Buzzard 发表于 2022-7-6 14:23:17

谁能检查一下这个吗

好的,这是另一个dum计算器。此代码不完整。我还没有输入错误函数,变量需要本地化。我需要知道我是否使用了正确的精度,如果发现了任何其他怪癖,你能告诉我吗?
 
谢谢
秃鹰
UCCv1.zip

Lee Mac 发表于 2022-7-6 14:31:16

快速一:
 
您可以更改:
 

(setq C:VT (strcat ""(eval U:INT)""(eval T:YPE)""))

 
为此:
 

(setq C:VT (strcat U:INT T:YPE))

 
因为U:INT和T:YPE都是字符串。

The Buzzard 发表于 2022-7-6 14:32:20

谢谢李,
 
我会修复这些问题。请随意切除它。我很快就把这些放在一起了,但我发现有时我会不知所措。

Lee Mac 发表于 2022-7-6 14:36:49

除此之外,看起来还不错。
 
老实说,这种类型的编码并不是我喜欢的类型——它非常乏味,而且你不可能真的对代码非常“聪明”,因为转换已经存在,而且是一成不变的。
 
我想你可以把它整理一下,比如,把答案转换成条件句之前的字符串,把平铺设置成条件句的结果——去掉条件语句中的重复函数,但是,除此之外,我无法立即看到你能做的更多

The Buzzard 发表于 2022-7-6 14:41:21

 
我注意到一个问题,例如:选择英寸到毫米输入值,然后计算。紧接着向下滚动一到两次,然后重复。然后选择另一种类型的转换,如温度,并尝试计算它,除非您重新单击“将华氏温度转换为摄氏温度”部分,否则它不会发生。
 
我知道我必须彻底地完成它,但有时我倾向于仓促行事。

Lee Mac 发表于 2022-7-6 14:44:48

 
这对我来说似乎没问题-值是在我单击“计算”时计算出来的。
 
作为另一个选项,您可以将action\u tile语句添加到edit\u框中,以便在用户输入内容后执行计算。

The Buzzard 发表于 2022-7-6 14:52:23

 
我想你的意思是,不要用条件来设置互动程序。

Lee Mac 发表于 2022-7-6 14:56:04

 
不,仍然使用条件-但当用户在编辑框中输入值时,只需在计算程序中运行它
 
我会有一个剧本,看看我能不能举几个例子来说明我的意思

Lee Mac 发表于 2022-7-6 15:01:00

例如,可以这样设置答案值变量:
 

(setq VAL2
   (cond
   ((= "IMPLEN0" CAI)(* VAL125.4))
   ((= "IMPLEN1" CAI)(* VAL1   0.305))
   ((= "IMPLEN2" CAI)(* VAL1   0.914))

   ....

   ) ; End Cond
) ; end Setq

 
 
此外,您可以使用UCC\u RAC函数来设置瓷砖的值,而不是在COND语句中设置它们:
 
将UCC\U RAC更改为:
 


(defun UCC_RAC (VAL1 VAL2)

(set_tile "VAL1" VAL1)
(set_tile "VAL2" VAL2)
)

 
并将相关的action\u tile reset语句更改为
 
(UCC_RAC "" "")
 
我会将变量VAL1和VAL2转换为COND语句之前的字符串,因此:
 


(setq VAL1 (rtos VAL1 2 1) VAL2 (rtos VAL2 2 1))
(setq VAL2
   (cond
   ((= "IMPLEN0" CAI)(strcat VAL1 " in"      " = " VAL2 " mm"))
   ((= "IMPLEN1" CAI)(strcat VAL1 " ft"      " = " VAL2 " m"))

   ...

   ) ; end COND
) ; end Setq

(UCC_RAC VAL1 VAL2)

 
只是一些建议

The Buzzard 发表于 2022-7-6 15:03:02

 
谢谢李,
 
我只是试着把计算条件和答案条件结合起来,结果成功了。我不确定我是否会同意。我会试试你贴的样品,看看会发生什么。
 
谢谢
页: [1] 2
查看完整版本: 谁能检查一下这个吗