乐筑天下

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

[编程交流] 根据更改文本颜色

[复制链接]

5

主题

26

帖子

21

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 04:15:11 | 显示全部楼层 |阅读模式
大家好,
我再次需要你的帮助。我在谷歌上做了很多搜索(没有成功),找到了一个lisp,它可以完成以下任务:
 
执行命令时,
 
-扫描图形中的TXT、MTXT和属性
-根据尺寸范围改变颜色
 
尺寸表:
从0.000mm到2.150mm白色
从2.151mm到3.000mm绿色
从3.001mm到4.250mm黄色
从4.251mm到6.000mm红色
从6.001mm到无限洋红
 
当您使用与不同线宽相关联的打印样式颜色进行打印时,这可能非常有用。像这样,你的所有文本都是正确的颜色,并得到良好的打印在良好的线宽。
此外,它还有助于清理您的绘图,而不必选择每个文本,检查大小和分配所需的颜色。
 
提前谢谢你的好意帮助
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 04:49:43 | 显示全部楼层
这是一个开始,需要一个条件来更改高度值。看看我有没有时间。
 
  1. (setq ss (ssget "X" (list (cons 0 "Text,Mtext")))) ; selection set of text within polygon
  2. (if (= ss nil)
  3. (princ "\nnothing inside")
  4. (progn
  5. (setq numb2 (sslength ss))
  6. (setq y numb2)
  7. (repeat y
  8. (setq tobj (vlax-ename->vla-object (ssname ss (setq y (- y 1)))))
  9. (setq textht (vlax-get-property tobj "Height"))
  10. (princ textht) ; change to write text to file
  11. (COND ((and (> textht 0.0) (< textht 2.5)) (vla-put-Color tobj 1)) ; 1 is color number
  12. ((and (> textht 2.501) (< textht 5.0)) (vla-put-Color tobj 2))
  13. ((and (> textht 5.01) (< textht 7.5)) (vla-put-Color tobj 3))
  14. ((> textht 7.501) (vla-put-Color tobj 4))
  15. ); end cond
  16. ); repeat
  17. ); end progn
  18. ); end if
回复

使用道具 举报

5

主题

26

帖子

21

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 05:08:51 | 显示全部楼层
woow谢谢Bigal
 
它已经运行得很好了。
我只根据需要更改了范围和颜色。我的Lisp程序水平不允许我做更多的事情呵呵
 
  1. (defun C:test ()
  2. (setq ss (ssget "X" (list (cons 0 "Text,Mtext")))) ;
  3. selection set of text within polygon
  4. (if (= ss nil)
  5. (princ "\nnothing
  6. inside")
  7. (progn
  8. (setq numb2 (sslength ss))
  9. (setq y numb2)
  10. (repeat
  11. y
  12. (setq tobj (vlax-ename->vla-object (ssname ss (setq y (- y
  13. 1)))))
  14. (setq textht (vlax-get-property tobj "Height"))
  15. ;(princ textht) ;
  16. change to write text to file
  17. (COND ((and (> textht 0.0) (< textht
  18. 2.15)) (vla-put-Color tobj 7)) ; 1 is color number
  19. ((and (> textht 2.151)
  20. (< textht 3.0)) (vla-put-Color tobj 3))
  21. ((and (> textht 3.001) (<
  22. textht 4.25)) (vla-put-Color tobj 2))
  23. ((and (> textht 4.251) (< textht
  24. 6.0)) (vla-put-Color tobj 1))
  25. ((> textht 6.001) (vla-put-Color tobj
  26. 6))
  27. ); end cond
  28. ); repeat
  29. ); end progn
  30. ); end if
  31. ) ;_ end of
  32. defun

 
只有两件事。是否有可能使其在块内(如果可能,还包括动态块)和属性中工作?
 
非常感谢你的帮助,它已经帮了我很多
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 05:19:27 | 显示全部楼层
我对动态块一无所知。。。。
 
这应适用于所有版本的AutoCAD:
 
[code]defun c:txtclr/ct ss i en ed h cn bl bn td fe fd fdefun lookupv l/cforeach h l如果
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:52 , Processed in 0.692685 second(s), 60 queries .

© 2020-2025 乐筑天下

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