Hallo
Ich würde gerne wissen, ob es möglich ist, ein Rechteck zu erstellen, das im Vergleich zu einem Poligone so klein wie möglich ist
rectangle_capable.pdf
Hallo
Ich würde gerne wissen, ob es möglich ist, ein Rechteck zu erstellen, das im Vergleich zu einem Poligone so klein wie möglich ist
Hallo
Meines Wissens gibt es keine automatische Lösung, setzen Sie einfach die Seiten so, dass sie mit den Eckpunkten des Polygons übereinstimmen.
Tatsächlich habe ich ein LISP-Programm gefunden, das dies tut:
;; SmallestRectangle.lsp [Befehlsname: SR]
;; Um das kleinste orthogonale Rechteck um ein Benutzer-
;; Ausgewählte Gruppe von Objekten. Zeichnet auf dem aktuellen Layer.
;; Kent Cooper, 27. Februar 2013
(defun C:SR (/obb oLL oUR ss LL UR); = Kleinstes Rechteck
(defun obb (ent); = Ecken des Begrenzungsrahmens des Objekts
(vla-getboundingbox (vlax-ename->vla-object ent) 'minpt 'maxpt)
(setq
oLL (vlax-safearray->list minpt); Unten links des Objekts
oUR (vlax-safearray->list maxpt); Oben rechts des Objekts
); setq
); defun -- obb
(vl-load-com)
(Aufforderung "\nUm das kleinste Rechteck um sie herum zu zeichnen,")
(setq ss (ssget))
(obb (SSNAME SS 0))
(setq LL oLL IHR UR); anfängliche Gesamt-LL&UR [des ersten Objekts]
(SSDEL (SSNAME SS 0) SS)
(wiederholen (sslength ss)
(obb (SSNAME SS 0))
(setq
LL (mapcar 'min oLL LL); Geringstes von jeder Komponente
UR (mapcar 'max oUR UR); Größter von jeder Komponente
); setq
(SSDEL (SSNAME SS 0) SS)
); Wiederholen
(Befehl "_.rectangle" "_none" LL "_none" UR)
(prinç)
); defun -- C:SR
Feder:
http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/the-smallest-rectangle-enclosing-selected-set-of-objects/td-p/3791519
Bearbeitung: Für die Verwendung von LISPs siehe dieses Tutorial:
http://cadxp.com/topic/14323-charger-un-lisp/