明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2857|回复: 6

龙龙仔请进: 文字加括号lisp

[复制链接]
发表于 2005-3-11 12:08:00 | 显示全部楼层 |阅读模式
请问:如何实现下面的lisp对尺寸实测值及修改后的尺寸有效,且支持多选对象??? 下面的lisp仅对字符串有效! 文字加括号
;字符串前后加括号
;2004.10.21
;

;----------------------------------------------------------------------------------
(defun c:r_jkh()
 (princ " 字加括号 --> 阮春辉 Email:ruan_gdqf@sina.com")
(setq a (entsel "\n请选择文字:")
a1 (entget(car a))
a2 (assoc 1 a1)
string1 (cdr a2)
)
(setq string (strcat "(" string1 ")")
a1 (subst (cons 1 string) a2 a1)
)
(entmod a1)
(princ)
)
发表于 2013-1-3 21:49:38 | 显示全部楼层
【KAIXIN】 发表于 2011-12-13 09:49
可以加上MTEXT吗?

(defun c:tt () ;(setq e (car(entsel)))
(setq ss (ssget '((0 . "*TEXT,DIMENSION")))
i -1)
(while (setq e (ssname ss (setq i (1+ i))))
(setq obj (vlax-ename->vla-object e))
(if (OR (= "TEXT" (cdr(assoc 0 (entget e))))
        (= "MTEXT" (cdr(assoc 0 (entget e))))
    )
(vla-put-TextString obj (strcat "(" (vla-get-TextString obj)")"))
(vla-put-Textoverride obj (strcat "(" (if(wcmatch (setq dimt (vla-get-textoverride obj)) "")"<>" dimt) ")"))
)
)(princ)
)

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2005-3-11 12:46:00 | 显示全部楼层
如果是未修改的尺寸,那(assoc 1 a1) 得到是(1 . ""),所以string1得到的是"",只要加个判断,比如 (if (/= string1 "")
(setq string (strcat "(" string1 ")")
a1 (subst (cons 1 string) a2 a1)
)
(setq string "(<>)")
)


发表于 2005-3-11 17:23:00 | 显示全部楼层
;;By LUCAS
;;未详细测试
(defun C:R_JKH_LAI (/ ENT HOLDECHO HOLDOSMODE I N SS)
(vl-load-com)
(if (setq ENT (ssget '((0 . "DIMENSION,*TEXT"))))
(progn
(setq HOLDECHO (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq HOLDOSMODE (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq N (sslength ENT)
I 0
)
(while (< I N)
(setq SS (vlax-ename->vla-object (ssname ENT I)))
(cond
((wcmatch (vla-get-objectname SS) "*Dimension")
(cond
((= (vla-get-textoverride SS) "")
(vla-put-textoverride
SS
(strcat "(<>)")
)
)
((wcmatch (vla-get-textoverride SS) "*<>*")
(vla-put-textoverride
SS
(strcat "(" (vla-get-textoverride SS) ")")
)
)
(vla-put-textoverride
SS
(strcat "(" (rtos (vla-get-measurement SS) 2 2) ")")
)
)
)
(t
(vla-put-textstring
SS
(strcat "(" (vla-get-textstring SS) ")")
)
)
)
(setq I (1+ I))
)
(setvar "OSMODE" HOLDOSMODE)
(setvar "CMDECHO" HOLDECHO)
)
)
(princ)
)
 楼主| 发表于 2005-3-11 21:11:00 | 显示全部楼层
谢谢 LUCAS !!


不足之处


对修改过尺寸数字的不起作用,遗憾--
发表于 2005-3-12 16:37:00 | 显示全部楼层
(defun c:tt() ;(setq e (car(entsel)))
(setq ss (ssget '((0 . "TEXT,DIMENSION")))
i -1)
(while (setq e (ssname ss (setq i (1+ i))))
(setq obj (vlax-ename->vla-object e))
(if (= "TEXT" (cdr(assoc 0 (entget e))))
(vla-put-TextString obj (strcat "(" (vla-get-TextString obj)")"))
(vla-put-Textoverride obj (strcat "(" (if(wcmatch (setq dimt (vla-get-textoverride obj)) "")"<>" dimt) ")"))
)
)(princ)
)
发表于 2011-12-13 09:49:55 | 显示全部楼层
无痕 发表于 2005-3-12 16:37
(defun c:tt()         ;(setq e (car(entsel)))         (setq ss (ssget '((0 . "TEXT,DIMENSION")))        i         -1)         (while (s ...

可以加上MTEXT吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-2 16:36 , Processed in 0.177502 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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