乐筑天下

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

[编程交流] 多重绑定。

[复制链接]

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 10:07:30 | 显示全部楼层 |阅读模式
各位,我有一个lisp例程,可以执行多种电子传输,问题是我们的许多客户都想要绑定dwg。我们可以一次发布多达200个图形,因此绑定每个外部参照、文件另存为等需要很多时间。我希望有一个例程可以为我完成所有这些,所以我可以在另一台机器上设置它,并让例程打开所有图形,绑定外部参照,另存为一个新文件(这样它就不会覆盖所有绑定的图形)我可以看到的一个问题是,有时我们的一个外部参照可能会被卸载或找不到。不确定该项目如何应对这种情况。有人有lisp文件吗?谢谢
回复

使用道具 举报

11

主题

117

帖子

133

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2022-7-6 10:13:22 | 显示全部楼层
我有一个很好用的。确保您创建了一个空白dwg,将其保存为“dummy.dwg”,并将其放在搜索路径文件夹中。它将分离卸载/未解析的外部参照、绑定外部参照、审核和清除dwg。命令已发送。
 
  1. ;...............................................................................
  2. ;
  3. ;       << Detach unloaded/unresolved xrefs, Bind xrefs, Audit, Purge >>
  4. ;                                      <<  2007 >>
  5. ;
  6. ;          NOTE: Must have a blank dwg in search path name "dummy.dwg"
  7. ;
  8. ;...............................................................................
  9. (defun C:SENT ( / )
  10. (defun *error*(msg)
  11.    (setvar "modemacro" ".")
  12.    (setvar "bindtype" oldBnType)
  13.    (setvar "cmdecho" 1)
  14.    (princ "\n...Audit/Bind/PurgeAll terminated!!!  ")
  15.    (princ)
  16.    ); end of *error*
  17. (setvar "modemacro" "Audit/Bind/PurgeAll processing......please wait......")
  18. (setvar "cmdecho" 0)
  19. (prompt "\n--- Audit/Bind/PurgeAll......please wait---")
  20. (prompt "\nAuditing...")(terpri)
  21. (command "_audit" "y")
  22. (bind_xrefs)
  23. (prompt "\nPurging #1")(terpri)
  24. (command "-purge" "a" "*" "N")
  25. (prompt "\nPurging #2")(terpri)
  26. (command "-purge" "a" "*" "N")
  27. (prompt "\nPurging #3")(terpri)
  28. (command "-purge" "a" "*" "N")
  29. (prompt "\n--- Audit, Bind, PurgeAll completed! ---")
  30. (setvar "modemacro" ".")
  31. (setvar "cmdecho" 1)
  32. (princ)
  33. ); end of c:sent
  34. (defun bind_xrefs ( / CMD)
  35. (setq oldBnType(getvar "bindtype"))
  36. (setq CMD (getvar "CMDECHO"))
  37. (setvar "CMDECHO" 0)
  38. (setvar "bindtype" 0)
  39. (setq XLIST (xref-status))
  40. (if XLIST
  41.    (progn
  42.      (prompt "\nBinding all Xrefs...")
  43.      (foreach n XLIST (rem-xref n))  
  44.      (command "-xref" "b" "*" )
  45.      (prompt "...done")(terpri)
  46.    )  
  47. )
  48. (setvar "CMDECHO" CMD)
  49. (setvar "bindtype" oldBnType)
  50. (princ)
  51. )
  52. (defun rem-xref ( XL / XNAME XSTATUS )
  53. (setq XNAME (nth 0 XL))
  54. (setq XSTATUS (nth 2 XL))
  55. (if (= XSTATUS "UNLOADED")
  56.    (rem_unload)
  57. )
  58. (if (= XSTATUS "UNRESOLVED")
  59.    (rem_unload)
  60. )
  61. )
  62. (defun xref-status ( / d n f r)
  63. (while (setq d (tblnext "block" (null d)))
  64.    (cond
  65.      (
  66.        (eq 4 (logand 4 (cdr (assoc 70 d))))
  67.        (setq
  68.          d (entget (tblobjname "block" (cdr (assoc 2 d))))
  69.          n (cdr (assoc 2 d))
  70.          p (cdr (assoc 3 d))
  71.          f (cdr (assoc 70 d))
  72.        )
  73.        (setq r
  74.          (cons
  75.            (list n p
  76.              (cond
  77.                ( (eq 32 (logand 32 f)) "LOADED")
  78.                ( (assoc 71 d) "UNLOADED")
  79.                ( t "UNRESOLVED")
  80.              )
  81.            )
  82.            r
  83.          )
  84.        )
  85.      )
  86.    )
  87. )
  88. (reverse r)
  89. )
  90. (defun rem_unload ( / )
  91. (setq DFILE (findfile "dummy.dwg"))
  92. (if (not DFILE)
  93.    (prompt "\nCannot find dummy_xref drawing ")
  94.    (progn
  95.      (command "-xref" "p" XNAME DFILE)
  96.      (command "-xref" "r" XNAME)
  97.    )
  98. )
  99. )
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 10:16:21 | 显示全部楼层
我不确定这是否正是我想要的,或者我只是做错了。我希望lisp能够绘制多个图形,而不必全部打开。我宁愿只选择我想要的图形,它为我这样做,但也保存为新的文件(这样我就不会覆盖我的正确的绘图)这个程序这样做吗?如果是这样,我该如何使用它?
回复

