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") ;;; '(-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 ) ) ) (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-getDistAtParam obj (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)
|