2
439
536
限制会员
(defun c:gecen(/ actDoc cSet cLst oldSnp cCen cAre cmLst gCen enPt) (vl-load-com) (princ "\n<<<Select Regions or 3D-solids >>> ") (if(setq cSet(ssget '((0 . "REGION,3DSOLID")))) (progn (setq cLst(mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr(ssnamex cSet)))) oldSnp(getvar "OSMODE") ); end setq (mapcar 'setvar (list "OSMODE" "CMDECHO")(list 0 0)) (vla-StartUndoMark(setq actDoc(vla-get-ActiveDocument (vlax-get-acad-object)))) (foreach ent cLst(if(vlax-property-available-p ent 'Centroid) (progn (setq cCen(vlax-get ent 'Centroid) cAre(vlax-get ent 'Area) cmLst(cons(list cCen cAre)cmLst) ); end setq ); end progn ); end if); end foreach (if (andcmLst(/= 1(length cmLst))); enad and (progn(setq gCen (list (/ (apply '+ (mapcar '* (mapcar 'caar cmLst)(mapcar 'cadr cmLst))) (apply '+ (mapcar 'cadr cmLst)) ); end / (/ (apply '+ (mapcar '* (mapcar 'cadar cmLst)(mapcar 'cadr cmLst))) (apply '+ (mapcar 'cadr cmLst)) ); end / ); end list enPt(polar gCen(/ pi 3) (*(getvar "DIMTXT")(getvar "DIMSCALE")5)) ); end setq(command "_.qleader" gCen enPt "" "" "temp_text" "")(vla-put-TextString (vlax-ename->vla-object(entlast)) (strcat "x="(rtos(car gCen)2(getvar "DIMDEC")) "\\P" "y="(rtos(cadr gCen)2(getvar "DIMDEC")) ); end strcat ); end vla-put-TextString(foreach pt(mapcar 'car cmLst) (command "_.line" pt gCen "") (setq enPt(polar pt(/ pi 3) (*(getvar "DIMTXT")(getvar "DIMSCALE")5))) (command "_.qleader" pt enPt "" "" "temp_text" "") (vla-put-TextString (vlax-ename->vla-object(entlast)) (strcat "x="(rtos(car pt)2 2) "\\P" "y="(rtos(cadr pt)2 2) ); end strcat ); end vla-put-TextString ); end foreach); end progn ); end if (mapcar 'setvar (list "OSMODE" "CMDECHO")(list oldSnp 1)) (vla-EndUndoMark actDoc) ); end progn ); end if (princ) ); end of c:gecen
使用道具 举报
19
初来乍到
51
481
457
后起之秀
20
81
61
初露锋芒
; error: ActiveX Server returned the error: unknown name: "AREA"
1
1069
1050
(defun c:gec(/ actDoc cSet cLst oldSnp cCen cAre cmcList cmvList gCen enPt) (vl-load-com) (princ "\n<<<Select Regions or 3D-solids >>> ") (if(setq cSet(ssget '((0 . "REGION,3DSOLID")))) (progn (setq cLst(mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr(ssnamex cSet)))) oldSnp(getvar "OSMODE") ); end setq (mapcar 'setvar (list "OSMODE" "CMDECHO")(list 0 0)) (vla-StartUndoMark(setq actDoc(vla-get-ActiveDocument (vlax-get-acad-object)))) (foreach obj cLst(if (vlax-property-available-p obj 'Centroid) (cond ((eq "AcDbRegion" (vla-get-objectname obj)) (progn (setq cCen(vlax-get obj 'Centroid) cAre(vlax-get obj 'Area) cmcList(cons(list cCen cAre)cmcList) ); end setq ); end progn ) ((eq "AcDb3dSolid" (vla-get-objectname obj)) (progn (setq cCen(vlax-get obj 'Centroid) cVol(vlax-get obj 'Volume) cmvList(cons(list cCen cVol)cmvList) ); end setq ); end progn )) ); end if); end foreach (if (andcmcList(/= 1(length cmcList))); enad and (progn(setq gCen (list (/ (apply '+ (mapcar '* (mapcar 'caar cmcList)(mapcar 'cadr cmcList))) (apply '+ (mapcar 'cadr cmcList)) ); end / (/ (apply '+ (mapcar '* (mapcar 'cadar cmcList)(mapcar 'cadr cmcList))) (apply '+ (mapcar 'cadr cmcList)) ); end / ); end list enPt (polar gCen(/ pi 3) (* (getvar "DIMTXT")(getvar "DIMSCALE") 5)) ); end setq(command "_.qleader" "_non" gCen "_non" enPt "" "" "#" "")(vla-put-TextString (vlax-ename->vla-object(entlast)) (strcat "x="(rtos(car gCen)2(getvar "DIMDEC")) "[url="file://\\P"]\\P[/url]" "y="(rtos(cadr gCen)2(getvar "DIMDEC")) ); end strcat ); end vla-put-TextString(foreach pt(mapcar 'car cmcList) (command "_.line" "_non" pt "_non" gCen "") (setq enPt(polar pt(/ pi 3) (*(getvar "DIMTXT")(getvar "DIMSCALE")5))) (command "_.qleader" pt enPt "" "" "#" "") (vla-put-TextString (vlax-ename->vla-object(entlast)) (strcat "x="(rtos(car pt)2 2) "[url="file://\\P"]\\P[/url]" "y="(rtos(cadr pt)2 2) ); end strcat ); end vla-put-TextString ); end foreach); end progn ); end if(if (andcmvList(/= 1(length cmvList))); enad and (progn(setq gCen (list (/ (apply '+ (mapcar '* (mapcar 'caar cmvList)(mapcar 'cadr cmvList))) (apply '+ (mapcar 'cadr cmvList)) ); end / (/ (apply '+ (mapcar '* (mapcar 'cadar cmvList)(mapcar 'cadr cmvList))) (apply '+ (mapcar 'cadr cmvList)) ); end / ); end list enPt (polar gCen(/ pi 3) (* (getvar "DIMTXT")(getvar "DIMSCALE") 5)) ); end setq(command "_.qleader" "_non" gCen "_non" enPt "" "" "#" "")(vla-put-TextString (vlax-ename->vla-object(entlast)) (strcat "x="(rtos(car gCen)2(getvar "DIMDEC")) "[url="file://\\P"]\\P[/url]"