明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1819|回复: 4

[讨论] 麻烦帮看下,文字压线移动

[复制链接]
发表于 2013-5-28 20:48:10 | 显示全部楼层 |阅读模式
(defun c:tt ()
    (setvar "osmode" 0)
    (setq wss (ssget "x" '((0 . "text"))))
    (setq i 0)
      (repeat (sslength wss)
         
          (setq wa (ssname wss i))
          (setq went (entget wa))
          (setq wff (assoc 1 went))
          (setq wfff (cdr wff))
          (setq wz (assoc 10 went))
          (setq wzzxy (cdr wz))
          (setq wzxx (car wzzxy))
          (setq wzxy (cadr wzzxy))
          (setq wysx (+ wzxx 3))
          (setq wysy (+ wzxy 1))
          (setq wysxy (list wysx wysy))
         
      
         
       (if (ssget "c" wzzxy wysxy '((-4 . "<NOT") (0 . "text") (-4 . "NOT>")))

        (progn
           
              (setq xwzxy (- wzxy 0.5))
              (setq x (list wzxx xwzxy))
              (setq went (subst (cons 10 x) wz went))
              (entmod went)
           
         );progn
         
        );if
        
         
      (setq i (+ i 1))

     );repeat

(princ)
)
根据上次师傅说了一下判断方法,我判断出了,但只运行了一次,例如我得到三个文本,都在线上,但运行这代码,就是改变一个图元,其它的都不动,,再运行一次也是改变上一次的图元。。。REPEAT不是按图元个数来计算次数吗???为什么下个图元不行了???
 楼主| 发表于 2013-5-28 20:52:36 | 显示全部楼层
(while (ssget "c" wzzxy wysxy '((-4 . "<NOT") (0 . "text") (-4 . "NOT>")))


)用循环来判断文字是否再压着对象,压着就一直移动。。我尝试了一下,也不行,运行后CAD不行,按ESC建后就行了????
 楼主| 发表于 2013-5-29 17:41:41 | 显示全部楼层
没师傅帮忙看看咯???自己想想办法看。。。
发表于 2013-5-29 22:39:37 | 显示全部楼层
(setq i (+ i 1))
这句的括号用了中文的括号,,
 楼主| 发表于 2013-5-30 07:23:16 | 显示全部楼层
张和平 发表于 2013-5-29 22:39
(setq i (+ i 1))
这句的括号用了中文的括号,,

知道了,呵呵,谢谢啊。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 07:21 , Processed in 0.159460 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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