lamensterms 发表于 2022-7-5 23:06:43

从Loca创建点列表

你好
 
我只是想在DIMSCALE的基础上定义点/坐标,所以我有以下两种不同的代码-两者之间的区别是红色。
 
(DEFUN C:test ( / xcoord ycoord bpt )
(setq xcoord (* (getvar "dimscale") 424))
(setq ycoord (* (getvar "dimscale") 96))
(setq bpt (list xcoord ycoord))
(command "line" bpt)
(princ)
)
 
(DEFUN C:test ( / xcoord ycoord bpt )
(setq xcoord (* (getvar "dimscale") 424))
(setq ycoord (* (getvar "dimscale") 96))
(setq bpt '(xcoord ycoord))
(command "line" bpt)
(princ)
)
 
我的问题是,为什么第一个代码可以工作,但第二个失败?没有给出错误消息。我引用的列表哪里出错了?
 
非常感谢您的帮助。

LosGirk 发表于 2022-7-5 23:16:09

我以前也遇到过同样的事情。我知道的不多,但我知道的是:
 
删除声明的变量(DEFUN C:test()和bang(!bpt))后。。。
 
第一种情况返回:(424.0 96.0),第二种情况返回:(XCOORD YCOORD)。
 
所以我猜它们可能都是创建列表的方法,第一种方法是为需要返回整数时设计的,第二种方法是为代码是否需要返回字符串而设计的?我很想知道真正的答案,祝你好运!

lamensterms 发表于 2022-7-5 23:26:47

LosGirk说得好。也许引用变量会将变量添加到列表中,而不是变量的值。
 
谢谢你的回复。

Snownut 发表于 2022-7-5 23:33:51

 
这就是它的工作原理。。。。

marko_ribar 发表于 2022-7-5 23:42:41

阅读以下李的解释以理解。。。
 
http://www.lee-mac.com/quote.html
 
M、 R。

Lee Mac 发表于 2022-7-5 23:57:43

 
谢谢你,马尔科,我在读这篇文章的时候正打算这么说!

lamensterms 发表于 2022-7-5 23:59:21

理解(现在)。非常感谢大家的意见。
 
伟大的文章李,也为提供链接马尔科感谢。

Lee Mac 发表于 2022-7-6 00:08:04

 
谢谢你,lamensterms-我很高兴解释清楚了
页: [1]
查看完整版本: 从Loca创建点列表