Hallo! Ich hatte schon mal irgendwas gehabt, um Bögen in einer Polylinie in mehrzahlige Geradensegmente umzuwandeln. Kann´s nur nicht finden
So richtig glücklich bin ich mit dem Tool nicht (unten), weil Bogensegmente mit grossen Radien quasi nur Bogenanfang- und ende als Gerade umwandeln, ich möchte diese mehr verdichten, damit sie nahezu die Bogenlinie nachstellen
Code:(defun c:zz() (vl-load-com) (Or doc (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))) (while (and (setq lw (entsel "\ n Select arc segment in a polyline.")) (= (Cdr (assoc 0 (entget (car lw)))) "LWPOLYLINE") ); _ And (Progn (Vla-StartUndoMark doc) (Vla-SetBulge (vlax-ename->vla-object (car lw)) (Fix (vlax-curve-getParamAtPoint (Car lw) (Vlax-curve-getClosestPointTo (car lw) (cadr lw)) ); _ Vlax-curve-getParamAtPoint ); _ Fix 0. ); _ Vla-SetBulge (Vla-EndUndoMark doc) ); _ Progn (Princ "\ n It is select nothing or object not a polyline.") ); _ If ); _ Defun
erstellt am: 11. Dez. 2015 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Code Bild und schon der weiterführende Gedanke
Top
Aber keine Frage? In Abhängigkeit der Bogenlänge würde ich die gewünschte Anzahl an Segementen berechnen, dabei ein Minimum nicht unterschreiten. Dann die Koordinaten der AnzahlN Punkte auf dem Bogen ermitteln, Polylinie ändern.. und neu erstellen - wie auch immer.