FilipTo
02.09.2013, 19:38
Zdravím užívateľov fóra,pracujem na prevádzke LASER a potrebujem zistiť ako by bolo možné zobrazovať dĺžku, resp.obvod všetkých objektov vo výkrese. Jedná sa o súčiastky zložitého tvaru s vonkajším obvodom a viacerými vnútornými. V predchádzajúcich dávnejších príspevkoch som našiel jeden lisp - dolu pod príspevkom je jeho celé znenie - avšak v ňom nie sú zahrnuté úsečky a oblúky - čo je vlastne 90% zloženia výkresovej dokumentácie, ktorá ku mne ide.Moja otázka znie: Dá sa upraviť doleuvedený lisp, tak aby zahrňoval aj úsečky a oblúky?? Alebo jestvuje nejaký program, nejaká nástavba pre AutoCad, ktorá sa dokupuje??Prosím poraďte, veľmi by mi to uľahčilo moju prácu.Spomínaný lisp:(defun c:pll (/ ss cnt area len)(vl-load-com)(setq cnt 0 area 0.0 len 0.0)(if (ssget (list'(-4 . "<OR")'(0 . "CIRCLE")'(-4 . "<AND")'(0 . "ELLIPSE")'(41 . 0.0)(cons 42 (* 2 pi))'(-4 . "AND>")'(-4 . "<AND")'(0 . "LWPOLYLINE");;; '(-4 . "&");;; '(70 . 1)'(-4 . "AND>")'(0 . "MPOLYGON")'(-4 . "<AND")'(0 . "POLYLINE");;; '(-4 . "&");;; '(70 . 1)'(-4 . "<")'(70 . 8)'(-4 . "AND>")'(0 . "REGION")'(-4 . "<AND")'(0 . "SPLINE")'(-4 . "&")'(70 . 9)'(-4 . "AND>")'(-4 . "OR>")))(progn(vlax-for obj (setq ss (vla-get-ActiveSelectionSet(vla-get-ActiveDocument(vlax-get-acad-object))))(setq cnt (1+ cnt)area (+ area (vla-get-area obj))len (+ len(if (member (vla-get-ObjectName obj)'("AcDbMPolygon" "AcDbRegion"))(vla-get-Perimeter obj)(vlax-curve-getDistAtParamobj(vlax-curve-getEndParam obj))))));; (princ "\nZTOTM v2.1 - Cercle, Polyligne, Ellipse, Spline, Region, MPOLYGON") (princ "\nZTOTM v2.1 - Circle, Pline, Ellipse, Spline, Region, MPOLYGON");; (princ (strcat "\n""TOTAL -Surface: "(rtos area) " -Perimetre: "(rtos len)" -Objets: "(itoa cnt) (princ (strcat "\n""TOTAL -Area: " (rtos area) " -Length: " (rtos len)" -Objects: "(itoa cnt)))(vla-delete ss))(prompt "\n*** Rien de Valable / Nothing available "))(princ)) (princ "\n==> ZTOTM (Version 2.1) ")(princ)