meflying 发表于 2003-1-17 15:09:00

assoc函数第一个参数可否用变量实现????

CAD菜鸟 发表于 2003-1-17 15:32:00

可以

我做了实验,如下:
(setq el (entget (car (entsel))))

Select object: ((-1 . <Entity name: 40036d90>) (0 . "LINE") (330 . <Entity
name: 40036cf8>) (5 . "52") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"0") (100 . "AcDbLine") (10 5.14077 5.61304 0.0) (11 17.7827 10.2074 0.0) (210
0.0 0.0 1.0))

Command: (setq a 10)
10

Command: (setq p1 (cdr (assoc a el)))
(5.14077 5.61304 0.0)

meflying 发表于 2003-1-17 15:59:00

如果是字符串呢?

如果是字符串呢?

龙龙仔 发表于 2003-1-17 16:14:00

字符串??沒有問題!!

指令: (setq ss (list (cons 123 "sdaf")(cons "qwe" "123")))
((123 . "sdaf") ("qwe" . "123"))

指令: (assoc "qwe" ss)
("qwe" . "123")

meflying 发表于 2003-1-17 16:20:00

我说的是用字符串变量操作

CAD菜鸟 发表于 2003-1-17 16:37:00

不明白了,真的????????????????????

meflying 发表于 2003-1-17 17:16:00

就是关联表的关键元素为字符串...

如:
(setq ss '(("a1" 10 20) ("a2" 20 21) ("a3" 45 27)))
(setq r "a1")
我想这样使用
***(setq rs (assoc r ss))***

CAD菜鸟 发表于 2003-1-20 10:18:00

哎,用你给出的例子在CAD中试一下不就行了。我是出的结果为rs=("a1" 10 20),说明

哎,用你给出的例子在CAD中试一下不就行了。我是出的结果为rs=("a1" 10 20),说明可以。

chshsl 发表于 2018-1-24 13:51:28

今天碰到相同的问题,可以解决的 (setq r  ‘())     (setq r (cons  "a1") r)   (assoc   (car r) ss)
页: [1]
查看完整版本: assoc函数第一个参数可否用变量实现????