Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Kreise tangential verbinden (Lisp o.ä.)

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:  Kreise tangential verbinden (Lisp o.ä.) (9311 mal gelesen)
walter.f
Mitglied
Orgelbauer


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

Beiträge: 918
Registriert: 28.04.2005

erstellt am: 17. Mrz. 2011 09:54    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


Kreistangenten.png

 
Hallo!

Ich suche eine Möglichkeit, automatisiert (d.h. durch Anklicken derselben) jeweils zwei Kreise mit tangentialen Linien zu verbinden und dann die "inneren" Kreisanteile herauszustutzen. Die Kreise können sowohl gleichen als auch verschiedenen Durchmesser haben, liegen in verschiedensten Richtungen zueinander und können sich auch überschneiden. Hat schonmal jemand hierfür ein LISP o.ä. gesehen? Ich habe jetzt eine Weile gesucht, konnte bisher aber leider nichts finden...
Es geht darum, Bohrungen durch eine Fräsung miteinander zu verbinden. Das sollte doch eigentlich hier und da mal vorkommen... Pro Projekt sind das bei mir schonmal ca. 1000 Kreispaare, das ist "zu Fuss" eine elende Klickerei:-(

Gruß, Walter

------------------
FAQ     Hilfe zum Dateiupload
Systeminfo anpassen

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Mrz. 2011 10:01    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 walter.f 10 Unities + Antwort hilfreich

naja .. Fertiges ist mir leider in der Hinsicht auch nichts bekannt .. aber ist ja bloß ein wenig Mathe ...  also durchaus umsetzbar,.. wenn wohl auch nicht in einem 10-Zeiler.

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Dig15
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. für Markscheidewesen und Geodäsie



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

Beiträge: 5833
Registriert: 27.02.2003

DWG TrueView 2014

erstellt am: 17. Mrz. 2011 10:26    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 walter.f 10 Unities + Antwort hilfreich

Hallo Walter,

wie genau muss die tangentiale Linie sein? Mit dem Befehl abrunden kannst Du Kreise "verbinden". Als Radius musst Du da einen sehr hohen Wert nehmen (im Vergleich zum Kreisradius). Dann wir es annähernd eine Gerade und die Ansatzpunkte sind auch annähernd tangential. Aber eben wie gesagt: nur eine Annäherung.

------------------
Viele Grüße Lutz

Glück Auf!

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 17. Mrz. 2011 11:09    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 walter.f 10 Unities + Antwort hilfreich

Es ist etwa ne halbe stunde Arbeit, dafür was Vernünftiges zu programmieren -
hier mal nur die Mathematik aufgeschrieben und ein paar commands aufgerufen - kein Errorhandling kein Ofang-Unterdrückung!
Code:
(defun C:KTANV( / dm e1 e2 k1 k2 m1 m2 p1 p2 r1 r2 rd sk win winm wint)
  (prompt "Kreise tangential verbinden\n")
  (setq k1 (car (entsel "Kreis 1 (groß) wählen:"))
        k2 (car (entsel "Kreis 2 (klein) wählen:"))
e1 (entget k1)
r1 (cdr (assoc 40 e1))
m1 (cdr (assoc 10 e1))
e2 (entget k2)
r2 (cdr (assoc 40 e2))
m2 (cdr (assoc 10 e2))
dm (distance m1 m2)
rd (- r1 r2)
win (atan rd dm)
winm (angle m1 m2)
wint (- (+ winm (* 0.5 PI)) win)
P1 (polar m1 wint r1)
P2 (polar m2 wint r2)
  )
  (command "_Line" p1 p2 "")
  (setq sk (ssadd (entlast)))
  (command "_mirror" (entlast) "" m1 m2 "_N")
  (setq sk (ssadd (entlast) sk))
  (command "_trim" sk "" (list k1 (polar m1 winm r1)) (list k2 (polar m2 winm (- r2)))"")


------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

walter.f
Mitglied
Orgelbauer


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

Beiträge: 918
Registriert: 28.04.2005

erstellt am: 17. Mrz. 2011 11:30    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

Hallo und danke für Eure Antworten!

@CADmium: ich bin mir auch sicher, dass es geht, nur bevor ich mich stundenlang hinsetze und versuche, etwas zu basteln, wollte ich halt erstmal fragen, ob es sowas schon gibt...

@Dig15: auf die Idee, dass man Kreise "abrunden" kann, wäre ich niemals gekommen...;-) Von der Genauigkeit würde das für meine Zwecke immer reichen. Es nutzt nur leider nicht viel, weil ich dadurch auch nicht weniger klicken muss...

Gruß, Walter

------------------
FAQ     Hilfe zum Dateiupload
Systeminfo anpassen

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

walter.f
Mitglied
Orgelbauer


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

Beiträge: 918
Registriert: 28.04.2005

Autocad 2016 SP1
sPlan 7.0
Win 8.1 Pro
HP Z820
Quadro K5000
XEON E5-2643 @ 3,30GHz
128 GB Ram

erstellt am: 17. Mrz. 2011 11:47    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

CAD-Huebner schrieb:
Zitat:
Es ist etwa ne halbe stunde Arbeit, dafür was Vernünftiges zu programmieren -

Hallo Udo!

...das gilt für DICH und ein paar andere Profis hier! Ich hätte da sicher deutlich länger dran gesessen!

Vielen Dank! Das ist genau das, was ich gesucht habe! Dein Beitrag widerspricht zwar eigentlich dem Forumsgedanken, nur Hilfe zur Selbsthilfe zu leisten, aber in diesem Fall will ich mich ausnahmsweise nicht beschweren;-)...

