找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8489|回复: 12

[求助] 文字样式替换

[复制链接]

已领礼包: 862个

财富等级: 财运亨通

发表于 2013-9-9 15:02:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zhangq_cai1 于 2013-9-9 17:08 编辑

刚开始用API,求高手指导。文字替换只替换第一个的样式
  1. (defun C:setstyle ()
  2.    (XD::Begin)
  3.    (setq s1 (ssget  '((0 . "TEXT")))
  4.          n (sslength s1)
  5.          i 0
  6.          )
  7.   (while (< i n)
  8.         (setq  sname  (ssname s1 i))
  9.         (xdrx_text_setstyle sname "楷体")
  10.         i (1+  i)
  11.    )        
  12.    (XD::End)
  13.    (princ)
  14. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-9 15:40:55 | 显示全部楼层
看到什么说什么, 对于处理选择集的,通用的两种

ss 是选择集

  1. (xdrx_setsstodb ss 0)
  2. (while (setq e (xdrx_getentdata 0))
  3.       ...........处理每个实体的代码
  4. )


另外一个:

  1. (setq entl (xdrx_pickset->ents ss)) ;;;得到选择集的实体表
  2. (foreach n entl
  3.      .....处理每个实体
  4. )


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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-9-9 15:49:29 | 显示全部楼层
返回,错误: 函数错误: 1
~~~~~~~~~~~~~~~~··

点评

你的代码里面 这个地方 i (+1 i) 是不是写错了? +号和1有空格,或者 1+ 建议你用我上面给你的格式,重新写下,体会下选择集的处理。这个是很常用的。  详情 回复 发表于 2013-9-9 16:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-9 16:34:47 | 显示全部楼层
zhangq_cai1 发表于 2013-9-9 15:49
返回,错误: 函数错误: 1
~~~~~~~~~~~~~~~~··

你的代码里面 这个地方

i (+1 i)


是不是写错了? +号和1有空格,或者 1+


建议你用我上面给你的格式,重新写下,体会下选择集的处理。这个是很常用的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-9-9 17:23:04 | 显示全部楼层
修改成功了::lol
(defun C:setstyle ()
   (setq ss (ssget  '((0 . "TEXT")))
         i -1
         )
         (while (setq s1 (ssname ss (setq i (1+ i))))
         (xdrx_text_setstyle s1 "楷体")
   )
   (princ)
)

点评

你看看api的选集处理结构,还可以简化的  详情 回复 发表于 2013-9-9 22:48
恭喜了,那就继续写,有问题就贴上来。 循环体里面,你换上别的API函数,就是做别的了,举一反三。  详情 回复 发表于 2013-9-9 17:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-9 17:27:46 | 显示全部楼层
zhangq_cai1 发表于 2013-9-9 17:23
修改成功了:
(defun C:setstyle ()
   (setq ss (ssget  '((0 . "TEXT")))

恭喜了,那就继续写,有问题就贴上来。

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-9-9 17:31:25 | 显示全部楼层
准备用opendcl写一个替换字高,宽高比等的程序~~~~~~~~

点评

好啊,写好后,贴到ODCL论坛吧。  详情 回复 发表于 2013-9-9 18:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-9 18:44:13 | 显示全部楼层
zhangq_cai1 发表于 2013-9-9 17:31
准备用opendcl写一个替换字高,宽高比等的程序~~~~~~~~

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-9-9 22:48:04 来自手机 | 显示全部楼层
zhangq_cai1 发表于 2013-9-9 17:23
修改成功了:
(defun C:setstyle ()
   (setq ss (ssget  '((0 . "TEXT")))

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-9-9 23:06:20 | 显示全部楼层
帮你修改下
主要是,加入IF结构,这样程序才稳定。要不你放弃选择,程序会出错。
  1. (defun C:setstyle ( / e s1 ss)
  2.   (XD::Begin)
  3.   (if (setq s1 (ssget '((0 . "TEXT"))))
  4.     (progn
  5.       (xdrx_setsstodb ss 0)
  6.       (while (setq e (xdrx_getentdata 0))
  7.         (xdrx_text_setstyle e "楷体")
  8.       )
  9.     )
  10.   )
  11.   (XD::End)
  12.   (princ)
  13. )


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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 10:05 , Processed in 0.341079 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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