乐筑天下

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

[编程交流] [需要Lisp程序]放置所有对象

[复制链接]

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:06:45 | 显示全部楼层 |阅读模式
大家好,
我需要一个lisp来执行以下操作:
 
将图形中所有颜色相同的对象(直线、多段线、图案填充、圆弧等)放置在单独的图层上。
 
如果没有,你能告诉我怎么手动操作吗。。。。。
 
问题是,我有巨大的建筑图纸需要导出到3D程序。。。。。。并非所有对象都设置为“按层”。。。。。这样就更清楚了。
 
当做
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:19:52 | 显示全部楼层
不确定这是否有帮助,如果MEP以手动方式支持,则可以选择使用过滤器颜色作为Autocad答案。
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:42:45 | 显示全部楼层
 
我不知道如何使用filter命令。。。。。。我有这张图:
有些对象属性是“按层”设置的,有些是覆盖的。。。。。
 
在这种情况下,如何使用filter命令?
实例图纸
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:43:49 | 显示全部楼层
  1. [color="lime"][color="#2e8b57"](setq xcol "1")
  2. (setq xlay "NEW")
  3. (defun c:test(/ cnt xset ent enlist)
  4. (defun FilterClrNumbX(xset valu)
  5.    (setq valu(atoi valu) layerList(list))
  6.    (setq tbl(tblnext "LAYER" T))
  7.    (if(= valu (cdr(assoc 62 tbl)))
  8.      (setq layerList(append layerList (list (cdr(assoc 2 tbl)))))
  9.    )
  10.    (while(setq tbl(tblnext "LAYER"))
  11.      (if(= valu (cdr(assoc 62 tbl)))
  12.        (setq layerList(append layerList (list (cdr(assoc 2 tbl)))))
  13.      )
  14.    )
  15.    (setq cnt 0 newSet(ssadd))
  16.    (while(< cnt (sslength xset))
  17.      (setq ent(ssname xset cnt))
  18.      (setq enlist(entget ent))
  19.      (if (assoc 62 enlist)
  20.        (if(= valu (cdr(assoc 62 enlist)))
  21.          (ssadd ent newSet)
  22.        )
  23.        (if(member (cdr(assoc 8 enlist)) layerList)
  24.          (ssadd ent newSet)
  25.        )
  26.      )
  27.      (setq cnt(+ cnt 1))
  28.    )
  29.    newSet
  30. )
  31. (setvar "cmdecho" 0)
  32. (setq xcoll (getstring (strcat "\nEnter Color Numer, <" xcol ">: ")))
  33. (if (= 1lay "")
  34.    (setq xcoll xcol)
  35.    (setq xcol xcoll)
  36. )
  37. (setq 1lay (getstring (strcat "\nEnter Layer Name, <" xlay ">: ")))
  38. (if (= 1lay "")
  39.    (setq 1lay xlay)
  40.    (setq xlay 1lay)
  41. )
  42. (setq xset
  43.    (ssget"X"
  44.      (list
  45.        (cons -4 "<OR")
  46.          (cons 0 "ARC")
  47.          (cons 0 "CIRCLE")
  48.          (cons 0 "ELLIPSE")
  49.          (cons 0 "IMAGE")
  50.          (cons 0 "INSERT")
  51.          (cons 0 "LINE")
  52.          (cons 0 "LWPOLYLINE")
  53.          (cons 0 "MLINE")
  54.          (cons 0 "MTEXT")
  55.          (cons 0 "POINT")
  56.          (cons 0 "POLYLINE")
  57.          (cons 0 "SOLID")
  58.          (cons 0 "TEXT")
  59.          (cons 0 "TRACE")
  60.          (cons 0 "XLINE")
  61.        (cons -4 "OR>")
  62.      )
  63.    )
  64. )
  65. (if(and xset(> (sslength xset) 0))(setq xset(FilterClrNumbX xset xcol)))
  66. (if (and xset (> (sslength xset) 0))
  67.    (progn
  68.   (command "-layer" "new" xlay "")
  69.   (command "change" xset "" "Properties" "LAyer" xlay "")
  70.    )
  71. )
  72. (setvar "cmdecho" 1)
  73. (princ)
  74. )
  75. (princ "\n Type test")
  76. (princ)[/color][/color]

 
试试这个,我的朋友,让我们知道。干杯
回复

使用道具 举报

4

主题

68

帖子

69

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 21:06:28 | 显示全部楼层
一条较短的路
 
你可以写以下几行:
  1. (if (and xset (> (sslength xset) 0))
  2.    (setq xset (FilterClrNumbX xset xcol))
  3. )
  4. (if (and xset (> (sslength xset) 0))
  5.    (progn
  6.      (command "-layer" "new" xlay "")
  7.      (command "change" xset "" "Properties" "LAyer" xlay "")
  8.    )
  9. )

缩写为:
问候
沃尔夫冈
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 21:08:11 | 显示全部楼层
 
谢谢你的回复,但请原谅,我对lisp的了解非常有限,如何执行这个lisp?
 
我把它复制到一个记事本文件中,保存到。lsp格式,在Autocad中运行,按说明键入命令“test”。。。。。然后呢?
 
也许我没有说清楚。。。
 
获取图形中的所有对象。。。。(所有内容、直线、多段线、图案填充、圆弧等)。。。。。按其真实颜色(显示在屏幕上)对其进行排序,并将其移动到不同的层。。。。i、 e.屏幕上显示为红色的所有对象,移动到新层。。。。。。。图层上所有颜色为灰色的对象。。。
 
老实说,我发现一个lisp可以做到这一点,但它不稳定,我必须执行几次,然后它就工作了,它在块上不工作,所以我必须先分解它们。。。。。它叫Col2lay
col2lay。拉链
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:08 , Processed in 0.716333 second(s), 64 queries .

© 2020-2025 乐筑天下

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