明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 794|回复: 8

请教各位高手(急!)

[复制链接]
发表于 2008-4-24 10:57 | 显示全部楼层 |阅读模式

我现在想写一个函数,有一个变量_ssa的,先选择图面上的图形(SSGET,可以一次选很多),判断图面上选择的图形是否含有TEXT的,如果含有TEXT的,就把它的句柄放到变量_ssa里面,如果_ssa里句柄个数《=1个的,就从新选择,直到_ssa里句柄大于1个的,把选的TEXT变红。

我想了很久也没想出的,各位高手帮我啊,在线等!

发表于 2008-4-24 11:08 | 显示全部楼层
比较好玩的说法啊,就不怕死循环吗?应该是想要选择文本,然后改颜色吧?
(if (setq _ssa(ssget '((0 . "TEXT"))))
  (progn
    ;改变颜色------------------------
  )
)
 楼主| 发表于 2008-4-24 11:28 | 显示全部楼层
它这个是先在图面上任意选的,选了好多的,再判断是否含有TEXT的,我是弄了个死循环啊,一直在选的 ,哭死
发表于 2008-4-24 11:33 | 显示全部楼层
照我上面的改啊,,,判断里面的就都是文本了,,,
 楼主| 发表于 2008-4-24 11:48 | 显示全部楼层

(defun xuanzeA(/ _ssa _ssselect _ssleng _number _ent)
    (setq _ssa nil)
  (setq _ssselect(ssget))
  (if _ssselect
        (setq _ssleng (sslength _ssselect))
        (setq _ssleng 0 )
  )
  (setq _number 0)
  (while (< _number _ssleng)
    (setq _ent (ssname _ssselect _number))
    (if (or (= "TEXT" (cdr (assoc 0 (entget _ent))))
     (= "MTEXT" (cdr (assoc 0 (entget _ent)))))
      (progn
        (setq _ssa (adlist _ssa (cdr (assoc 5 (entget _ent)))))
 (if (<= (length _ssa) 1)
       (progn

       (setq _ssa nil)
         (setq _number 0)
          (setq _ssselect(ssget))
   )
   )
 (if (> (length _ssa) 1)
   (progn
         (command "CHPROP" _ent "" "C" "1" "")
         (redraw _ent 3)  
   )
   )
   )
    (progn
          (setq _number 0)
          (setq _ssselect(ssget))
    )
      )
(setq _number (1+ _number))
  )

  _ssa
)

我的程序是这样的,可就是出现一直选啊,估计是死循环了,照你上面所说,不是一开始就选定里面含有TEXT的,我一开始可以任意选的呀

 楼主| 发表于 2008-4-24 11:57 | 显示全部楼层
刚刚程序第15行那个写错了,应该是WHILE,可就是出现了死循环的,不知道问题在哪里的
发表于 2008-4-24 12:02 | 显示全部楼层
哎,,,好像我的一开始也是可以随意选的啊,,
(defun xuanzeA (/ _ssa _ssselect _ssleng _number _ent)
  (if (setq _ssa(ssget '((0 . "*TEXT"))))
  (progn
    ;改变颜色------------------------
    (command "CHPROP" _ssa "" "C" "1" "")
  )
  ) 
)
 楼主| 发表于 2008-4-24 12:19 | 显示全部楼层

这样是改变了颜色的,可是要实现如果句柄《=1时,从新选择,继续循环,好难啊

发表于 2008-4-24 12:49 | 显示全部楼层

1.先判断有没有选到东西,用(ssget)就可以了,这个用来做循环的条件

2.由上次选集中筛选出文字,用(ssget "P" '((0 . "TEXT")))

接下来的相信你自己也会了

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

本版积分规则

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

GMT+8, 2024-5-10 06:56 , Processed in 0.140027 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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