找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2657|回复: 21

[LISP函数]:一个小小程序,克隆文字

[复制链接]
发表于 2002-12-24 21:24:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
看了晓东工具箱里面很多关于文字的程序,似乎没有这个
就是画施工图的时候,很多时候要将一堆文字改成同一个文字
意思就是选定源文字,让目标文字都与之相同,于是小编一个程序
给各位高手见笑了,倒是比较常用就是

(defun c:gf()
        (setq a (car (entsel "the need text:")))
        (setq a (entget a))
        (setq ttext (cdr (assoc 1 a)))
        (setq i 1)
        (setq ss (SSGET))
          (setq n (sslength ss))
          (setq index 0)
          (repeat n
            (SETQ EN (SSNAME SS index))
            (setq index (+ index 1))
            (SETQ ed (ENTGET EN))
            (SETQ AS (CDR (ASSOC '0 ed)))
           
            (if (= AS "TEXT")
        (progn
                ;(setq ttext (cdr (assoc 1 ed)))
                                    (setq ed (subst (cons (car (assoc 1 ed)) ttext) (assoc 1 ed) ed ))
                                    (entmod ed)
        )
        )
        
        )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-12-25 18:41:37 | 显示全部楼层
试试cy-gg.lsp.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-25 19:53:12 | 显示全部楼层
很好实用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-7 08:13:27 | 显示全部楼层
(defun c:MM (/ LEN MODELTXT SSTEXT TXTENT)
  (prompt "\n请选择源文字:")
  (setq sstext (ssget '((0 . "text"))))
  (if sstext
    (progn
      (setq modeltxt (cdr (assoc 1 (entget (ssname sstext 0)))))
      (repeat (setq len (sslength sstext))
(setq txtent (ssname sstext (setq len (1- len))))
(entmod
   (subst (cons 1 modeltxt)
   (assoc 1 (entget txtent))
   (entget (ssname sstext len))
   )
)
(entupd txtent)
      )
    )
  )
(PRINC)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-7 08:42:13 | 显示全部楼层
以前论坛有贴过:
[php]
(defun c:test ()
  (vl-load-com)
  (setq ent (car (entsel "\nSelect Destination Text: ")))
  (setq dobj (vlax-ename->vla-object ent))
  (setq dtxt (vla-get-textstring dobj))
  (setq ss (ssget "x" '((0 . "*TEXT"))) n 0)
  (while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (vla-put-textstring obj dtxt)
    (setq n (1+ n))
  )
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-23 20:27:20 | 显示全部楼层
楼上的程序全都更换,这样不好啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 14:00:57 | 显示全部楼层
最初由 小浪子 发布
[B]楼上的程序全都更换,这样不好啊! [/B]


是啊 这样就没有什么使用价值了 下面是我编的 呵呵
;;; 文本内容刷



  1.   [FONT=courier new]
  2. (defun c:wbnrs (/ sourcetext sourcetextname sourcetextdata sourcetextcontent
  3.                   denstextname index n ssa denstextdata denstextpro
  4.                   denstextcontent
  5.                )
  6.   (setvar "CMDECHO" 0)
  7.   (princ "\n<将源文本内容传递给别的文本>")
  8.   (setq sourcetext (entsel "\n选择源文本: ")) ; 选择标注
  9.   (setq sourcetextname (car sourcetext))
  10.   (setq sourcetextdata (entget sourcetextname))        ; 获取实体全部数据
  11.   (setq sourcetextcontent (cdr (assoc 1 sourcetextdata))) ; 提取文本内容
  12.   (princ (strcat "\n要传递的文本为:<" sourcetextcontent ">"))
  13.   (setq ssa (ssget))
  14.   (setq n (sslength ssa))
  15.   (setq index (- n 1))
  16.   (repeat n
  17.     (setq denstextname (ssname ssa index))
  18.     (setq denstextdata (entget denstextname))
  19.     (setq denstextpro (assoc 0 denstextdata))
  20.     (setq index (1- index))
  21.     (setq denstextcontent (cdr (assoc 1 denstextdata)))
  22.     (if (= "TEXT" (cdr denstextpro))
  23.       (command "change" denstextname "" "" "" "" "" "" sourcetextcontent)
  24.     )
  25.   )
  26.   (princ)
  27. )
  28.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-24 14:41:40 | 显示全部楼层
凑个热闹
支持--文本,多行文本,属性值,三者可互刷,选物体只支持单选.
;match text(mtext,attrib) value
(defun c:cn(/ text1 content text2 dxf dxflayer dxflayer2 iflock layer)
(command "undo" "begin")
(while (= nil (cdr (assoc 1 (entget (car (setq text1 (nentsel "\nselect source text (attrib,mtext):")))))))
   (princ "\nobject is not a text (attrib,mtext)!")
)
(redraw (car text1) 3)
(setq content (assoc 1 (entget (car text1))))
(while;0
      (not (while (= nil (cdr (assoc 1 (setq dxf (entget (car
                        (setq text2 (nentsel "\nselect destination text (attrib,mtext):"))))))))
           (princ "\nobject is not a text (attrib,mtext)!")
        )
   );not
(if (= 4 (cdr (assoc 70 (tblsearch "layer" (cdr (assoc 8 dxf))))));0
   (progn  (alert "Destinatio object is on a locked layer !")(redraw (car text1) 4)(exit))
   (progn
      (if (or (= "TEXT" (cdr (assoc 0 dxf)))(= "MTEXT" (cdr (assoc 0 dxf))))
         (progn
            (setq dxf (subst content (assoc 1 dxf) dxf))
            (entmod dxf)
         )
      )
      (if (= "ATTRIB" (cdr (assoc 0 dxf)))
         (progn
            (setq dxf (subst content (assoc 1 dxf) dxf))
            (setq layer (cdr (assoc 8 dxf)))
            (setq iflock 0)
            (if (= 4 (cdr (assoc 70 (tblsearch "layer" layer))))
               (progn
                  (setq iflock 1)
                  (setq dxflayer (entget (tblobjname "layer" layer)))
                  (setq dxflayer2 dxflayer)
                  (setq dxflayer (subst (cons 70 0) (assoc 70 dxflayer) dxflayer))
                  (entmod dxflayer)
               )
            )
            (entmod dxf)
            (entupd (cdr (assoc 330 dxf)))
            (if (= 1 iflock)(entmod dxflayer2))
        )
     )
   )
);if0
(redraw (car text1) 4)
);while0
(command "undo" "end")
(princ)   
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-4 06:36:32 | 显示全部楼层
最初由 madman 发布
[B]...是啊 这样就没有什么使用价值了...[/B]

什么? 没有使用价值? 你用过吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-4 10:08:50 | 显示全部楼层
最初由 nuance 发布
[B]凑个热闹
支持--文本,多行文本,属性值,三者可互刷,选物体只支持单选.
;match text(mtext,attrib) value
(defun c:cn(/ text1 content text2 dxf dxflayer dxflayer2 iflock layer)
(command "undo" "beg... [/B]


楼主可以参照这个程序进行改改,支持窗选,支持UNDO回退,自动记忆上一次所选的文本。
谢谢!
[iframe h=600]http://www.xdcad.net/forum/showthread.php?s=&threadid=49483[/iframe]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-4 16:00:16 | 显示全部楼层
我试了楼上贴的."支持窗选,支持UNDO回退 "这两个没有啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-4 23:06:43 | 显示全部楼层
我试了一下,还不错,赞一个
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-10-5 01:58:57 | 显示全部楼层
find
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-5 06:21:24 | 显示全部楼层
8楼楼主,提点建议:
1、以尺寸标注为源对象,当目标为单行文本时,文本之前带了/A1;很不爽;
2、以多行文本为源对象,当目标为单行文本时,文本之间增加了\P;
3、好像attrib只能作为源对象,不能作为目标对象。
希望能够进一步完善,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-22 18:36:52 | 显示全部楼层
到底哪一个最好用,请大家评一下,真不知道下载哪个好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 06:22 , Processed in 0.235614 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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