明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1276|回复: 8

[源码] 求思路:选择一个rectangle 里的所有文字图元

[复制链接]
发表于 2015-12-10 14:16:47 | 显示全部楼层 |阅读模式
求帮忙:
假如我先用图层 “1” 画一个矩形框,再在 这个矩形框 里面放上很多文字图元,
现在我想编一段代码,自动得到这个框里的所有文字图元,
该怎样组织?谢谢
发表于 2015-12-10 15:17:22 | 显示全部楼层
vla-SelectByPolygon +过滤
发表于 2015-12-11 09:59:10 | 显示全部楼层
zzyong00 发表于 2015-12-10 15:17
vla-SelectByPolygon +过滤

原来还有这种函数!
发表于 2015-12-26 00:31:30 | 显示全部楼层
vla-SelectByPolygon +过滤   很高级,不会用

试着写了个
  1. (defun c:ts  (/ en ent ptl ss)
  2.   (if (setq ent (entsel))
  3.     (progn
  4.       (setq en (car ent)
  5.         ptl (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en)))
  6.         ss (ssget "wp" ptl '((0 . "*text")))
  7.       )
  8.       (sssetfirst nil ss)
  9.     )
  10.   )
  11.   (princ)
  12. )
 楼主| 发表于 2016-1-6 17:18:39 | 显示全部楼层
xiaolong1487 发表于 2015-12-26 00:31
vla-SelectByPolygon +过滤   很高级,不会用

试着写了个

谢谢
,我也写了一个,已经能用了
(setq SS (ssget "X"  (list (cons 8 "X$$-MB")(cons 0 "LWPOLYLINE")) )  COUNT -1  SSLAY NIL)
   (while (setq OBJ (ssname SS (setq COUNT (1+ COUNT))))         
          (setq PNTS     (mapcar 'cdr(vl-remove-if-not '(lambda (IX) (= (car IX) 10))(entget OBJ)))               
                SOBJSET  (ssget "WP" PNTS '((0 . "*TEXT")))          )
          (if SOBJSET
                (progn
                     (setq I 0)
                     (repeat (sslength SOBJSET)  
                         (if (not (member (cdr(assoc 8 (entget(ssname SOBJSET I)))) SSLAY))
                             (setq  SSLAY (append SSLAY (list (cdr (assoc 8 (entget (ssname SOBJSET I)))))))            )                 
                     (setq I (1+ I) )        )          )         )   )
 楼主| 发表于 2016-1-6 23:44:37 | 显示全部楼层
但上述的代码有个问题还需要解决,就是 只能对“可视范围内的”、”可见的“图元有效,否则就无效。
谁能指点一下
发表于 2016-1-7 07:26:58 | 显示全部楼层
iJero 发表于 2016-1-6 23:44
但上述的代码有个问题还需要解决,就是 只能对“可视范围内的”、”可见的“图元有效,否则就无效。
谁能 ...

zoom a 再执行 再ZOOM p
 楼主| 发表于 2016-1-7 15:42:50 | 显示全部楼层
xiaolong1487 发表于 2016-1-7 07:26
zoom a 再执行 再ZOOM p

(command "ZOOM" "a" ) 这样吗?
发表于 2020-12-15 14:29:19 | 显示全部楼层
非常不错的代码,谢谢分享好的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 10:54 , Processed in 0.170785 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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