乐筑天下

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

[编程交流] 将块移动到其他层

[复制链接]

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-6 08:43:06 | 显示全部楼层 |阅读模式
你好
是否有lisp可以根据属性值在其他层上放置块?
我有几个绘图块放在错误的图层上。这些块都有一个属性层。我可以从Excel(Autocad electrical)导入值。因此,他们可以在该属性中获得新的层名称。
 
 
谢谢
 
pmxcad
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:56:17 | 显示全部楼层
你的意思是属性值是层名称本身吗?如果有多个属性值,应该考虑哪个值?
 
如果图层名不存在于图形中怎么办?应该制作吗?(颜色、线宽和线型如何)。
 
当做
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:08:27 | 显示全部楼层
这是根据我认为可能是你的需要。如果没有,请用例行公事阐明你的目标。
 
  1. (defun c:TesT (/ col ss i sset att value e)
  2. ;; Tharwat 05. Nov. 2011 ;;
  3. (if
  4.    (setq col 1
  5.          ss  (ssget "_x" '((0 . "INSERT") (66 . 1)))
  6.    )
  7.     (repeat (setq i (sslength ss))
  8.       (setq sset (ssname ss (setq i (1- i))))
  9.       (setq
  10.         att
  11.          (vlax-invoke (vlax-ename->vla-object sset) "Getattributes")
  12.       )
  13.       (foreach x att
  14.         (setq value (vla-get-textstring x))
  15.         (if (not (tblsearch "LAYER" value))
  16.           (entmakex (list '(0 . "LAYER")
  17.                           '(100 . "AcDbSymbolTableRecord")
  18.                           '(100 . "AcDbLayerTableRecord")
  19.                           (cons 2 Value)
  20.                           (cons 70 0)
  21.                           (cons 62 col)
  22.                     )
  23.           )
  24.         )
  25.         (setq col (1+ col))
  26.       )
  27.       (entmod
  28.         (subst (cons 8 value) (assoc 8 (setq e (entget sset))) e)
  29.       )
  30.     )
  31.     (princ)
  32. )
  33. (princ)
  34. )

 
塔瓦特
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:26:08 | 显示全部楼层
我认为有一个特定的标记要搜索(比如标记名“LAYER”),并使用该属性的字符串值作为层名。否则,如果块具有多个属性,例如3,它将使用最后一个属性值作为层名称tharwat
 
[code](defun c:测试(/aDoc lyrs TagToSearch ss atb lynm)(vl load com)(setq aDoc(vla get ActiveDocument(vlax get acad object))lyrs(vla get layers aDoc))(setq TagToSearch“LAYER”);
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-6 09:42:22 | 显示全部楼层
SuperRRRR。。。。。。。。pBe,塔尔瓦特。
效果很好。
 
谢谢
 
PmxCAD
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:50:56 | 显示全部楼层
不客气。
 
我真的很高兴它为你所需要的工作。
 
塔瓦特
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

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

© 2020-2025 乐筑天下

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