明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1040|回复: 8

[提问] 悬赏,求大神开发个把外部参照一键修改为某个图层

[复制链接]
发表于 2023-9-15 16:54:59 | 显示全部楼层 |阅读模式
5明经币
1、要求把外部参照整体的图层(注意是壳,就是外部参照块,不是内部的各个图层,外部参照内部不变),一键改为图层“0-0-参照图层”
发表于 2023-9-15 16:55:00 | 显示全部楼层
  1. ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. ;将文件中全部外部参照归置于"0-0-参照图层"图层
  3. ;命令:XCC
  4. ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. (Defun C:XCC ( )
  6.   (vl-load-com)
  7. ;--------------------------------------------------------------------------------------
  8.   (setq Nme (getstring "\n请输入图层名称:<0-0-参照图层>"))
  9.   (if (or (= 33 (ascii Nme))(= 0 (ascii Nme)))
  10.     (setq Nme "0-0-参照图层")
  11.     )
  12.   (if (= (tblsearch "layer" Nme) nil)
  13.     (entmake (list
  14.          '(0 . "LAYER")
  15.          '(100 . "AcDbSymbolTableRecord")
  16.          '(100 . "AcDbLayerTableRecord")
  17.          '(70 . 4)
  18.          '(290 . 1)
  19.          (cons 2 Nme)
  20.          (cons 62 8)
  21.          )
  22.        )
  23.     )
  24.   (setvar "clayer" Nme)
  25.   (if (setq ss (ssget "x" '((0 . "insert"))))
  26.     (progn
  27.       (setq sl (sslength ss))
  28.       (while (setq e (ssname ss (setq sl (1- sl))))
  29.         (if (vlax-property-available-p
  30.               (setq obj (vlax-ename->vla-object e))
  31.               'Path
  32.             )
  33.     (progn
  34.           (vl-catch-all-apply 'vla-put-layer (list obj Nme))
  35.     ;(print (vla-get-name obj))
  36.     )
  37.         )
  38.       )
  39.     )
  40.   )
  41.   
  42. ;--------------------------------------------------------------------------------------
  43.   (prin1)
  44.   )

  45. ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


回复

使用道具 举报

发表于 2023-9-15 21:08:43 | 显示全部楼层
本帖最后由 ssyfeng 于 2023-9-16 15:13 编辑

应该是这样吧.....



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

评分道具好像用不了,给不了明经币,后面多下载你的几个插件把,不好意思  发表于 2023-9-18 11:33
回复

使用道具 举报

 楼主| 发表于 2023-9-16 09:50:05 | 显示全部楼层
ssyfeng 发表于 2023-9-15 21:08
不太明白什么意思.....

外部参照,不是一个整块吗,整块会在某个图层上,我需要的是把整块外部参照所有的,改到一个图层上,比如10个外部参照,一次性改图层到”0-0-参照图层”上。


下面的这个BT0是把块(含外部参照,并当成块)归到"0-0-块图层"  这个图层
,我希望的是我只改变外部参照的图层

  1. ;;25-图块归0图层BT0
  2.     (defun c:BT0 ( )
  3.   (alert "天神提醒:
  4.                    请先用插件进行   外部参照块  图层整理。
  5.                    命令【BR0】外部参照图层整理,所有外部参照归入图层【0-0-参照图层】。
  6.                    然后锁定参照图层,即可不改变参照图层,否则外部参照也会被归入本图层。
  7.                    有图层0-0-块图层,则加入本图层;无0-0-块图层,则自动建立0-0-块图层。
  8.                    继续执行      请空格!!!")

  9.         (if (setq ss (ssget "_A" (list (cons 0 "INSERT"))))
  10.             (progn
  11.                 (setq i 0)
  12.                 (repeat (sslength ss)
  13.                     (setq ent (ssname ss i))
  14.                     (setq dxf (entget ent))
  15.                     (entmod (subst (cons 8 "0-0-块图层")(assoc 8 dxf) dxf))
  16.                     (entupd ent)
  17.                     (setq i (1+ i))
  18.                 )
  19.             )
  20.         )
  21.     )


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2023-9-16 15:55:56 | 显示全部楼层
ssyfeng 发表于 2023-9-15 21:08
应该是这样吧.....

可以,不过比楼上慢了一点,明天给你评2个币,还有就是稍微比楼上卡一点
回复

使用道具 举报

 楼主| 发表于 2023-9-16 15:59:01 | 显示全部楼层
ssyfeng 发表于 2023-9-15 21:08
应该是这样吧.....

谢谢,老总的插件
回复

使用道具 举报

发表于 2024-4-13 11:33:19 | 显示全部楼层
本帖最后由 菜鸟初来乍到 于 2024-4-13 11:34 编辑

大神,能帮忙修改一下吗?就是参照图层建立好放好参照之后,自动改回到原来的图层为当前图层
回复

使用道具 举报

发表于 2024-7-1 18:28:49 | 显示全部楼层
感谢作者的分享!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 14:59 , Processed in 0.168546 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表