明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 907|回复: 2

[提问] 请问在lisp中如何按照编号后面的数字大小顺序来提取图元名称

[复制链接]
发表于 2016-10-1 10:27:05 | 显示全部楼层 |阅读模式
本帖最后由 fangmin723 于 2017-7-26 13:52 编辑

请教一下,想C1、C2、C3、C4、C5、C6、C7…………,把这些编号全部选中创建一个选择集,然后要怎么样才能按照后面数字的顺序在选择集中提取图元名称,请问在lisp中该如何操作,谢谢!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2016-10-2 09:59:03 | 显示全部楼层
读取编号内容,编号与图元对应,建立一个表。然后表按顺序排列。
  1. (defun c:tes ( / &k1 &kw1 &ss1 &str1 x y)
  2. (vl-load-com)
  3. (princ "\n请选择编号文字")
  4. (if (setq &kw1 (ssget '((0 . "TEXT") (1 . "C*,c*"))))
  5.   (progn
  6.    (setq &ss1 '());建立表
  7.    (while (setq &k1 (ssname &kw1 0))
  8.     (setq &kw1 (ssdel &k1 &kw1) &str1 (cdr (assoc 1 (entget &k1))));提取文字内容
  9.     (setq &str1 (atof (substr &str1 2)));去掉字母C变数值
  10.     (setq &ss1 (cons (list &str1 &k1) &ss1))
  11.    );while
  12.    (setq &ss1 (vl-sort &ss1 '(lambda (x y) (< (car x) (car y)))));按数值从小到大排列
  13.    ;(princ &ss1)
  14.    (setq &ss1 (mapcar 'cadr &ss1));表里面去掉数值,只有图元
  15.    ;(princ &ss1)
  16.   )
  17. )
  18. (princ)
  19. )

点评

非常感谢  发表于 2016-10-2 11:12

评分

参与人数 1明经币 +1 收起 理由
fangmin723 + 1 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 07:06 , Processed in 0.157244 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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