明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2214|回复: 12

求助 lisp

  [复制链接]
发表于 2005-3-10 12:34 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-3-10 14:23:51 编辑

请问各位大侠,如果图中有许多个直径为X的圆,能否用一个lisp完成下面的动作:



自动搜索所有直径为X的圆,并在相应各圆心处作直径为y的圆??


[U]要求 直径x值,y值在命令行输入[/U]
发表于 2005-3-10 13:35 | 显示全部楼层
(defun c:test( / x y ss i pt)
(setq X 10)
(setq Y 5)
(setq ss (ssget "x" (list '(0 . "circle") (cons 40 (/ X 2)))))
(setq i 0)
(repeat (sslength ss)
(setq pt (cdr (assoc 10 (entget (ssname ss i)))))
(command "_.circle" pt (/ Y 2))
(setq i (1+ i))
)
(princ)
)
 楼主| 发表于 2005-3-10 13:53 | 显示全部楼层
meflying 运行出错啊 命令: test
; 错误: 参数类型错误: lselsetp nil
发表于 2005-3-10 14:34 | 显示全部楼层
你的图里面没有符合条件的圆,当然出错了。。。


上面那个X和Y改成你需要的
 楼主| 发表于 2005-3-10 15:12 | 显示全部楼层
<U>有点麻烦!!</U>


<U>要求 直径x值,y值在命令行输入呢??</U>


<U>窗选对象范围,不要所有的都更改</U>
 楼主| 发表于 2005-3-10 16:46 | 显示全部楼层
(command "_.circle" pt (/ Y 2))改为: (command "_.circle" pt (/ Y 2.0))
发表于 2005-3-10 17:23 | 显示全部楼层
(defun c:test( / x y ss i pt)
(setq X (getreal "输入X:"))
(setq Y (getreal "输入Y:"))
(setq ss (ssget (list '(0 . "circle") (cons 40 (/ X 2)))))
(setq i 0)
(repeat (sslength ss)
(setq pt (cdr (assoc 10 (entget (ssname ss i)))))
(command "_.circle" pt (/ Y 2))
(setq i (1+ i))
)
(princ)
)
 楼主| 发表于 2005-3-10 18:21 | 显示全部楼层
非常感谢meflying的热心帮助!!敬献鲜花一朵致敬。 还有一个问题:不用改为(command "_.circle" pt (/ Y 2.0))??然而我用你的第一个程序时,y=15时,作出的圆却为φ14,百思不得其解
发表于 2005-3-10 19:24 | 显示全部楼层
用后面的程序就不用改了。。。


因为如果你原来的Y是15,那是整数,2也是整数(/ 15 2)就是整数除法,结果也为整数,得到7,所以出错。。。


后面的程序,使用getreal函数获得的就是实数了,表达式中只要有一个实数,就属于实数运算,结果就是实数了。
 楼主| 发表于 2005-3-10 19:52 | 显示全部楼层
但是你是如何实现窗选对象呢? 下面这段程序无法窗选对象,看不出差别! (defun c:test( / x y ss i pt)
(setq x (GETREAL "输入直径x: "))
(setq y (GETREAL "输入直径y: "))
(setq ss (ssget "x" (list '(0 . "circle") (cons 40 (/ X 2)))))
(setq i 0)
(repeat (sslength ss)
(setq pt (cdr (assoc 10 (entget (ssname ss i)))))
(command "_.circle" pt (/ Y 2))
(setq i (1+ i))
)
(princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 01:40 , Processed in 0.153982 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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