3
9
6
初来乍到
(defun c:fdp (/ doc dictcoll dictlst mspcoll dictcoll contour ss lst ssall bbox file) (vl-load-com);;;;;; create undo mark (setq Doc (vla-get-ActiveDocument (vlax-get-Acad-Object))) (vla-EndUndoMark Doc) (vla-StartUndoMark Doc);;;;;; purge shx (vl-load-com) (vlax-for item (vla-get-textstyles (vla-get-ActiveDocument (vlax-get-acad-object)) ) (if (not (vl-filename-extension (setq fname (vla-get-fontfile item))) ) (setq fname (strcat fname ".shx")) ) (cond ((findfile fname) nil) ((findfile (strcat (getenv "WINDIR") "\\FONTS\" fname)) nil ) (t (vla-put-fontfile item "ltypeshp.shx") ) ) );;;;;;;; clean up dict(setq dictcoll (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))))(vlax-for di dictcoll(setq dictlst (cons (vl-catch-all-apply 'vla-get-name (list di)) dictlst)))(setq dictlst (reverse dictlst))(princ dictlst)(textscr)(princ);;;;;; detach all xref (vl-load-com)(vl-cmdf "_.-xref" "D" "*")(vl-cmdf "_.-image" "D" "*")(setq mspcoll (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))(vlax-for ent mspcoll(if (or (eq (vl-catch-all-apply 'vla-get-objectname (list ent)) "AcDbDwfReference")(eq (vl-catch-all-apply 'vla-get-objectname (list ent)) "AcDbPdfReference")(eq (vl-catch-all-apply 'vla-get-objectname (list ent)) "AcDbDgnReference")(eq (vl-catch-all-apply 'vla-get-objectname (list ent)) "AcDbOle2Frame"))(vla-delete ent)))(setq dictcoll (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))))(vlax-for di dictcoll(if (or (eq (vl-catch-all-apply 'vla-get-name (list di)) "ACAD_IMAGE_DICT")(eq (vl-catch-all-apply 'vla-get-name (list di)) "ACAD_PDFDEFINITIONS")(eq (vl-catch-all-apply 'vla-get-name (list di)) "ACAD_DGNDEFINITIONS")(eq (vl-catch-all-apply 'vla-get-name (list di)) "ACAD_DWFDEFINITIONS"))(progn(vlax-for d di(vla-delete d))(vla-delete di))));;;;;; purge all(command "_purge" "_all" "*" "n");;;;;; zoom etendue(command "zoom" "et");;;;;; create text of layer(if(and(setq pt (getpoint "\nChoisr un point d'insertion "))(setq pt (trans pt 1 0) i -1sp (* 1.5 (getvar 'TEXTSIZE))))(while (setq df (tblnext "LAYER" (null df)))(entmake(list(cons 0 "TEXT")(cons 7 (getvar 'TEXTSTYLE))(cons 8 (cdr (assoc 2 df)))(cons 6 "ByLayer")(cons 39 0.0)(cons 62 256)(cons 10 (setq p1 (polar pt (* 1.5 pi) (* (setq i (1+ i)) sp))))(cons 40 (getvar 'TEXTSIZE))(cons 1 (cdr (assoc 2 df)))(cons 370 -1)))));;;;;; delete layers of your choice (prompt "\nChoisir des objects pour supprimer les calques ") (if (setq ssL (ssget)) (repeat (setq nL (sslength ssl)) (if (setq l_name (cdr (assoc 8 (entget (ssname ssL (setq nL (1- nL))))))) (progn (setq ssE (ssget "_X" (list (cons 8 l_name)))) (repeat (setq nE (sslength ssE)) (entdel (ssname ssE (setq nE (1- nE)))) ) ) ) ) );;;;;; zoom precedent(command "zoom" "et");;;;;; erase text and mtext(setq sstext (ssget "_X" '((0 . "TEXT,MTEXT,LEADER"))))(command "_erase" sstext "")