1
11
10
初来乍到
(defun c:Len2Fld ( / *error* tables doc spc p s q ExitFlag ) (vl-load-com) (while (defun *error* ( msg ) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (setq tables (LM:ss->vla (ssget "_X" '((0 . "ACAD_TABLE"))))) (LM:ActiveSpace 'doc 'spc) (cond ( (setq p (LM:Selectif (lambda ( x ) (vlax-property-available-p (vlax-ename->vla-object x) 'Length ) ) "\nMétré longeur, Selectionner cable: " nil ) ) (setq s (strcat "%<\\AcObjProp Object(%<\\_ObjId " (LM:GetObjectID doc (vlax-ename->vla-object p)) ">%).Length \\f "%lu6">%" ) ) (while (progn (or ExitFlag (progn (initget "Point") (setq p (nentsel "\nSelect Text, MText or Attribute for Result [Point] <Exit> : ")) ) ) (cond ( ExitFlag nil ) ( (vl-consp p) (if (wcmatch (cdr (assoc 0 (entget (car p)))) "ATTRIB,*TEXT") (vla-put-TextString (vlax-ename->vla-object (car p)) s) (princ "\n** Object Must be Text, MText or Attribute **") ) ) ) ) ) ) ) (vla-regen doc AcActiveViewport) (princ))) (defun LM:ActiveSpace ( *doc *spc ) (set *spc (if (or (eq AcModelSpace (vla-get-ActiveSpace (set *doc (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) ) (eq :vlax-true (vla-get-MSpace (eval *doc))) ) (vla-get-ModelSpace (eval *doc)) (vla-get-PaperSpace (eval *doc)) ) ))(defun LM:Selectif ( foo str nest / e ) (while (progn (setq e (car ((if nest nentsel entsel) str))) (cond ( (eq 'ENAME (type e)) (if (not (foo e)) (princ "\n** Invalid Object Selected **")) ) ) ) ) e)(defun LM:GetObjectID ( doc obj ) (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE"))) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false) (itoa (vla-get-Objectid obj)) ))(defun LM:ss->vla ( ss ) (if ss ( (lambda ( i / e l ) (while (setq e (ssname ss (setq i (1+ i)))) (setq l (cons (vlax-ename->vla-object e) l)) ) l