明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 638|回复: 10

[提问] 求助!求助!

[复制链接]
发表于 2022-11-9 19:15:28 | 显示全部楼层 |阅读模式
自己做了一个程序:实现打开图纸--输入命令--文字修改成 “TEXT” 图层--其它图元修改成 "CUTME" 图层,但运行提示语法错误,求各位能否给调试一下?

(defun c:tt()
(prompt "\n<<框选图元:>>")
(setq ss(ssget))
(setq n 0)       
(repeat (sslength ss)
  (setq en(ssname ss n))
  (setq endata(entget en))
  (setq entype (cdr (assoc 0 endata)))
         (if (= entype "TEXT")
                        (progn(setq endata(subst(cons 8 "TEXT") (assoc 8 endata) endata))
                  (setq endata(subst(cons 62 3) (assoc 62 endata) endata))
                  (setq endata(subst(cons 6 "ByLayer") (assoc 6 endata) endata))
                  (setq endata(subst(cons 370 0) (assoc 370 endata) endata))
            (entmod endata)
                                )
                         (progn(setq endata(subst(cons 8 "CUTME") (assoc 8 endata) endata))
                  (setq endata(subst(cons 62 1) (assoc 62 endata) endata))
                  (setq endata(subst(cons 6 "ByLayer") (assoc 6 endata) endata))
                  (setq endata(subst(cons 370 0) (assoc 370 endata) endata))
            (entmod endata)
                                )
  (setq n (1+ n))
)
(prin1)
)
)

发表于 2022-11-9 21:13:25 | 显示全部楼层



(defun c:tt()
        (prompt "\n<<框选图元:>>")
        (setq ss(ssget))
        (setq n 0)      
        (repeat (sslength ss)
                (setq en(ssname ss n))
                (setq endata(entget en))
                (setq entype (cdr (assoc 0 endata)))
                (if (= entype "TEXT")
                        (progn
                                (setq endata(subst(cons 8 "TEXT") (assoc 8 endata) endata))
                                (setq endata(subst(cons 62 3) (assoc 62 endata) endata))
                                (setq endata(subst(cons 6 "ByLayer") (assoc 6 endata) endata))
                                (setq endata(subst(cons 370 0) (assoc 370 endata) endata))
                                (entmod endata)
                        )
                        (progn
                                (setq endata(subst(cons 8 "CUTME") (assoc 8 endata) endata))
                                (setq endata(subst(cons 62 1) (assoc 62 endata) endata))
                                (setq endata(subst(cons 6 "ByLayer") (assoc 6 endata) endata))
                                (setq endata(subst(cons 370 0) (assoc 370 endata) endata))
                                (entmod endata)
                        )
                )       
                (setq n (1+ n))
        )       
        (prin1)
)
 楼主| 发表于 2022-11-9 22:19:11 | 显示全部楼层
xj6019 发表于 2022-11-9 21:13
(defun c:tt()
        (prompt "\n")
        (setq ss(ssget))

万分感谢!!
 楼主| 发表于 2022-11-9 22:27:57 | 显示全部楼层
本帖最后由 suiran 于 2022-11-9 22:37 编辑
xj6019 发表于 2022-11-9 21:13
(defun c:tt()
        (prompt "\n")
        (setq ss(ssget))

大侠,能说一下问题出在哪里吧?我愣是没看出来


哦,知道了。 (setq n (1+ n))位置放错了

 楼主| 发表于 2022-11-9 23:12:33 | 显示全部楼层
我要在 (if (= entype "TEXT"))加一个或者“MTEXT”,改怎么加?
发表于 2022-11-9 23:24:03 | 显示全部楼层
(defun c:tt ()
  (princ "\n框选图元: ")
  (if (setq ss (ssget))
    (progn
      (setq ss1 (ssget "p" '((0 . "*text"))))      
      (command"chprop" ss "" "la" "CUTME" "c" 1 "" )
      (command"chprop" ss1 "" "la" "TEXT" "c" 3 "" )
    )
  )
  (princ)
)

点评

大侠太牛了,简洁易懂。一楼的简直是在写天书!  发表于 2022-11-10 00:13
发表于 2022-11-10 08:36:33 来自手机 | 显示全部楼层
版主,厉害了!
发表于 2022-11-10 08:37:41 | 显示全部楼层
xyp1964 发表于 2022-11-9 23:24
(defun c:tt ()
  (princ "\n框选图元: ")
  (if (setq ss (ssget))

学习了  数据少的时候的确方便
 楼主| 发表于 2022-11-10 08:41:37 | 显示全部楼层
xyp1964 发表于 2022-11-9 23:24
(defun c:tt ()
  (princ "\n框选图元: ")
  (if (setq ss (ssget))

这个写法有点逆天了,一时还接受不了,受教了,感谢!!!

点评

用好command很重要  发表于 2022-11-11 09:27
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 02:38 , Processed in 0.186049 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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