lengliqun 发表于 2010-10-26 09:18:00

[求助]将选择字符串的括号"()"里的字符改为"已修改",

<font face="Verdana">申请一个LSP程序,将选择字符串的括号"()"里的字符改为"已修改",要求"已修改"三个字含在程序中。</font>

yucpp 发表于 2011-1-17 17:46:59

你要处理的字符串是单行文字还是多行文字,是不是尺寸标注的文字?说清楚点才好下手。

lengliqun 发表于 2011-3-15 01:12:43

是单行文字

1548845899 发表于 2011-3-16 17:09:43

yshf 发表于 2011-3-16 20:50:49


(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))
          )
        )
    )

lengliqun 发表于 2011-3-16 21:41:34

5楼程序不完整,不知如何才能正确运行?

yshf 发表于 2011-3-16 22:04:47

本帖最后由 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)
)

lengliqun 发表于 2011-3-16 22:53:14

cad2004测试不成功:
命令: vv
选择对象: 找到 1 个
选择对象:; 错误: 参数类型错误: (or stringp symbolp): (1 . "KL1(1) 200x600")

yshf 发表于 2011-3-16 23:16:45

不好意思,漏了这行,
dxf (subst (cons 1 zfc) (assoc 1 dxf) dxf)
7楼已更新。

lengliqun 发表于 2011-3-17 01:38:43

问题还是没解决
命令: vv
选择对象: 找到 1 个
选择对象:
; 错误: 参数类型错误: (or stringp symbolp): (1 . "KL1(1) 200x600")
页: [1] 2
查看完整版本: [求助]将选择字符串的括号"()"里的字符改为"已修改",