Gruß, Walter

------------------
FAQ     Hilfe zum Dateiupload
Systeminfo anpassen

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

walter.f
Mitglied
Orgelbauer


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

Beiträge: 918
Registriert: 28.04.2005

erstellt am: 25. Mrz. 2011 15:03    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


Kreisproblem_2004.dwg.txt

 
Hallo!

Nochmals herzlichen Dank an Udo! Die Lisp-Routine funktioniert im Prinzip prima (nur die Ofang-Deaktivierung muss ich noch einbauen...)

Nun habe ich aber ein Problem festgestellt, auf das ich mir keinen rechten Reim machen kann. Da ich Udo nicht persönlich damit belästigen will, hier mein Problem für die Allgemeinheit:

bei vielen Kreispaaren (gleiche oder verschiedene Durchmesser) wird der zweite Kreis nicht an den Tangenten gestutzt. In der Kommandozeile kommt die Meldung, das Objekt berühre keine Kante. Kann sich da jemand eine Ursache vorstellen?

Wenn ich die Tangenten z.B. dehne oder mit "Abrunden" über den Kreis hinaus verlängere, geht es?? Die Tangenten scheinen zu kurz zu sein...

Wenn ich so weit wie möglich heranzoome, sehe ich eine Lücke zwischen Tangente und resultierendem Bogen (kleiner als in Autocad in Zahlenwerten darstellbar). Bei einigen Objekten wird sie scheinbar toleriert, bei anderen nicht. Kann ich das beeinflussen?

Objektfang und Objektfangspur sind aus. Ich befinde mich nicht in extremen Koordinatenbereichen.

Vielleicht fällt ja jemandem auf Anhieb etwas ein... Eine Testdatei ist im Anhang, einfach das ".txt" weglöschen! Das Lisp zum Testen steht weiter oben. Damit kann ich bei mir die beiden Kreise links oben erfolgreich verbinden, die beiden unteren nicht. Über dem Strich sind die Kreise "unbearbeitet".

Gruß, Walter

------------------
FAQ     Hilfe zum Dateiupload
Systeminfo anpassen

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 25. Mrz. 2011 15:31    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 walter.f 10 Unities + Antwort hilfreich

Da wirken sich wohl Rundungsungenauigkeiten beim Rückrechnen des Winkels aus dem Tangens des sehr schmalen Dreiecks aus.
Hier mal semiprofessionewll nachgebessert - einfach Linie mit aktiviertem Objektfang "Tangente" aufgerufen.

Code:
(defun C:KTANV( / dm e1 e2 k1 k2 m1 m2 os p1 p2 r1 r2 rd sk win winm wint)
  (prompt "Kreise tangential verbinden\n")
  (setq k1 (car (entsel "Kreis 1 (groß) wählen:"))
        k2 (car (entsel "Kreis 2 (klein) wählen:"))
        e1 (entget k1)
        r1 (cdr (assoc 40 e1))
        m1 (cdr (assoc 10 e1))
        e2 (entget k2)
        r2 (cdr (assoc 40 e2))
        m2 (cdr (assoc 10 e2))
        dm (distance m1 m2)
        rd (- r1 r2)
        win (atan rd dm)
        winm (angle m1 m2)
        wint (- (+ winm (* 0.5 PI)) win)
        P1 (polar m1 wint r1)
        P2 (polar m2 wint r2)
  )
  ; Objektfang deaktivieren
  (if (= 0 (logior 16384 (setq os (getvar "OSMODE"))))
    (setvar "OSMODE" (+ os 16384))

  )
  ; Tangentenpunkte über Ofang fangen
  (command "_Line" "_tan" p1 "_tan" p2 "")
  (setq sk (ssadd (entlast)))
  ; Linie spiegeln
  (command "_mirror" (entlast) "" m1 m2 "_N")
  (setq sk (ssadd (entlast) sk))
  ; Kreise stutzen
  (command "_trim" sk "" (list k1 (polar m1 winm r1)) (list k2 (polar m2 winm (- r2)))"")
  ; Objektfang restaurieren
  (setvar "OSMODE" os)
  (prin1)
)

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

walter.f
Mitglied
Orgelbauer


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

Beiträge: 918
Registriert: 28.04.2005

erstellt am: 25. Mrz. 2011 15:43    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

Hallo Udo!

Super, so funktioniert es! Aber so richtig verstehen kann ich es nicht, dass es sich nur bei einigen Kreisen so auswirkt, bei anderen nicht. Verhältnis "klappt" zu "klappt nicht" sind geschätzte 4 zu 1. Denn die Winkel bewegen sich ja immer in einem sehr ähnlichen Bereich...

Mir war noch aufgefallen, dass der Befehl "Umgrenzung" die vorhandene Lücke bei den betroffenen Objekten "ignoriert". Da gibt es scheinbar eine größere (einstellbare?) Toleranz, wie auch beim Verbinden von Polylinien(?). Für das Stutzen scheint das nicht der Fall zu sein.

Gruß und schönes Wochenende!
Walter

------------------
FAQ     Hilfe zum Dateiupload
Systeminfo anpassen

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