明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1920|回复: 9

如何用lisp实现选择某一个图层上的所有文字?

[复制链接]
发表于 2006-3-10 00:06 | 显示全部楼层 |阅读模式
初学lisp,请教一下这个功能怎么实现:
选择某一个图层上的所有文字并对其排序
发表于 2006-3-10 00:40 | 显示全部楼层

建立一个选择集

(setq ss (ssget "x" '(8 . "某一图层的图层名")(0 . "text")))

ssget函数后面跟了3个条件

"x" 为所有图元

组码8对应图元的图层名

组码0对应图元的类型

连在一起的条件就是所有在“某一图层”的文本图元

发表于 2006-3-10 07:44 | 显示全部楼层
按什么条件来排序?
发表于 2006-3-10 07:56 | 显示全部楼层
程序是按照你打字的生成顺序来排列的!
 楼主| 发表于 2006-3-10 21:48 | 显示全部楼层
谢谢2楼,不过你的语句好像少了对括号#¥。


发表于 2006-3-11 19:45 | 显示全部楼层

(setq ss (ssget "x" '(8 . "某一图层的图层名")(0 . "*text")))

发表于 2006-3-12 00:12 | 显示全部楼层
  1. (defun c:test ()
  2.   (while (not (setq s1 (entsel "\n选择任意目标层实体: "))))
  3.   (setq la (cdr (assoc 8 (entget (car s1))))
  4. ss (ssget "x" (list (cons 0 "*TEXT") (cons 8 la)))
  5.   )
  6.   (princ "\n选择集名称: !ss")
  7.   ss
  8. )
 楼主| 发表于 2006-3-12 09:31 | 显示全部楼层
xyp1964发表于2006-3-12 0:12:00(defun c:test () (while (not (setq s1 (entsel \"\n选择任意目标层实体: \")))) (setq la (cdr (assoc 8 (entget (car s1))))
xyp1964版主给的这个例子灵活的多了,非常不错

谢谢^_^
发表于 2006-3-12 20:34 | 显示全部楼层
如果按颜色选择其中的某些图元呢?
发表于 2006-3-13 06:26 | 显示全部楼层
userzhl发表于2006-3-12 20:34:00如果按颜色选择其中的某些图元呢?
如果你学编程,建议你仔细看看 SSGET 函数,如果你只是使用,建议你学习 Filter 和 Qselect 命令;或者你去用一个“选择易”的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 14:38 , Processed in 0.180256 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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