明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2307|回复: 17

[基础] 求二次开发程序

  [复制链接]
发表于 2011-2-16 15:01 | 显示全部楼层 |阅读模式
如何用快捷键将选中的文字(文字样式为A)改成自己需要的文字样式B
譬如我选中 “中国”文字样式可能为stand simplex 或者别的任意文字样式 ,输入快捷键命令,文字就改为tssd探索者文字样式包括文字名也改变。
感觉这个对于会二次开发的人应该不难 可是自己不会
希望高手指点!!!
不甚感激
发表于 2011-2-16 15:02 | 显示全部楼层
嗯,是比较简单,呵呵
 楼主| 发表于 2011-2-16 15:21 | 显示全部楼层
能否告诉我该怎么实现  谢谢啦
 楼主| 发表于 2011-2-16 16:15 | 显示全部楼层
下面这个程序能实现吗,我试了一下发现不行不知道是为什么,望高手解答!
(defun qqq(/ s)
  (setvar "cmdecho" 0)
  (princ "请选择文字:")  
  (setq s (ssget))
  (if s (command "change" "" "" "TSSD_Rein" "" "" "" ))  
  (command "regen")
  (princ)
)
发表于 2011-2-16 16:46 | 显示全部楼层
本帖最后由 elitefish 于 2011-2-16 16:47 编辑

我工具箱里面的文字样式管理 可以实现文字样式的  合并 修改 及 字体导出
可以去我网盘下载 或者 加QQ群68329226

本帖子中包含更多资源

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

x
发表于 2011-2-16 17:02 | 显示全部楼层
(defun c:tt ()
(setvar "cmdecho" 0)
(setq name (getstring "\n请输入你需要的字体样式名:"))
(if (setq ss (ssget '((0 . "text"))))
    (progn
      (setq i -1 )
      (while (setq s1 (ssname ss (setq i (1+ i))))
        (setq s2 (entget s1))
        (setq s2 (subst (cons 7 name) (assoc 7 s2) s2))
        (entmod s2)
      )
    )
  )
  (princ (strcat "\n" "共处理" (itoa i) "个点" ))
)
发表于 2011-2-16 17:23 | 显示全部楼层
本帖最后由 x_s_s_1 于 2011-2-16 17:45 编辑

水平比较差,凑合着用
(defun c:qqq(/ ss)
(setq ss (ssget))
  (setq en (ssname ss 0))
  (setq endata (entget en))
  (setq oldtxt (assoc 7 endata))
  (setq newtxt (cons 7 "TSSD_Rein"))
  (setq endata (subst newtxt oldtxt endata))
  (entmod endata))
看见楼上的修改了一下,楼上的程序比较灵活,我这个就是改为探索者的字体,如果你要别的字体就修改红色的地方就可以了
(defun c:qqq(/ ss)
(setq ss (ssget '((0 . "text"))))
  (setq ssnum(sslength ss))
  (setq nb 0)
  (while (< nb ssnum)
    (progn
  (setq en (ssname ss nb))
  (setq endata (entget en))
  (setq oldtxt (assoc 7 endata))
  (setq newtxt (cons 7 "TSSD_Rein"))
  (setq endata (subst newtxt oldtxt endata))
  (entmod endata)
  (setq nb (1+ nb))
  )))

  
 楼主| 发表于 2011-2-16 17:57 | 显示全部楼层
太谢谢jackynine 、x_s_s_1 两位朋友了
谢谢你们!!!!!
祝你们工作愉快,多多指教!
 楼主| 发表于 2011-2-16 18:07 | 显示全部楼层
我想再问一下jackynine 、x_s_s_1 两位朋友
如何将选定的任意线型改为 continuous线型
如何将选定的任意直线(不管线型)改颜色为绿色
虽然cad可以通过下拉菜单来选择但是如果有快捷键可以快很多
希望二位再指导一下小弟!感激不尽!!
发表于 2011-2-16 18:16 | 显示全部楼层
本帖最后由 x_s_s_1 于 2011-2-16 18:28 编辑

;;;将线颜色改为绿色
(defun c:cbb( )
  (setq ss (ssget '((0 . "*line"))))
  (setq en (entget (ssname ss 0)))
  (setq oli (assoc 62 en))
  (setq nli (cons 62 3))
  (if (= oli nil)
  (setq en (cons nli en))
    (setq en (subst nli oli en))
    );endif
  (entmod en)
  )
;;;改线型为continuous
(defun c:cbl( )
  (setq ss (ssget '((0 . "*line"))))
  (setq en (entget (ssname ss 0)))
  (setq oli (assoc 6 en))
  (setq nli (cons 6 "continuous"))
  (if (= oli nil)
  (setq en (cons nli en))
    (setq en (subst nli oli en))
    );endif
  (entmod en)
  )
;;;实际上你拿我7楼的那个帖子改就行了,颜色为(62 . *),线型为(6 . *),或者将上面两个加上循环就行了

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

本版积分规则

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

GMT+8, 2024-4-28 22:28 , Processed in 0.384602 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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