美文网首页
CAD 中删除形状并清理对不可用形 (SHX) 文件的参照教程

CAD 中删除形状并清理对不可用形 (SHX) 文件的参照教程

作者: 人间草木为伴 | 来源:发表于2020-03-14 09:17 被阅读0次

问题:

每次在 AutoCAD 中打开图形时,如果该图形参照您系统上不存在的形文件,则会显示一个对话框,提示您查找缺少的形 (SHX) 文件。

原因:

当您从其他用户处接收图形且关联的形文件未随该图形一起提供时,可能会出现此问题。

解决方案:

解决此问题的最佳方法是获取缺少的形文件。 但是,这些文件有可能不可用。
浏览图形并确定哪些对象或线型参照了缺少的 SHX 文件。 找到后,更改线型分配和/或删除使用缺少的 SHX 文件的对象。 通过从图形中清理这些项目,您还可以清除对缺少的 SHX 文件的参照。

或者,可以使用下面所述的方法:警告:此解决方案将永久地且不可逆地从图形中删除缺少的形状对象。

除非您确定可以删除缺少的形状对象而不会影响图形的有效性,否则请勿使用此解决方案。
此解决方案适用于以下情况:您无法获取缺少的形文件,且您知道自己可以删除它们而不影响图形的有效性。 该解决方案提供了一个 AutoLISP® 例程,供您用于以下目的:

删除参照不可用形文件的形状对象。
清理对不可用形文件的参照。
然后,您可以正确加载该图形。

使用文本编辑器(例如 Microsoft® 记事本)创建新的文本文件。
将以下 AutoLISP 代码复制并粘贴到上一步创建的文本文件中。

;;;-------------------- START OF FILE ------------------------

;;;--------------------------------------------------------------------------;

;;; DESCRIPTION
;;; This routine deletes all shapes in the drawing
;;; that do not have a file definition.
;;; ;;; RUN
;;; -load this file and run the new command DELSHAPE
;;;--------------------------------------------------------------------------;
(defun c:delshape ()


  (setvar "CMDECHO" 0)
(setq n 0
  nshapes 0
  delete 0
)
(setq shapes (ssget "X" '((0 .
"SHAPE")))) ;shapes
(setq shapes_name (ssget "X" (list (cons 0 "SHAPE") (cons 2 "*"))))
(if (/= shapes nil)
  (setq nshapes (sslength shapes))
) ; n. total de shapes
(if (and (= shapes_name nil) (/= shapes nil))
  (progn
    (while (< n nshapes)
  (setq entity (ssname shapes n))
  (entdel entity)
  (setq delete (+ 1 delete))
  (setq n (+ 1 n))
    )
  )
)
(while (and (< n nshapes) (/= shapes nil) (/= shapes_name nil))
  (setq entity (ssname shapes n))
  (if (or (= (ssmemb entity shapes_name) nil))
    (progn
  (entdel entity)
  (setq delete (+ 1 delete))
    )
  )
  (setq n (+ 1 n))   )
  (prin1 delete)
  (princ " shape(s) deleted\n")
  (command "_purge" "_sh" "" "_n")
) ;;---------------- END OF FILE --------------

将文本文件另存为 delshape.lsp,然后退出文本编辑器。
打开存在问题的图形,并使用 APPLOAD 命令加载 delshape.lsp 例程。
在命令行上,输入 delshape。该例程将运行并在命令行上返回以下信息:

已删除的形状数目
已清理的形文件的名称

注意:此例程仅删除参照不可用形文件的图形中的形状。 该例程不删除图形中显示的形状。

提示:使用电子传递实用程序可避免将来出现此类问题。 电子传递实用程序将与图形关联的所有文件复制到指定的位置。然后,这些文件可以随图形一起提交。

保存图形。

相关文章

网友评论

      本文标题:CAD 中删除形状并清理对不可用形 (SHX) 文件的参照教程

      本文链接:https://www.haomeiwen.com/subject/yqqmshtx.html