cxzr8 发表于 2004-2-19 23:25:00

新手求助,望各位前辈指点!!!

本帖最后由 作者 于 2004-2-20 0:03:18 编辑 <br /><br /> 以前竟然没有发现世上还有这么好的CAD开发论坛,真是遗憾啊!!这里有这么多的朋友一起学习交流一定很棒的!!以后这里就是我们共同的家,愿弟兄们多多指教!



我还是刚学LISP,很菜的请不要见笑。


我想编一程序,对当前图上在1000 层上所有的 text ,根据其高、宽等属性的不同,逐一进行修改,但不知从何入手。


小弟不太明白LISP中的选择集是如何选择,并对图元进行 逐个 操作的。


       (setq ss1 (ssget ((0 . "TEXT"))))                                                       <BR>       


       (setq ss1 (ssget "W" pt1 pt2 ((8 . "1000"))))                       


请各位前辈帮小弟写一下,不胜感激!! 注:我用的是CAD2000

cqnj023 发表于 2004-2-20 05:26:00

你的过滤表有点问题,请参见(setq ss1 (ssget '((0 . "TEXT") (8 . "1000")))),注意符号'的位置。



然后就可以操作ss1了。


(setq n (sslength ss1))


(repeat n


……


cxzr8 发表于 2004-2-20 09:00:00

本帖最后由 作者 于 2004-2-20 12:35:26 编辑 <br /><br /> 谢谢<A name=80631><FONT color=#000066><B>cqnj023</B></FONT></A>兄这么快就给了回复,这里的朋友真是都很热心哪! 送您鲜花一朵,不成敬意!



是不是这样就可以了


       


;这个选择集还是得手工全选,再由程序过滤对吗?可以不用手工选吗?<BR>(setq ss1 (ssget '((0 . "TEXT") (8 . "1000"))))       


       (setq i 0)                                                                                       ;以下逐一操作图元,请指点对不对


       (repeat (sslength ss)                                                                                                               


                       (setq ent (ssname ss i))<BR>                       ……                                                                                                                                                                                                                                                                                                                               ;在此处判断并操作当前元素吗?


                       (setq i (1+ i))<BR>       )                                                                                                                                                                                               <BR>)





无痕 发表于 2004-2-20 12:55:00

全选:


(setq ss1 (ssget        "x"        '((0 . "TEXT") (8 . "1000"))))       


后面的可行


其他参数可参考 cad的帮助文件。

f5612140 发表于 2004-2-20 12:58:00

(setq ss (ssget "x" '((0 . "TEXT")(8 . "1000"))))



不好意思,和樓上重覆了,此帖在短短時間有6百多人閱讀,實在不可思議
页: [1]
查看完整版本: 新手求助,望各位前辈指点!!!