liuhaixin88 发表于 2022-7-5 23:24:51

d使用lisp“减重”

我找到了一个lisp来做这件事,但是,没有找到。
对不起,你能帮我一下吗谢谢

ReMark 发表于 2022-7-5 23:37:47

减轻重量?你是说文件大小吗?

Tharwat 发表于 2022-7-5 23:38:58

 
你怎么找不到!!!

liuhaixin88 发表于 2022-7-5 23:51:14

 
谢谢,我指的是文件大小。

liuhaixin88 发表于 2022-7-5 23:56:22

 
塔瓦,请帮帮我!

Snownut 发表于 2022-7-6 00:02:40

文件大小较大的原因有很多,如块、字典等。
 
连续运行purge命令3次,看看它能做什么。(需要多次才能到达嵌套块)
 
这里还有许多线程和其他站点解决这个问题。请进行彻底搜查。

ReMark 发表于 2022-7-6 00:06:05

我将运行的命令是。。。
 
过度杀戮
 
-清除>重新应用
 
-清除>全部
 
审核>修复错误?>对
 
缩放>范围
 
拯救
 
再次重复该序列。

liuhaixin88 发表于 2022-7-6 00:14:30

 
谢谢你的评论,还有另一种方法:使用WBLOCK,很多人都用。

liuhaixin88 发表于 2022-7-6 00:18:22

这有用吗?
 
(defun DwgWblock (dwgfileLst /   ACADAPP    BACKUPFILE
   BASENAME   DOCOBJ   DWGNAME    FILEPATH
   INDEX      NEWSET   SSETS
    )
   (setq AcadApp (vlax-get-acad-object))
   (repeat (setq Index (length dwgfileLst))
   (setq DwgName (nth (setq Index (1- Index)) dwgfileLst))
   (setq BaseName   (vl-filename-base DwgName)
    filepath   (vl-filename-directory DwgName)
    ;;dxfFile    (vl-string-subst ".dxf" ".dwg" DwgName)
    BackupFile (strcat (getfullpath filepath)
         BaseName
         "_Backup"
         (vl-filename-extension DwgName)
      )
   )
   (if (findfile BackupFile)
(deletefile BackupFile)
   )   
   (if (vl-file-rename DwgName BackupFile)
(progn
(setq
    DocObj (vla-open (vla-get-documents AcadApp) BackupFile)
)
(setq ssets (vla-get-selectionsets DocObj))
(if (vl-catch-all-error-p
(vl-catch-all-apply 'vla-item (list ssets "$$Set"))
      )
    (setq newSet (vla-add ssets "$$Set"))
    (progn
      (vla-delete (vla-item ssets "$$Set"))
      (setq newSet (vla-add ssets "$$Set"))
    )
)
;;select all objects in the drawing
(vla-Select newSet acSelectionSetAll)
(vla-WBlock DocObj DwgName newSet)
(vla-close DocObj :vlax-false)
(deletefile BackupFile)
)
   )
   )
   (if DocObj
   (vlax-release-object DocObj)
   )
   (if AcadApp
   (vlax-release-object AcadApp)
   )
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun DwgWblock1 (HasOpenFiles / *ACAD* *DOCS* DWGNAME N)
   (setq *ACAD* (vlax-get-acad-object))

   (setq HasOpenFiles (mapcar 'strcase HasOpenFiles))
   (vlax-for item (vla-get-Documents *ACAD*)
   (if (member (strcase (vlax-get-property item 'FullName))
   HasOpenFiles
)
(vla-close item :vlax-false)
   )
   )

   (DwgWblock HasOpenFiles)

   (setq *DOCS* (vla-get-documents *ACAD*))
   (repeat (setq n (length HasOpenFiles))
   (setq DwgName (nth (setq n (1- n)) HasOpenFiles))
   (vla-open *DOCS* DwgName)
   )
)

edwinprakoso 发表于 2022-7-6 00:29:26

如果使用AutoCAD 2012或更高版本,可以尝试图形清除:https://apps.exchange.autodesk.com/ACD/en/Detail/Index?id=appstore.exchange.autodesk.com%3adrawingpurge_windows32and64%3aen
页: [1]
查看完整版本: d使用lisp“减重”