乐筑天下

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

[编程交流] 在新文件夹中更改外部参照路径

[复制链接]

40

主题

92

帖子

52

银币

后起之秀

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

铜币
200
发表于 2022-7-6 08:07:54 | 显示全部楼层 |阅读模式
嗨,朋友们
我需要LISP更改所有图形中的外部参照(从一个文件夹到另一个文件夹-位置路径更改)。有时,我复制的文件夹(xref)显示在旧的xref中,很难从(位于)xref对话框中更改所有DWG。
提前谢谢
文基
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:16:26 | 显示全部楼层
你试过Reference Manager工具吗?
 
当做
米尔恰
回复

使用道具 举报

40

主题

92

帖子

52

银币

后起之秀

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

铜币
200
发表于 2022-7-6 08:17:54 | 显示全部楼层
我只使用acad2004。请发送LISP加急,bcoz我需要更改82个DWG
 
谢谢
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:24:28 | 显示全部楼层
您可以在这里和这里找到一些AutoLISP方法。
 
当做
米尔恰
回复

使用道具 举报

40

主题

92

帖子

52

银币

后起之秀

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

铜币
200
发表于 2022-7-6 08:28:54 | 显示全部楼层
请查找外部参照LISP错误。我附上了图像文件。我需要更改服务器文件夹中的外部参照
 
谢谢
090756tn3czwxiyc13axwc.jpg
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:33:08 | 显示全部楼层
看看这是否适合你
 
已更新
  1. (defun c:FindMe (/ LM:FindFile Blks blk NewPath XrefFile)
  2. (vl-load-com)
  3. (defun LM:FindFile ( file directory )
  4. (cond
  5.    ( (findfile (strcat (setq directory (vl-string-right-trim "\" directory)) "\" file)) )
  6.    (
  7.      (vl-some
  8.        (function
  9.          (lambda ( dir )
  10.            (LM:FindFile file (strcat directory "\" dir))
  11.          )
  12.        )
  13.        (vl-remove "." (vl-remove ".." (vl-directory-files directory nil -1)))
  14.      )
  15.    )
  16. )
  17. )      
  18. (setq Blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))      
  19. (while (setq blk (tblnext "block" (not blk)))
  20.      (if (and [color=blue][b](= 4 (logand 4 (cdr (assoc 70 blk))))
  21. [/b][/color]               (setq NewPath
  22.                          (LM:FindFile
  23.                                (strcat (cdr (assoc 2 blk))
  24.                                        ".dwg")
  25.                               [b][color=blue] "Y:\\VENKI\ST11\"[/color][/b]))
  26.               )
  27.            (progn (setq XrefFile (vla-item Blks (cdr (assoc 2 blk))))
  28.                   (vla-put-path XrefFile NewPath)
  29.                   (vla-reload XrefFile))
  30.            )
  31.      )
  32.      )     

 
容器文件夹是代码查找图形上现有外部参照名称的位置。外部参照名称应与以前相同,只是路径不同。
 
感谢LeeMac的LM:FindFile例程
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:37:26 | 显示全部楼层
干杯pBe
回复

使用道具 举报

40

主题

92

帖子

52

银币

后起之秀

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

铜币
200
发表于 2022-7-6 08:41:22 | 显示全部楼层
 
 
 
 
******************************
 
晚上好
 
仍然无法使用你的Lisp,我需要在绘图新文件夹中更改外部参照吗
我附上了图纸(程序),供您参考,需要我。
 
谢谢
文基
外部参照路径问题。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:43:20 | 显示全部楼层
你换了这个吗
“P:\\SERVER\u PATH\\CONTAINER\u FOLER\”

“Y:\\VENKI\ST11\”
编辑:我刚想到一件事,外部参照当前在图形上,但你想重新定位?
我认为没有找到外部参照,因此(=(cdr(assoc 70 blk))12)
请参阅更新的代码
 
 
既然你知道文件的位置:
 
  1. [color=blue][b](defun c:FindMe  (/ Blks blk pth XrefFile)
  2.      (vl-load-com)
  3.      (setq Blks (vla-get-blocks
  4.                       (vla-get-activedocument
  5.                             (vlax-get-acad-object))))[/b][/color]
  6. [color=blue][b]      (while (setq blk (tblnext "block" (not blk)))
  7.            (if (and (= 4 (logand 4 (cdr (assoc 70 blk))))
  8.                     (wcmatch
  9.                           (setq cp (cdr (assoc 1 blk)))
  10.                           "*\\VENKI\\ST10*")
  11.                     )
  12.                  (progn (setq fn (fnsplitl cp))
  13.                         (vl-mkdir
  14.                               (setq pth  (strcat (vl-string-subst
  15.                                                        "ST11"
  16.                                                        "ST10"
  17.                                                        (car fn)))))
  18.                         (vl-file-copy
  19.                               cp
  20.                               (setq pth (strcat pth
  21.                                                 (cadr fn)
  22.                                                 (caddr fn))))
  23.                         (setq XrefFile
  24.                                    (vla-item
  25.                                          Blks
  26.                                          (cdr (assoc 2 blk))))
  27.                         (vla-put-path XrefFile pth)
  28.                         (vla-reload XrefFile))
  29.                  )
  30.            )
  31.      )[/b][/color]

 
否则,使用第一个代码挖掘子文件夹。
 
编辑:
代码更新:包括文件副本。
回复

使用道具 举报

40

主题

92

帖子

52

银币

后起之秀

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

铜币
200
发表于 2022-7-6 08:49:17 | 显示全部楼层
 
 
 
*************************
你好
晚上好
 
我很感激花时间处理这个问题,很抱歉,仍然无法工作。我会检查你发送的最新更新的LISP,然后是服务器路径文件夹ST11
“Y:\\VENKI\ST11\”)
下面显示错误&我附加了您上次更新的lisp
命令:findme
findme无
好的,我再解释一遍。我需要将ST10文件夹复制到同一服务器的ST11中,文件夹内的图形(ST11)需要在同一文件夹(ST11)中显示外部参照。
 
 
 
谢谢
文基
Findme。lsp
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:11 , Processed in 0.577786 second(s), 74 queries .

© 2020-2025 乐筑天下

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