明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1604|回复: 7

把一个列表的选定项加入另一个列表的问题

[复制链接]
发表于 2005-4-11 21:19:00 | 显示全部楼层 |阅读模式




0是原本就有的,问题是为什么我明明选定的是右边的那4个,而出现在左边的却多了个“成型板”??谁帮忙写个正确的我参考下,3Q。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2005-4-11 22:25:00 | 显示全部楼层
代码呢?应该是“待”选图层,还有什么是“摸”头设计?
 楼主| 发表于 2005-4-11 22:37:00 | 显示全部楼层
(defun havel () ;读取当前作业所有现有图层,加入已有图层(list1)列表,并初始化"待选图层"列表list2
(setq all die14
have '()
sll (TblNext "LAYER" T)
cp (getvar "ctab")
)
(While (SetQ have (Cons (Cdr (Assoc 2 sll)) have)
sll (TblNext "LAYER" nil)
)
)
) …… …… (defun bt1act () ;定义button1(←)的动作
(setq n 1
)
(while (<= n (strlen l2v))
(setq arg1 (nth (atoi (substr l2v n 1)) all))
(if (not (member arg1 have))
(setq have (cons arg1 have))
)
(setq n (1+ n))
)
(setq have (vl-sort have '<))
(start_list "list1")
(mapcar 'add_list have)
(end_list)
)
l2v是list2的$value
发表于 2005-4-12 08:30:00 | 显示全部楼层
很多变量都是全局变量,不给完整的程序,很难调试和阅读
 楼主| 发表于 2005-4-12 13:04:00 | 显示全部楼层
设成全局变量是方便做的时候随时查现在的值,等完成后会改成局部的。在下例中如果0要用到p中的部分变量(假设为a),那么a是设成全局还是局部的?在o中出现的变量如果p用不到,那么就应该在“o()”中把设成局部的了吧?


(defun o ()


……)


(defun c:p ()


……


(0)


……)
 楼主| 发表于 2005-4-12 22:33:00 | 显示全部楼层
我 把代码改成 (defun bt1act (/ arg1) ;定义button1(←)的动作
(setq
arg1 (foreach n (read (strcat "(" l2v ")")) (nth n all))
)
(if (not (member arg1 have))
(setq have (cons arg1 have))
)
(setq have (vl-sort have '<))
(start_list "list1")
(mapcar 'add_list have)
(end_list)
) 了,可是连机器都重起过了,为什么l2v的值还是“12 3 4”啊??弄的问题依然解决不好。
发表于 2005-4-13 17:47:00 | 显示全部楼层
没有这句, (setq n 1 l2v (vl-string-subst "" " " l2v) l2v不可能是"12 3 4" 你注意(read (strcat "(" l2v ")"))返回的是一个表,而你的arg1仅仅是最后一项,也就是说,如果你选中了(1 2 3 4),而你却只添加第4项。。。 (setq l2v (read (strcat "(" l2v ")"))) (setq l2v (mapcar '(labda(e) (nth e all)) l2v);这个过程如果不明白,你可以使用循环代替的, (setq have (cons l2v have)) ... 这都是一些程序过程问题,应该说没有难点,自己多琢磨琢磨
 楼主| 发表于 2005-4-13 21:04:00 | 显示全部楼层
今天仔细看了下mapcar,apply和foreach终于明白中间的区别了,3Q。


还有个问题:


怎么求图纸中所有的布局?有线型表、图层表,有布局表吗?怎么在从模型转到布局或者从一个布局转到另一个布局时立即运行某个程序?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 08:24 , Processed in 0.166299 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表