使用道具 举报

5

主题

35

帖子

38

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:18:54 | 显示全部楼层
你看电子传输设置累了吗。您可以在其中添加文件,以便在打开文件的同时进行电子传输。此外,还可以创建一个新的传递设置,让它为您绑定和清除所有图形。我一直在用它。
 
我想这就是你想要的。这是Autocad的一部分,您不需要另一个lisp或脚本来执行此操作。只要把它设置好,它就会完成你添加的所有绘图
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 10:20:52 | 显示全部楼层
谢谢,我还没看到呢。它运行得很好,在我们所有的程序都启动并运行之前,它必须运行。谢谢你的帮助
回复

使用道具 举报

LCE

1

主题

29

帖子

28

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:26:30 | 显示全部楼层
得了VB。如果你感兴趣的话,它会帮你的。。。目前是基本的,但可以扩展以处理不同的场景(嵌套外部参照等)
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 10:29:33 | 显示全部楼层
谢谢,如果你不介意的话,也许值得一看。我们公司目前正在制作一个程序,通过在标题栏中放置一个问题,创建PDF和绑定的DWG来发布我们的图纸,因此我们可能可以扩展您必须包含的所有内容。
 
谢谢
回复

使用道具 举报

0

主题

8

帖子

8

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:31:54 | 显示全部楼层
 
 
你好
 
我正在寻找一个lsp,可以做一些你说的。我有一组需要电子传递的图形,但我需要每个图形都有自己的电子传递。目前,我必须打开每张图纸,制作一个电子传递。我在电子传递中看到了添加图形的选项,但它将图形放在一个zip文件中。
我们不需要在外部参照中绑定,所以希望你的lisp能够工作
 
谢谢
史蒂芬
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 10:34:24 | 显示全部楼层
这些天我会尽量避开VBA,尤其是当你使用64位的时候。
 
我在ACad中使用了一个名为AutoScript的小插件(只需在谷歌上搜索一下即可)。然后,我让它在选定图形的文本SCR文件中运行以下内容:
它首先将DWG保存到该文件夹(根据脚本中的需要更改文件夹),因为即使其他人当时打开了文件,它也可以工作。我已经在启用“绑定外部参照”选项的情况下设置了电子传递。不需要更多的lisp来绑定外部参照。
回复

使用道具 举报

0

主题

8

帖子

8

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 10:38:39 | 显示全部楼层
谢谢你,我下载了Autoscript exe,并通过menuload加载了cui,但当我运行程序时,我得到了这个mesage。
未知命令“AUTOSCRIPT”。按F1键获取帮助。知道它为什么不运行吗
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 21:14 , Processed in 0.354770 second(s), 72 queries .

© 2020-2025 乐筑天下

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