Hallo Wolfgang,
schade finde ich es nicht, es ist auf jeden Fall eine gute Lösung.
Da die Polylinie zur CNC-Bearbeitung benötigt wird, kann es sein,dass die Maschine bei den kleinen Linienstücken ruckelt.
Bögen mit tangentialen Übergängen sind für die weitere Bearbeitung besser.
Nach langem Suchen habe ich eine Lisp-Datei gefunden und kleine Anpassungen vorgenommen.
Gruß
Theodor Schönwald
;;; CurveToPolyline
;;
(defun C:CVPL (/ ENTNAME INCR X LOE)
(setvar "cmdecho" 0)
(vl-load-com)
(setq X (entsel "\nEine Ellipse oder Spline wählen: ")
ENTNAME (car X)
INCR (progn
(initget 7)
(getdist "\nAbstand der einzelnen Incremente:" (cadr X))
)
)
;; 2*incr = one arc
(CURVE->POLYLINE ENTNAME (* 2 INCR))
(command "_CHPROP" (entlast) "" "_COLOR" 5 "")
(command "REGEN")
(initget "J N")
(setq LOE (getkword "\nSoll die vorherige Kontor gelöscht werden? N/<J>: "))
(if (or (not LOE) (= LOE "J"))
(entdel ENTNAME)
)
(princ)
)
(defun CURVE->POLYLINE (ENAME ARCLEN / ENTDATA POLYNAME N DELTA TOTLENGTH CURLEN)
(setq ENTDATA (entget ENAME))
(cond
((not (member (setq POLYNAME (cdr (assoc 0 ENTDATA))) '("ELLIPSE" "SPLINE")))
(princ "\nObjekt ist keine Ellipse oder Spline,")
(princ " es kann nicht in eine Polyline gewandelt werden.")
)
(t
(setq TOTLENGTH (vlax-curve-getdistatparam ENAME (vlax-curve-getendparam ENAME))
CURLEN 0
;; at least 2 arcs
N (max 2 (1+ (fix (/ TOTLENGTH ARCLEN))))
)
(if (= POLYNAME "ELLIPSE")
(if (= 1 (logand N 1))
(setq N (1+ N))
)
)
;; make it even for ellipse
(setq DELTA (/ TOTLENGTH N 2.0))
;;First point of polyline
(command "_.pline" "_non" (trans (vlax-curve-getstartpoint ENAME) 0 1) "_arc")
(repeat N
(setq CURLEN (+ CURLEN DELTA))
;; second point of arc
(command "_second" "_non" (trans (vlax-curve-getpointatdist ENAME CURLEN) 0 1))
(setq CURLEN (+ CURLEN DELTA))
;; end point of arc
(if (< CURLEN (- TOTLENGTH DELTA))
(command "_non" (trans (vlax-curve-getpointatdist ENAME CURLEN) 0 1))
(command "_non" (trans (vlax-curve-getendpoint ENAME) 0 1) "")
)
)
(setq POLYNAME (entlast))
POLYNAME
)
)
)
(princ)
(prompt "\nStarten mit CVPL")
(princ)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP