明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1959|回复: 10

[函数]帮忙解决下这段代码问题

[复制链接]
发表于 2004-5-11 09:24:00 | 显示全部楼层 |阅读模式
帮忙解决下这段代码问题红色部分错在哪里) (defun c:aaa ()
(setq p1 (getpoint "\npick point:") lis nil)
(while
(setq p2 (getpoint "\npick point:"))
(setq lis (append lis (list p2)))
)
(setq num (length lis) ee 0)
(command "pline" p1)
(while (< ee num) (nth ee lis) (setq ee (1+ ee)))
(command "")

(princ))
 楼主| 发表于 2004-5-11 09:27:00 | 显示全部楼层
其实这里是能直接用PLINE实现的,
不过我还要加入一段程序,与其合并。
所以有劳各位大侠解决。
发表于 2004-5-11 09:34:00 | 显示全部楼层
(nth ee lis)什么也没做,干什么用?
发表于 2004-5-11 09:44:00 | 显示全部楼层
我也写了一个... 看了你的这么多问题,我觉得你应该努力了,你写的程序结构也算有点复杂了,可进步很少啊,遇到问题应该先动脑筋,不要对这里存在依赖性,对基础知识也要再加强掌握一下,否则就很难进步了 (defun c:aaa ()
(command "_.pline")
(while (= (getvar "cmdactive") 1)
(command pause)
)
(command "")
(vla-get-length (vlax-ename->vla-object (entlast)))
)
 楼主| 发表于 2004-5-11 10:15:00 | 显示全部楼层
呵呵,多谢meflying大哥。 说实话我也从没专门买书去看,只是从CAD帮助文件里看了些 lisp的函数,再参考了别人的一些程序,我编程从去年10月开始的。 很想买本书的,不过一直是从工作的紧张中挤出时间来编几个程, 因为工作的需要,所以也显得有些依赖人。 听了meflying大哥的指教,我一定会去买本书来学学基本的东西。 再次谢了。 不过你说的那个(nth ee lis)为什么会没用了?我是从列表中提出各点。 能为小弟解释下吗?
 楼主| 发表于 2004-5-11 10:26:00 | 显示全部楼层
有关LISP的书籍是不是&lt;&lt;LISP&amp;DCL基础篇&gt;&gt;最好,我好像在网上看到过这本书,不过我去了深圳书城,没看到过。不知哪位大哥知道深圳哪里有?望告之小弟,多谢……
发表于 2004-5-11 11:13:00 | 显示全部楼层
(nth ee lis)你提取出来后什么也没做啊(没有把它赋给谁,也没有进行运算)...
 楼主| 发表于 2004-5-11 11:16:00 | 显示全部楼层
(command (while (< ee num) (nth ee lis) (setq ee (1+ ee))) ) 为什么这样也不行了
发表于 2004-5-11 11:21:00 | 显示全部楼层
1,循环中(nth ee lis)没有任何作用,已经跟你说了好几遍了,,, 2,command后面的参数是while返回值,注意这里while并不是循环一次就返回一个值,而是返回最后一次计算式的值,应该是最后一次循环中ee的值,所以你的这句就相当于 (command num) 3,你的意思应该是想lis中的每个元素动command一回吧,应该这样 (apply 'command lis)
 楼主| 发表于 2004-5-11 14:10:00 | 显示全部楼层
明白,多谢meflying耐心的解答,小弟在此万分感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 04:49 , Processed in 0.180813 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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