Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Klotoiden konstruieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Klotoiden konstruieren (2849 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 19. Nov. 2013 13:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich möchte mir mit einfachen Mittel ein Tool schaffen, welches mir hilft Klotoiden zu zeichnen. Ich weiss, gibt´s schon in den Dachextensions: brauche aber nur das (will mir meine Ribbons nicht unnötig füllen mit Funktionen, die ich nicht brauche).

So zunächst stecke ich noch in den Kinderfüssen... Veilleicht kann mir jemand einen Vorschlag geben einen guten Anfang zu finden. Ich habe mittlerweile einige Szenarien getestet.

1) Zeichne zwei Kreise und hefte diese anhand ihrer Radien tagential an Anfangs- und Endlinie

2) Zeichne zwei Kreise in einem bestimmten Verhältnis zu einander (Radien) an Anfangs- und Endlinie

3) Konstruiere zwei Kreise mit festgel. Radius an Anfangs- und Endlinie und verschiebe deren Centrumpunkte bis alle Geometrieen tagential zueinander verlaufen

Alle 3 Wege brachten mich zu keinem brauchbaren Ergebnis

Meiner Meinung könnte der letzte Versuch funktionieren, indem ich den zweiten Kreis bezügl. dem ersten tangential zeichnen lasse... ?

Code:
(defun c:foo ( /
      SELECTOBJ
      radS radE
      line1 line2
      angA angB
      entA entB
      )
 
  (defun selectObj (quest typ / ent)
    (setq ent nil)
    (while (not ent)
      (if (not (setq ent (entsel (strcat quest typ))))
(princ (strcat "\n Falsch oder nichts gewählt"))
(if (= (cdr (assoc 0 (entget (car ent)))) typ)
  ent
  (progn
    (setq ent nil)
    (princ (strcat "\n Wähle ein/e " typ " aus!"))
  )
        )
      )
    )
    )
  (if (and (setq line1 (selectobj "\n Wähle eine Anfangs" "LINE"))
  (setq line2 (selectobj "\n Wähle eine End" "LINE"))
  (while (not radS)
    (if (/= nil (setq radS (getreal "\n Gib einen StartRadius ein! ")))
      (progn
(setq radS (abs radS))
(while (not radE)
  (if (/= nil (setq radE (getreal "\n Gib einen EndRadius ein! ")))
    (setq radE (abs radE))
    (progn
      (setq radE nil)
      (princ "\n Falsche Eingabe")
      )
    )
  )
)
      (progn
(setq radS nil)
(princ "\n Falsche Eingabe")
)
      )
    )

      )
    (progn
      (command "_CIRCLE" (polar
  (car (interss (car line1) (car line2)))
  (+ (* 3 (/ pi 2)) (setq angA (angle (cdr (assoc 10 (entget (car line1)))) (cdr (assoc 11 (entget (car line1)))))))
  radS
  )
      radS
      )
      (setq entA (entlast))
      (command "_CIRCLE" (polar
  (car (interss (car line1) (car line2)))
  (+ (* 3 (/ pi 2)) (setq angB (angle (cdr (assoc 10 (entget (car line2)))) (cdr (assoc 11 (entget (car line2)))))))
  radE
  )
      radE
      )
      (setq entB (entlast))
    (setq i 0 lst '())
    (while (= "" (getstring "\n Schiebe kreise"))
      (setq lst (interss entA entB))
      (entmod (subst (cons 10 (polar (cdr (assoc 10 (entget entA))) (+ pi angA) (setq i (+ i 0.001))))
      (assoc 10 (entget entA))
      (entget entA)
      )
      )
      (entmod (subst (cons 10 (polar (cdr (assoc 10 (entget entB))) angB (setq i (+ i 0.001))))
      (assoc 10 (entget entB))
      (entget entB)
      )
      )
      )
    )
  )
  )


------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Nov. 2013 13:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

du weißt was eine Klothoide ist?
Eine Klothoide hat die Eigenschaft an einer jeden Stelle einen anderen Radius zu besitzen. Du kommst folglich mit den 2 Kreisen nicht sehr weit.

Du kannst lediglich die Punkte einer bestimmten Klothoide mit dem Startradius und dem Endradius und dem notwendigen Klothoidenparamter berechnen und die berechneten Punkte miteinander zu einer Polylinie verbinden. Auch das ist nur eine Annäherung, die Genauigkeit kannst du mit der Anzahl der berechneten Koordinaten festlegen.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 19. Nov. 2013 14:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Klotoide klar!

Ich möchte nur keine Wissenschaft daraus machen, ich weiss, da gibt es ganz heisse Formeln zur Berechnung von Klotoiden
Mir geht es nur darum "hübsche" geometrische Ausrundungen hinzubekommen, d.h. bspw. mehrere Bögen unter Vorgabe eines Radius und einer Länge aneinander zu reihen.

Mir kam jetzt ein Einfall, dem ich weitergehen werde. Bei Eingabe von Polylinien lassen sich Bogenelemente unter Berücksichtigung der Radien konstruieren... damit hätte man schon ein brauchbares Resultat
$_pline
$Specify start point:
$Specify next point or [Arc/Halfwidth/Length/Undo/Width]:
$Specify next point or [Arc/Halfwidth/Length/Undo/Width]:a
$Specify endpoint of arc or
$[Angle/CEnter/CLose/Direction/Halfwidth/Line/Radius/Second pt/Undo/Width]:r
$Specify radius of arc: 20
$Specify endpoint of arc or [Angle]:

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 19. Nov. 2013 17:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Mal bißchen googeln und Du findest etliche Lisp-Routinen, die Klothoiden zeichnen.
(z.B. http://ww3.cad.de/foren/ubb/Forum54/HTML/009188.shtml#000014)


Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 20. Nov. 2013 14:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Gut Link - Danke!

------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz