乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: gmmdinesh

[编程交流] 选择红色多行文字和纹理

[复制链接]

47

主题

257

帖子

216

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2022-7-5 17:04:06 | 显示全部楼层
哇看。。。我是一名初级程序员,仅仅因为“表面”上的结果似乎是合法的,就超越了自己,这是一个完美的例子。。谢谢你的投入,当涉及到这些例程时,我肯定需要训练自己,对所有事情进行双重检查。这段代码非常接近op想要的功能。我遇到的问题是,当我将其编辑为选中红色的所有多行文字时,我得到一个错误“错误:错误参数类型:VLA-OBJECT nil”。我确信这是一个交叉问题。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 17:09:31 | 显示全部楼层
试试这个。。它过滤掉当前粗体的文本,因此您不必在循环中签入
  1. (defun c:hcb (/ _ps->ss o ss)
  2. ;; Use a function like this to convert a selection set to a list of items
  3. (defun _ps->ss (ps)
  4.    (if        (= 'pickset (type ps))
  5.      (vl-remove-if 'listp (mapcar 'cadr (ssnamex ps)))
  6.    )
  7. )
  8. (if (setq ss (_ps->ss (ssget ":L" '((0 . "mtext") (1 . "~{\\fArial|b1|i0|c0|p34;*")))))
  9.    (foreach mtext ss
  10.      (setq o (vlax-ename->vla-object mtext))
  11.      (vla-put-textstring o (strcat "{\\fArial|b1|i0|c0|p34;" (vla-get-textstring o)))
  12.    )
  13. )
  14. (princ)
  15. )
回复

使用道具 举报

47

主题

257

帖子

216

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2022-7-5 17:13:31 | 显示全部楼层
哇,是的,看看这个。希望你不介意,但我把你的代码稍微修改了一下,让OP完全符合他/她想要的:
 
gmmdinesh,将此代码复制并粘贴到主文件中。运行它,我想你会发现它正是你想要的。再加上罗恩增加的所有额外好处。希望你喜欢。
回复

使用道具 举报

47

主题

257

帖子

216

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2022-7-5 17:18:10 | 显示全部楼层
gmmdinesh,这对你有用吗?请张贴任何一种方式,以便任何其他观看者都会知道。谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 16:43 , Processed in 0.436179 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表