乐筑天下

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

[编程交流] 拆离未参照的外部参照

[复制链接]

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-5 18:50:49 | 显示全部楼层 |阅读模式
是否存在任何lisp拆离未引用的外部参照文件?
回复

使用道具 举报

11

主题

117

帖子

133

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 19:01:06 | 显示全部楼层
是的,我有一个,但它在工作。我稍后再发。
回复

使用道具 举报

0

主题

132

帖子

198

银币

限制会员

铜币
-21
发表于 2022-7-5 19:07:00 | 显示全部楼层
http://forums.augi.com/showthread.php?t=82705
回复

使用道具 举报

11

主题

117

帖子

133

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 19:11:57 | 显示全部楼层
实际上,我的代码是“分离、审计、绑定、清除所有内容”。如果您只希望代码拆离未引用的外部参照,那么删除audit和purge all很简单,但我不知道是否可以删除bind命令。除非有人可以修改lisp,使其仅绑定“那些未引用的外部参照”。这就是lisp的全部技巧,将未引用的外部参照重定位到空白图形并绑定空白图形。
**要使此lisp正常工作,必须在搜索路径中放置一个名为“dummy.dwg”的空白图形**
  1. (defun C:SENT ( / )
  2. (defun *error*(msg)
  3.    (setvar "modemacro" ".")
  4.    (setvar "bindtype" oldBnType)
  5.    (setvar "cmdecho" 1)
  6.    (princ "\n...Audit/Bind/PurgeAll terminated!!!  ")
  7.    (princ)
  8.    ); end of *error*
  9. (setvar "modemacro" "Audit/Bind/PurgeAll processing......please wait......")
  10. (setvar "cmdecho" 0)
  11. (prompt "\n--- Audit/Bind/PurgeAll......please wait---")
  12. (prompt "\nAuditing...")(terpri)
  13. (command "_audit" "y")
  14. (bind_xrefs)
  15. (prompt "\nPurging #1")(terpri)
  16. (command "-purge" "a" "*" "N")
  17. (prompt "\nPurging #2")(terpri)
  18. (command "-purge" "a" "*" "N")
  19. (prompt "\nPurging #3")(terpri)
  20. (command "-purge" "a" "*" "N")
  21. (prompt "\n--- Audit, Bind, PurgeAll completed! ---")
  22. (setvar "modemacro" ".")
  23. (setvar "cmdecho" 1)
  24. (princ)
  25. ); end of c:sent
  26. (defun bind_xrefs ( / CMD)
  27. (setq oldBnType(getvar "bindtype"))
  28. (setq CMD (getvar "CMDECHO"))
  29. (setvar "CMDECHO" 0)
  30. (setvar "bindtype" 0)
  31. (setq XLIST (xref-status))
  32. (if XLIST
  33.    (progn
  34.      (prompt "\nBinding all Xrefs...")
  35.      (foreach n XLIST (rem-xref n))  
  36.      (command "-xref" "b" "*" )
  37.      (prompt "...done")(terpri)
  38.    )  
  39. )
  40. (setvar "CMDECHO" CMD)
  41. (setvar "bindtype" oldBnType)
  42. (princ)
  43. )
  44. (defun rem-xref ( XL / XNAME XSTATUS )
  45. (setq XNAME (nth 0 XL))
  46. (setq XSTATUS (nth 2 XL))
  47. (if (= XSTATUS "UNLOADED")
  48.    (rem_unload)
  49. )
  50. (if (= XSTATUS "UNRESOLVED")
  51.    (rem_unload)
  52. )
  53. )
  54. (defun xref-status ( / d n f r)
  55. (while (setq d (tblnext "block" (null d)))
  56.    (cond
  57.      (
  58.        (eq 4 (logand 4 (cdr (assoc 70 d))))
  59.        (setq
  60.          d (entget (tblobjname "block" (cdr (assoc 2 d))))
  61.          n (cdr (assoc 2 d))
  62.          p (cdr (assoc 3 d))
  63.          f (cdr (assoc 70 d))
  64.        )
  65.        (setq r
  66.          (cons
  67.            (list n p
  68.              (cond
  69.                ( (eq 32 (logand 32 f)) "LOADED")
  70.                ( (assoc 71 d) "UNLOADED")
  71.                ( t "UNRESOLVED")
  72.              )
  73.            )
  74.            r
  75.          )
  76.        )
  77.      )
  78.    )
  79. )
  80. (reverse r)
  81. )
  82. (defun rem_unload ( / )
  83. (setq DFILE (findfile "dummy.dwg"))
  84. (if (not DFILE)
  85.    (prompt "\nCannot find dummy_xref drawing ")
  86.    (progn
  87.      (command "-xref" "p" XNAME DFILE)
  88.      (command "-xref" "r" XNAME)
  89.    )
  90. )
  91. )
回复

使用道具 举报

j3m

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 19:14:10 | 显示全部楼层
你的lisp代码真的很好。
如何创建一个循环,使其能够将您的代码用于整个图形文件夹(大约20-30个图形)。
 
E、 q:选择文件夹并自动绑定所有图纸
 
谢谢你的回答
回复

使用道具 举报

11

主题

117

帖子

133

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 19:20:14 | 显示全部楼层
您可以使用ScriptPro(我更喜欢上标)并对所有DWG运行SENT命令。当我需要为客户端绑定一组DWG时,我就是这么做的。
回复

使用道具 举报

j3m

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 19:23:50 | 显示全部楼层
 
谢谢你的回答,JeepMaster,很不幸,我不能在我的工作电脑上安装软件,因为我不是管理员。
 
谢谢
 
j3m公司
回复

使用道具 举报

LCE

1

主题

29

帖子

28

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:32:49 | 显示全部楼层
看一下使用。bat文件带有。scr文件,在脚本中只需运行lisp。
我之前在这里发布了一个示例,运行一个搜索,看看你是否能找到它,同时我会检查我的硬盘,看看我是否能找到我的模板。
回复

使用道具 举报

11

主题

117

帖子

133

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-5 19:39:02 | 显示全部楼层
如果在安装过程中检查了scriptpro,您的机器上可能已经安装了scriptpro,因为它与AutoCAD一起提供。如果没有,您可能仍然可以从Autodesk下载并安装,具体取决于您拥有的权限。我不是工作中的管理员,但仍然可以安装scriptpro。另一个选择是获取上标,这是一个自包含的exe程序。
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 19:44:05 | 显示全部楼层
Graet lisp。。非常感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:33 , Processed in 1.043360 second(s), 72 queries .

© 2020-2025 乐筑天下

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