乐筑天下

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

[编程交流] 审核/清除/快速LSP

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:16:51 | 显示全部楼层 |阅读模式
大家好,
 
这里是LSP新手,长期使用AutoCAD。
 
与各种顾问合作,不得不将他们的图纸整合到我们的图纸(室内设计)中,我们的图纸变得堆满了废话。。
 
有没有人有一个LSP例程,它会在“打开”文件时自动运行以审核/清除所有/快速保存?
 
我需要一个步骤,在哪里保存它,如何让它工作也请!!
 
 
非常感谢您的帮助!
 
谢谢
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

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

铜币
474
发表于 2022-7-6 09:32:25 | 显示全部楼层
1-使用所需的名称(我提供APQC.LSP)将以下代码保存在AutoCAD support文件夹中。
  1. ;;; APQC.LSP, Audit-->Purge-->Qsave-->Close
  2. ;;; Mehre Taban Co., Mehrdad Ahankhah, [url="http://www.irancad.com/"]www.irancad.com[/url], [email="ahankhah@irancad.com"]ahankhah@irancad.com[/email]
  3. (vl-load-com)
  4. (defun [b][color=purple]C:APQC[/color][/b] ()
  5.    (MT:Do:Audit)
  6.    (MT:Do:PurgeAllNested)
  7.    (if (MT:Do:Qsave)
  8.        (MT:Do:CloseDwg)
  9.    )
  10. )
  11. (defun [b][color=purple]MT:Do:Audit[/color][/b] () (command "_.Audit" "y" ""))
  12. (defun [b][color=purple]MT:Do:PurgeAllNested[/color][/b] (/ Cont)
  13.    (princ "\nPurging unused objects...\n")
  14.    (setq Cont T)
  15.    (while Cont
  16.        (MT:Do:PurgeALL)
  17.        (if (zerop (boole 1 1 (getvar 'Dbmod)))
  18.            (progn (acad-pop-dbmod) (setq Cont nil))
  19.            (progn (acad-pop-dbmod)
  20.                   (if (not (zerop (getvar 'Dbmod)))
  21.                       (progn (MT:Do:Qsave) (acad-pop-dbmod))
  22.                   )
  23.                   (princ "\n\tPurging unused nested objects...")
  24.            )                                     ; if false
  25.        )                                         ; if
  26.    )                                             ; while
  27.    (princ "\nPurging unused objects done.\n")
  28. )
  29. (defun [b][color=purple]MT:Do:PurgeALL[/color][/b] ()
  30.    (vla-PurgeAll
  31.        (vla-get-ActiveDocument
  32.            (vlax-get-acad-object)
  33.            )
  34.    ); Visual Lisp version
  35.    ;;(command "_.PURGE" "_All" "*" "_No"); AutoLISP version
  36. )
  37. (defun [b][color=purple]MT:Do:Qsave[/color][/b] (/ ret)
  38.    (if (zerop (getvar "Dwgtitled"))
  39.        (progn (alert "Drawing has no name, QSAVEing is not probable.")
  40.               (setq ret nil)
  41.        )
  42.        (progn (command "_.QSAVE") (setq ret T))
  43.    )
  44.    ret
  45. )
  46. (defun [b][color=purple]MT:Do:CloseDwg[/color][/b] ()
  47.    (command "_.CLOSE")
  48.    (and (= 1 (getvar 'cmdactive)) (command "_Yes"))
  49. )
  50. [b][color=purple](C:APQC)[/color][/b]

2-打开AutoCAD。
3-发布APPLOAD。
4-在对话框中,选择“启动套件”区域中的内容按钮。
5-选择“APQC.LSP”将其添加到列表中。
6-关闭APPLOAD对话框。
7-将图形拖动到AutoCAD GUI中除“绘图区域”之外的任何点。
8-等待,看看所有的图纸是如何处理一个接一个。
9-完成任务后,转至步骤3。现在,您必须从启动套件的内容列表中删除“APQC.LSP”。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:36:55 | 显示全部楼层
另请参阅本页最后一个回复下方的“类似线程”部分。这也应该有帮助-大卫
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:46:54 | 显示全部楼层
你好
 
感谢您的回复,
 
您的代码运行良好,但在审核和清除后关闭了图形,
我希望图纸保持开放,这样我可以继续工作。
 
我试图删除最后几行代码,但这不可原谅地在循环中造成了问题,因此它不再工作,
 
有没有办法删除代码中的“关闭绘图”部分,然后让其余部分继续工作?
 
干杯
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:01:15 | 显示全部楼层
快速修改,我希望Mehrdad不会介意:
 
  1. ;;; APQC.LSP, Audit-->Purge-->Qsave-->Close
  2. ;;; Mehre Taban Co., Mehrdad Ahankhah, www.irancad.com, ahankhah@irancad.com
  3. ;;; Modified by Lee Mac - 20.06.11 in places marked 'LM'
  4. (vl-load-com)
  5. (defun C:APQC nil
  6.    (MT:Do:Audit)
  7.    (MT:Do:PurgeAllNested)
  8. ;;;    (if
  9.        (MT:Do:Qsave)
  10. ;;;        (MT:Do:CloseDwg)
  11. ;;;    )
  12. )
  13. (defun MT:Do:Audit nil (command "_.Audit" "y" ""))
  14. (defun MT:Do:PurgeAllNested (/ Cont)
  15.    (princ "\nPurging unused objects...\n")
  16.    (setq Cont T)
  17.    (while Cont
  18.        (MT:Do:PurgeALL)
  19.        (if (zerop (boole 1 1 (getvar 'Dbmod)))
  20.            (progn (acad-pop-dbmod) (setq Cont nil))
  21.            (progn (acad-pop-dbmod)
  22.                   (if (not (zerop (getvar 'Dbmod)))
  23.                       (progn (MT:Do:Qsave) (acad-pop-dbmod))
  24.                   )
  25.                   (princ "\n\tPurging unused nested objects...")
  26.            )                                     ; if false
  27.        )                                         ; if
  28.    )                                             ; while
  29.    (princ "\nPurging unused objects done.\n")
  30. )
  31. (defun MT:Do:PurgeALL nil
  32.    (or *acdoc (setq *acdoc (vla-get-activedocument (vlax-get-acad-object))))  ;; LM
  33.    (vla-PurgeAll *acdoc) ;; LM
  34. )
  35. (defun MT:Do:Qsave (/ ret)
  36.    (if (zerop (getvar "Dwgtitled"))
  37.        (progn (alert "Drawing has no name, QSAVEing is not probable.")
  38.               (setq ret nil)
  39.        )
  40.        (progn (command "_.QSAVE") (setq ret T))
  41.    )
  42.    ret
  43. )
  44. ;;;(defun MT:Do:CloseDwg nil
  45. ;;;    (command "_.CLOSE")
  46. ;;;    (and (= 1 (getvar 'cmdactive)) (command "_Yes"))
  47. ;;
  48. (C:APQC)
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:07:49 | 显示全部楼层
李,太棒了,非常感谢
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

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

铜币
474
发表于 2022-7-6 10:26:39 | 显示全部楼层
李,非常感谢你所做的漂亮而有用的修改。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:59 , Processed in 0.602719 second(s), 66 queries .

© 2020-2025 乐筑天下

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