乐筑天下

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

[编程交流] 按颜色排序行。

[复制链接]
HHL

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 13:19:51 | 显示全部楼层 |阅读模式
你好
 
我试着做一个lisp,它贯穿所有的行,并按颜色排序,所以最重的颜色最终位于顶部。
如果有行要移动,但选择为空(例如图形中不存在绿线),则脚本会停止并等待选择,但我希望它这样做
如果没有线路,请继续前进。
这是为了清理从Revit导出的dwg,因此有时需要对所有颜色进行排序,有时是3或4,具体取决于导出的图形。
  1. (defun ssfilter-by-color (color / lay layers)
  2. ;; Get all the layer names whi?ch are set to the color
  3. (setq lay    (tblnext "LAYER" t) ;Get the 1st layer
  4.        layers "" ;Initialize the layer names filter string
  5. )
  6. (while lay ;Step through all layers
  7.    ;; Check if current layer is set to color
  8.    (if (= (cdr (assoc 62 lay)) color)
  9.      (setq layers (strcat "," (cdr (assoc 2 lay)) layers)) ;Add to filter string
  10.    )
  11.    (setq lay (tblnext "LAYER")) ;Get the next layer
  12. )
  13. (if (= layers "")
  14.    (list (cons 62 color))
  15.    (list '(-4 . "<OR")
  16.          '(-4 . "<AND")
  17.          (cons 8 (substr layers 2))
  18.          '(62 . 256)
  19.          '(-4 . "AND>")
  20.          (cons 62 color)
  21.          '(-4 . "OR>")
  22.    )
  23. )
  24. )
  25. (sssetfirst nil (ssget "_x" (ssfilter-by-color 7))) ;;nr=indexcolor
  26. (command "_draworder" "_B")
  27. (sssetfirst nil (ssget "_x" (ssfilter-by-color 3)))
  28. (command "_draworder" "_B")
  29. (sssetfirst nil (ssget "_x" (ssfilter-by-color 1)))
  30. (command "_draworder" "_B")
  31. (sssetfirst nil (ssget "_x" (ssfilter-by-color 4)))
  32. (command "_draworder" "_B")
  33. (princ)
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 14:08:11 | 显示全部楼层
尝试:
未修改ssfilter by color函数。
回复

使用道具 举报

HHL

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 14:43:14 | 显示全部楼层
效果很好!非常感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 00:52 , Processed in 2.075601 second(s), 59 queries .

© 2020-2025 乐筑天下

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