[求助]将选择字符串的括号"()"里的字符改为"已修改",
<font face="Verdana">申请一个LSP程序,将选择字符串的括号"()"里的字符改为"已修改",要求"已修改"三个字含在程序中。</font> 你要处理的字符串是单行文字还是多行文字,是不是尺寸标注的文字?说清楚点才好下手。 是单行文字(if (wcmatch zfc "*(*)*")
(progn
(setq n1(1+ (vl-string-search "(" zfc))
n2(1+ (vl-string-search ")" zfc))
zfc (strcat (substr zfc 1 n1) "已修改" (substr zfc n2))
)
)
)
5楼程序不完整,不知如何才能正确运行? 本帖最后由 yshf 于 2011-3-17 07:53 编辑
(defun c:vv()
(if (setq ssa (ssget '((0 . "TEXT") (1 . "*(*)*"))))
(progn
(setq i0n (sslength ssa))
(repeat n
(setq ent (ssname ssa i)
dxf (entget ent)
zfc (cdr (assoc 1 dxf))
n1(1+ (vl-string-search "(" zfc))
n2(1+ (vl-string-search ")" zfc))
zfc (strcat (substr zfc 1 n1) "已修改" (substr zfc n2))
dxf (subst (cons 1 zfc) (assoc 1 dxf) dxf)
)
(entmod dxf)
(setq i (1+ i))
)
)
)
(princ)
)
cad2004测试不成功:
命令: vv
选择对象: 找到 1 个
选择对象:; 错误: 参数类型错误: (or stringp symbolp): (1 . "KL1(1) 200x600") 不好意思,漏了这行,
dxf (subst (cons 1 zfc) (assoc 1 dxf) dxf)
7楼已更新。 问题还是没解决
命令: vv
选择对象: 找到 1 个
选择对象:
; 错误: 参数类型错误: (or stringp symbolp): (1 . "KL1(1) 200x600")
页:
[1]
2