CAD垃圾清理使用心得
CAD垃圾清理使用心得
在我们使用AUTOCAD绘图的过程中,经常会出现这种情况:图中内容很少,但图文件所占的空间很大,图形生成的速度也很慢。这是为什么呢?其实原因很简单:图中的垃圾很多。
图文件中产生垃圾的原因很多,其中一个重要的原因就是使用了一些应用软件。应用软件为了方便用户使用,在启动图文件时增加了许多设置。增加的设置是为了适应所有可能出现的情况,因此十分全面。实际上在绘图的过程中,由于绘图内容差异,不同的图中总有一些设置不用。另一方面,在使用应用软件的过程中,许多附加过程会引入一些过渡性的信息,这些信息在没用的时候有的可能会被清除,而有些信息仍然会被保存在文件中,这些未被清除的信息就成为垃圾。比如当我们插入一个图块,如果图块未被打开,有关此图块的记录就是有用信息,当图块被打开以后有关图元已不再是一个整体,但图块的有关信息仍保存在文件中,这些信息就成为无用信息即垃圾。如果一个存在垃圾的图文件又被另一个图文件引用,那么这些文件中的垃圾也就可能被转入新的文件中,造成垃圾积累。为了提高工作效率,在绘图的过程中应当经常清除垃圾。由于图中垃圾来源不同,所以清除垃圾的方法也就不同。方法一:
一般来说,一张CAD图中最常出现的垃圾有以下几种:未引用过的图层设置、线型设置;未被引用的图块(已被打开的图块)、标准字样(STYLE)、外形等等,这些信息可以通过PURGE命令清除。清除过程如下:
①COMMAND:PURGE↓(这个下箭头是接下来的意思)
PurgeunusedBlocks/Dimstyle/LAyers/Ltypes/SHapes/Styles/AllBlocks:无用图块;
Dimstyle:未被使用的尺寸标注格式;LAyers:未被使用的层设置;LTypes:未被引用的线型设置;SHapes:无用的外形;
Styles:未被使用过的字样设置;All:以上所有各项内容。
用户可以根据需要按系统提示删除不同内容。每一项被删除的内容系统都会要求用户予以确认。
注意:此命令的使用必须是打开一个文件后第一条命令。【使用说明:效果不错,属于积累性的。后来成了我最常使用的一个命令】方法二:
对于上面提到的几项内容,也可以通过WBLOCK命令来完成。其过程如下:COMMAND:WBLOCK↓Filesname:(files)↓Blockname:↓
此方法与采用PURGE命令清除垃圾的方法相比,其功能更强大。它清除的内容范围除了上述这些可以用PURGE清除的内容之外,还包括更多的内容,比如非当前使用的用户坐标系。与使用PURGE命令不同,使用此命令时系统并不给出单项提示,而是直接全部清除,因此该命令的使用应谨慎,【试用说明:就是把能选中的东西用块的形式重新完美组合放在新建的DWG文件中】。空字串
有时图文件可能还会出现空文字串。空文字串与空图块一样,无法在图面上直接观察到,因此也就不能直接用ERASE命令删除。对于空字串,可以首先通过QTBXT参数发现它,然后再将其删除。删除过程如下:①Command:Qtext
On/OFF(OFF)ON↓将QTEXT参数值设为ON。↓②Command:Regen按新参数值重新生成图形。
这时图中文字变成矩形方框,方框的宽度与文字的高度相等,其长度与文字串的长度相等。使用此参数后空字串和文字都会变成一个个方框,这样就可以发现空字串了。有时表示空字串的方框和正常文字难以区分,这时可以使用LIST合作进行证实,(以文档形式观看文字内容予以鉴别)。在做完以上工作后,输入Qtext,再点选off,再选择“视图”,消隐。重启下DWG文件就能改掉那些删除不掉的垃圾了。经过这样一些处理后图文件中的垃圾基本上被清除干净,图文件的容量可以降到最低,文件的运行速度也可以大大加快。【试用说明:此方法可以删除你看不到,
选不中的,妨碍你正常视图的不利因素的空字串大坏蛋】
上面方法我只试用了其中3个,(本人使用的是07版本的CAD,07版本中绝对的管用),此方法也是我网上找到的,我将它更加简明的叙述给大家,希望大家能更好的理解这些方法!。。。
扩展阅读:CAD清理垃圾源代码
(vl-load-com)
(prompt"\\nütt.\\n°°ú.");;;ò
(defunc:tt(/catchit)
(setqcatchit(VL-CATCH-ALL-APPLY"dcl_load))(if(vl-catch-all-error-pcatchit)(progn
(princ"\\nòí:")
(princ(vl-catch-all-error-messagecatchit)))
(princ"\\nòá!"))
(princ);)
;;;°òí
(defunDCL_load(/dcl_idDialog_Returnkeykeyskey1Dcl_FileFSSHCOUNTFLST)
(setqdcl_id(load_dialog(setqDcl_File(Write_Dcl))));°ò
(vl-file-deleteDcl_File);óDCL(setqDialog_Return2)
(setqsh(vlax-create-object"Shell.Application"));Shell.applicationó
(setqfs(vlax-create-object"Scripting.FileSystemObject"));FSOó
(setqfLstnil)
(while(>Dialog_Return1);-°òá(new_dialog"DCL"dcl_id);¨°;;-->-->-°ò->-->--
(setqkeys"("ERR""AC$""TMP""DWL""LOG""PLT""SV$""BAK""USR""UED""ZERO""SF""TF""LF""PF""UF""PATH""SUB""accept""cancel"));±í
(foreachkeykeys;(if(eval(read(strcatkey"_bak")))
(set_tilekey(eval(read(strcatkey"_bak")))));
(action_tilekey"(Action_DCL_Keys$key$value)");÷×÷)
(setqkey1"("ERR""AC$""TMP""DWL""LOG""PLT""SV$""BAK""ZERO""USR"))
(action_tile"ALL""(all_selectkey1)");à
(action_tile"CLR""(all_Clear(cons\\"ALL\\"key1))");à
(action_tile"SEL""(SelectFolderfssh))");ר(action_tile"SHOW""(ShowFilefssh)");(action_tile"SA""(SelectAll)");±íò(action_tile"DA""(DeselectAll)");±íò
(action_tile"help""(helpMsg)");°ú;;--(progn
;;(princ(strcat"\\n"(vlax-getfile"name)))(if(vl-catch-all-error-p(vl-catch-all-apply"vlax-invoke(listpFile"delete1)))(setqerr(1+err))(setqcnt(1+cnt))))
;;(princ(strcat"\\n"(vlax-getfile"path))))
(setqels(cdrels))))
(setqi(1+i)))
(princ(strcat"\\n"(itoacnt)))(princ(strcat"\\n °"(itoaerr)))(princ))
(princ"\\n×÷!")))
(princ"\\n!"))
(done_dialog1);°ò÷Dialog_Return1)
((=key"cancel");{°}(princ"\\n×÷!")
(done_dialog0);°ò÷Dialog_Return0)))
;;;ר
(defunSelectFolder(fssh/pap)
(setqpa(vlax-invokesh"BrowseForFolder0""17));ò°òó(ifpa(progn
(setqp(vlax-get(vlax-getpa"self)"path))(if(/=(vlax-invokefs"FolderExistsp)0)(progn
(and(>(strlenp)3)(setqp(strcatp"\\\\")))
(set_tile"PATH"P)(set_tile"UF""1")))))
(ifpa(vlax-release-objectpa))(princ))
;;;
;;;(bug,í)(defunSelectAll(/stri)(setqSTR"")(setqi0)
(repeat(lengthflst)
(setqstr(strcatstr(itoai)""))(setqi(1+i)))
(set_tile"LST"str)(set_tile"SA""0")(set_tile"DA""0"))
;;;
(defunDeselectAll()(set_tile"LST""")(set_tile"SA""0")(set_tile"DA""0"))
;;;
(defunShowFile(fssh/FILTFOLDLSTSIZESTR)(setqlst(Get_DCL_Data))(setqlst(GetFilterlst))(setqsize(carlst))(setqfilt(cadrlst))(setqfold(caddrlst))(if(or(carsize)filt)(progn
(andfilt(removeDupfilt))(setqfold(removeDupfold))(setqfLstnil)(start_list"LST")(foreachpfold
(if(/=(vlax-invokefs"FolderExistsp)0)(Searchfspsizefilt)))
(end_list)
(setqfLst(reverseFlst))(SelectAll))))
;;;
(defunRemoveDup(lst/tmpLn)(setqtmp(mapcar"strcaselst))(setqtmp(acad_strlsorttmp))(whiletmp
(setqn(cartmp))(setqL(consnL))(while(and(cadrtmp)
(=(cartmp)(cadrtmp)))
(setqtmp(cdrtmp)))
(setqtmp(cdrtmp)))
(reverseL))
;;;
(defunCheckFile(fsfilesizefilLst/nameidxsufres1res2)(and(carsize)(setqres1(=(vlax-getfile"size)0)))(cond
((member"*.*"filLst)(setqres2T))
((setqname(vlax-getfile"name))
(setqidx(vl-string-position(ascii".")name0T))(ifidx
(setqsuf(strcase(substrname(+2idx)))res2(membersuffilLst)))))
(orres1res2))
;;;÷
(defunSearch(fsFoldersizefilLst/rfdfilesfilefdsfdIsShow)(if(/=(vlax-invokefs"FolderExistsFolder)0);íó(×)(progn
(setqrfd(vlax-invokefs"GetFolderFolder));
(setqfiles(vlax-getrfd"files));
(vlax-forfilefiles
(if(checkFilefsfilesizefilLst);ì(progn
(add_list(vlax-getfile"name));ò°ò±í
(setqfLst(consfilefLst));°×±í(setqIsShowT))))
(ifIsShow(progn
(add_listFolder)
(setqfLst(consrfdfLst))));°±í(if(=(cdrsize)"1");é °ü¨×(progn
(setqfds(vlax-getrfd"SubFolders));×(vlax-forfdfds
(Searchfs(vlax-getFd"path)sizefilLst);é)))
;;(vlax-release-objectfiles);;(vlax-release-objectrfd))))
;;;
(defunGetFilter(kLst/KEYLSTPATHSIZESUFUSSIDXSUB)(setqlstkLst)(repeat8
(setqkey(carLst))(if(=(cdrkey)"1")
(setqsuf(cons(carkey)suf));ó×)
(setqlst(cdrlst)))
(setqkey(carLst))(if(=(cdrkey)"1");רó×(progn
(setquss(cdadrLst));í¨×(cond
((or(=uss"*.*")(=uss".*")(=uss"*"))(setqsuf(cons"*.*"suf));ù)
((setqidx(vl-string-position(ascii".")uss0T))(setqsuf(cons(substruss(+2idx))suf));רó×())
((/=uss"")
(setqsuf(consusssuf));רó×))))
(setqlst(cddrlst))
(setqkey(carLst))(if(=(cdrkey)"1")(setqsize0);×)
(setqlst(cdrlst))
(if(=(cdr(assoc"TF"lst))"1")(setqpath(cons(getvar"TEMPPREFIX")path));±)
(if(=(cdr(assoc"SF"lst))"1")(setqpath(cons(getvar"SAVEFILEPATH")path));×±)
(if(=(cdr(assoc"LF"lst))"1")
(setqpath(cons(strcat(GetSpecialPath2)"\\\\")path));±)
(if(=(cdr(assoc"PF"lst))"1")
(setqpath(cons(getvar"DWGPREFIX")path));¤×÷)
(if(=(cdr(assoc"UF"lst))"1")
(setqpath(cons(cdr(assoc"PATH"lst))path));¨)
(setqsize(conssize(get_tile"SUB")));°ü×(andsuf(setqsuf(mapcar"strcasesuf)))(listsizesufpath))
;;;ó×
(defunALL_Select(keys)
(if(=(get_tile"ALL")"1")(progn
(foreachnkeys(set_tilen"1"))
(set_tile"CLR""0"))))
;;;
(defunALL_Clear(keys)
(if(=(get_tile"CLR")"1")(foreachn(cons"CLR"keys)(set_tilen"0"))))
;;;°ú
(defunhelpMsg()
(alert"ê÷:\\n
\\nò±òó×
\\n×÷-××÷\\nòìüSòOAD°ü×I;
\\nרó×è.*.dwgdwgù*\\nòòvlispóò;\\ní
\\ná\\n-¨é\\n
\\nHighflybird201*.1."))
;;;±
(defunGet_DCL_Data(/keylstvalue)(foreachkeykeys
(setqvalue(get_tilekey))
(setqlst(cons(conskeyvalue)lst))
(set(read(strcatkey"_bak"))value))
(reverse(cddrlst)))
;;;¤×÷
(defunGetSpecialPath(n/fsopath)
(setqfso(vlax-create-object"Scripting.FileSystemObject"))
(setqpath(vlax-get(vlax-invokefso"GetSpecialFoldern)"path))(vlax-release-objectfso)path)
;;;±úDcl
(defunWrite_Dcl(/Dcl_Filefilestr)(setqDcl_File(vl-filename-mktempnilnil".Dcl"))(setqfile(openDcl_File"w"))(foreachstr(list"//°ò""DCL:dialog""{"
"label=\\"CAD¤\\";"":row""{"
":column""{"
":boxed_column""{"
"label=\\"ó×\\";"":toggle""{"
"key=\\"ERR\\";"
"label=\\"(.err)±¨í\\";""}"
":toggle""{"
"key=\\"AC$\\";"
"label=\\"(.ac$)±\\";""}"":toggle""{"
"key=\\"TMP\\";"
"label=\\"(.tmp)±\\";""}"
":toggle""{"
"key=\\"DWL\\";"
"label=\\"(.dwl,dwl2)±\\";""}"
":toggle""{"
"key=\\"LOG\\";"
"label=\\"(.log)\\";""}"
":toggle""{"
"key=\\"PLT\\";"
"label=\\"(.plt)ò\\";""}"
":toggle""{"
"key=\\"SV$\\";"
"label=\\"(.sv$)×\\";""}"
":toggle""{"
"key=\\"BAK\\";"
"label=\\"(.bak)±\\";""}"
":toggle""{"
"key=\\"ZERO\\";"
"label=\\"0×\\";""}"":row""{"
":toggle""{"
"key=\\"USR\\";"
"label=\\"רó×\\";""}"
":edit_box""{""key=\\"UED\\";""fixed_width=true;""width=16;""}""}"
":toggle""{"
"key=\\"ALL\\";"
"label=\\"ù\\";""}"
":toggle""{"
"key=\\"CLR\\";"
"label=\\"\\";""}""}"
":boxed_column""{"
"label=\\"\\";"":toggle""{"
"key=\\"SF\\";"
"label=\\"×±\\";""}"
":toggle""{"
"key=\\"TF\\";"
"label=\\"±\\";""}"
":toggle""{"
"key=\\"LF\\";"
"label=\\"±\\";""}"
":toggle""{"
"key=\\"PF\\";"
"label=\\"±°¤×÷\\";""}"":row""{"
":toggle""{"
"key=\\"UF\\";""label=\\"¨\\";""}"
":button""{"
"key=\\"SEL\\";"
"label=\\"ò(&O)\\";""}""}"
":text""{"
"key=\\"PATH\\";""label=\\"\\";""}""}""}"
":boxed_column""{"
"label=\\"±í\\";""fixed_width=true;""width=60;"":list_box""{"
"key=\\"LST\\";"
"multiple_select=true;""}""}""}"":row""{"
"spacer;"
"ok_cancel_help;""spacer_1;""spacer_1;""spacer_1;"":button""{"
"key=\\"SHOW\\";""label=\\"(&S)\\";""fixed_width=true;""width=12;""}"
":toggle""{"
"key=\\"SUB\\";""label=\\"°ü¨×(&I)\\";""value=\\"1\\";""}"
":toggle""{"
"key=\\"SA\\";"
"label=\\"(&A)\\";""}"
":toggle""{"
"key=\\"DA\\";"
"label=\\"(&D)\\";""}""spacer;""}""}")
(write-linestrfile))
(closefile)Dcl_File)
友情提示:本文中关于《CAD垃圾清理使用心得》给出的范例仅供您参考拓展思维使用,CAD垃圾清理使用心得:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。