明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2003|回复: 7

(求源碼) 依文:字样式来达到文字替换的功能!!

[复制链接]
发表于 2012-4-27 23:40:55 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 lincctw_ccl 于 2012-4-28 22:40 编辑

文字內容 :111  文字样式:aaa
文字內容 :222  文字样式:bbb
可否用框选的方式将文字 111 替换成 222 但其原来各自的文字样式不做改变?
變成下列樣子
字內容:222  文字样式:aaa
文字內容:222  文字样式:bbb
謝謝!

p.s  111 及 222 都为不固定文字
用意是想利用文字格式的依据来筛选做文字置换!!

最佳答案

查看完整内容

这个很简单啊,用纯lisp即可实现啊!以下是代码,试试:
发表于 2012-4-27 23:40:56 | 显示全部楼层
这个很简单啊,用纯lisp即可实现啊!以下是代码,试试:
  1. (defun c:test(/ 1num all1 n1 n1att)
  2.    (setq 1num 0)
  3.    (if (setq all1 (ssget "x" '((0 . "text") (1 . "111"))))
  4.        (repeat (sslength all1)
  5.          (setq n1 (ssname all1 1num))
  6.          (setq n1att (entget n1))
  7.          (setq n1att (subst '(1 . "222") (assoc '1 n1att) n1att))
  8.          (setq n1att (subst '(7 . "bbb") (assoc '7 n1att) n1att))
  9.          (entmod n1att)
  10.          (setq 1num (1+ 1num))
  11.        )
  12.     )
  13.     (princ)
  14. )
回复

使用道具 举报

发表于 2012-4-28 01:39:23 | 显示全部楼层
从现在开始,你只许陪我一个人灌水,要哄我不能骂我,我每一次上站你都要给我"msg",对我灌的每一篇水你都要"re",不是我灌的水你一篇都不许"re"。要关心我,别人"kick"我你要在第一时间出来帮我"kick"他,我想灌水的时候你必须陪我灌,你想灌水的时候我可以不陪你灌,永远都要只陪我一个人灌水,文章里也要提到我,在你的水里面只有我!!
回复

使用道具 举报

 楼主| 发表于 2012-4-28 16:10:31 | 显示全部楼层
zyhandw 发表于 2012-4-28 14:03
这个很简单啊,用纯lisp即可实现啊!以下是代码,试试:

感谢指导!!
您所写的和我的期望修改方式刚好相反!
所以我改了下 文字的置换现在正是我所要的
另还有点问题
我问题中所指的111 和 222 均是不固定文字
可否请zyhandw 再帮我改改
谢谢!!



(defun c:gg (/ 1num all1 n1 n1att)
   (setq 1num 0)
   (if (setq all1 (ssget "x" '((0 . "text") (1 . "222"))))
       (repeat (sslength all1)
         (setq n1 (ssname all1 1num))
         (setq n1att (entget n1))
         (setq n1att (subst '(1 . "111") (assoc '1 n1att) n1att))
         (setq n1att (subst '(7 . "bbb") (assoc '7 n1att) n1att))
         (entmod n1att)
         (setq 1num (1+ 1num))
       )
    )
    (princ)
)
回复

使用道具 举报

 楼主| 发表于 2012-4-28 22:41:50 | 显示全部楼层
zyhandw 发表于 2012-4-27 23:40
这个很简单啊,用纯lisp即可实现啊!以下是代码,试试:

自己用笨方法解決了!!
謝謝指導
回复

使用道具 举报

发表于 2012-4-29 08:13:57 | 显示全部楼层
不固定文字也好解决,可以交互式输入内容!
  1. (defun c:test ( / 1num all1 n1 n1att)
  2.   |(setq txt1 (getstring "\n要替换的文字内容:")
  3.          txt1style (getstring "\n要替换的文字样式:")
  4.          txt2 (getstring "\n替换为:")
  5.          txt2style (getstring "\n要替换的文字样式:")
  6.    )
  7.    (setq txt1lst (list (cons '1 txt1) (cons '7 txt1style)))
  8.    (setq 1num 0)
  9.    (if (setq all1 (ssget "x" (append '((0 . "text")) txt1lst)))
  10.        (repeat (sslength all1)
  11.          (setq n1 (ssname all1 1num))
  12.          (setq n1att (entget n1))
  13.          (setq n1att (subst (cons 1 txt2) (assoc '1 n1att) n1att))
  14.          (setq n1att (subst (cons 7 txt2style) (assoc '7 n1att) n1att))
  15.          (entmod n1att)
  16.          (setq 1num (1+ 1num))
  17.        )
  18.     )
  19.     (princ)
  20. )
回复

使用道具 举报

 楼主| 发表于 2012-4-29 09:49:47 | 显示全部楼层
zyhandw 发表于 2012-4-29 08:13
不固定文字也好解决,可以交互式输入内容!

谢谢指导!!
依您之前所给的程序的思路
我用其它方式解快了
虽然程序是比较长了点
但急用 先顶着用了~
回复

使用道具 举报

发表于 2018-8-2 13:35:12 | 显示全部楼层
lincctw_ccl 发表于 2012-4-29 09:49
谢谢指导!!
依您之前所给的程序的思路
我用其它方式解快了

在吗你的程序能上传下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 11:29 , Processed in 0.171266 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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