| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Koordinaten bei einer Polylinie berechnen (2192 mal gelesen)
|
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 19. Mrz. 2003 21:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, gibt es eine möglichkeit bestimmte Koordinaten von einer LWPolylinie zu errechnen? Bsp.: Ich möchte ein Objekt 200 cm vom Startpunkt der LWPolylinie anbringen. Wie kann ich die X und Y Werte erhalten? Schomal danke! Adrian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002 LT-2021, Civil3D-2021, BricsCAD V18 HP-DesignJet T1200
|
erstellt am: 20. Mrz. 2003 10:47 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
|
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 20. Mrz. 2003 11:41 <-- editieren / zitieren --> Unities abgeben:
Mit dem Kreis habe ich schon ausprobiert. Problem ist, wenn die Polylinie Wellenförmig ist, d. h. positive und negaive bulgen, funktioniert das mit dem Kreis (befehl: intersectWith) nicht richtig. Ich will ja die Koordinaten alle 200 cm entlang der PLinie errechnen. Dachte, dass es vielleicht irgendeine Formel gibt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002 LT-2021, Civil3D-2021, BricsCAD V18 HP-DesignJet T1200
|
erstellt am: 20. Mrz. 2003 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
"Bulgen" ?? Ich nehme an, dass die Kurve dann wohl auch noch ausgerundet ist - dann dürfte es wohl schwierig werden. Wenn überhaupt, könnte dann nur noch eine Lisp-Lösung (mit Extender) funktionieren. Dann solltest du die Frage wohl nochmal im AutoCad-Forum posten. Da kann dir wohl eher jemand helfen. Mathias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 20. Mrz. 2003 12:09 <-- editieren / zitieren --> Unities abgeben:
|
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002
|
erstellt am: 20. Mrz. 2003 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
|
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 20. Mrz. 2003 12:52 <-- editieren / zitieren --> Unities abgeben:
Ich suche eigentlich in eine Formel oder Funktion in Visual Basic für ein Makro. Ich habe ein Funktion zur Berechnung der Länge einer LWPolylinie, wollte diese dann umstellen, was aber nicht funktioniert. Trotzdem Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002
|
erstellt am: 20. Mrz. 2003 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
|
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 20. Mrz. 2003 12:59 <-- editieren / zitieren --> Unities abgeben:
|
caddi Mitglied CAD-Konstrukteur
Beiträge: 52 Registriert: 06.02.2003 Autocad 2004; Win XP; Pentium 4 CPU 2.40GHz 512MB Ram
|
erstellt am: 26. Mrz. 2003 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Vielleicht hab ich was wenn ichs richtig verstanden habe! Probiers doch einfach mit dem BKS!!!!! Setze das BKS an den Punkt von wo aus du es mit... einsetzen willst! Dann Verschiebe einfach das BKS um die Koordinaten und füge ein! Vielleicht konnt ich dir ja weiterhelfen! Gruß Sebastian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 26. Mrz. 2003 20:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für den Tipp, aber hier sind auch einige rundungen (bulgen) vorhanden. Ich probiere es schon seit zwei/drei Tagen mathematisch in vba zu lösen, bisher ohne Erfolg. Man muss hier Dreiecke erstellen usw. Im Internet habe ich schon einges entdeckt, aber nur bei einer Rundung. Für mehreren bulgen konnte ich noch nichts finden. Gruß Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD
|
erstellt am: 26. Mrz. 2003 21:22 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
|
andi2050 Mitglied
Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 26. Mrz. 2003 22:43 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Hi Adrian Kenne mich in VB nicht besonders aus (mehr in LISP), und kann Dir nur einen Ansatz zur Problemlösung bieten. Ich habe mir mal ein Programm zur Abwicklungsberechung geschrieben, das war ähnlich. Ich gehe davon aus, daß Du die einzelnen Stützpunkte der PLINE in einer Variablen, Liste oder Array gespeichert hast. 1.Die wandelst Du Dir in einzelne Segmente (Linien und Bögen)um. evtl. ein Array bilden: - Segmentlänge - Startpunkt - Endpunkt - bei Bögen zusätzlich Radius, Zentrum, Eingeschlossener Winkel und Bogenrichtung (CW/CCW) 2.Nun fängst Du beim 1.Segment an die einzelnen Segmentlängen zusammenzuzählen, bis die Summe >= 200 ist. Dann hast Du das Segment, auf dem sich Dein 1.Punkt befindet. 3. 'Überlauf' zu 200 ermitteln. (Summe minus 200) 4. Diesen Wert auf dem Segment vom Segmentendpunkt aus zurück rechnen und Koordinaten des 1. gesuchten Punktes ermitteln. (Bei Linie einfach, bei Bogen siehe weiter unten) 5. Jetzt wieder eine Segmentlänge nach der anderen zu dem Wert aus Punkt 3 dazuzählen bis wieder >= 200 erreicht ist -> weiter bei Punkt 3.....bis Pline zu Ende "Einfach" an der Pline 'entlanghangeln'. Punkt 4 dürfte Mathematisch am schwierigsten sein. Für die Koodinaten baruchst Du den Winkel zwischen Bogenzentrum-Bogenendpunkt und Bogenzentrum-gesuchter Punkt, dann kannst Du vom Bogenendpunkt aus den gesuchten Punkt ermitteln (Bogenrichtung beachten !). Vielleicht helfen folgende Formeln: Winkel = Bogenlänge / Radius Eingeschlossener Winkel = abs (4*atan(BULGE)) Bogenlänge = Radius * Eingeschlossener Winkel Die Berechung des Radius und Zentrums könnte ich Dir aus meinem Abwicklungstool rauspfrimeln, wenns hilft...dauert aber ein bisserl... Alle Winkel im Bogenmaß ! Ich hoffe, Du kannst mit der konfusen Beschreibung was anfangen. Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wklemens Mitglied Systemingenieur
Beiträge: 383 Registriert: 02.09.2002
|
erstellt am: 26. Mrz. 2003 23:30 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Hallo! Da gibts interessante VisualLisp-Funktionen, die mit (vlax-curve-...) anfangen. Einfach in der Hilfe mal nachlesen. Da gibts richtige Wunderbefehle !! (vlax-curve-getPointAtDist curve-obj dist) müßte die Lösung sein. Geht aber nur in AutoCAD, nicht mit dem Extender unter LT! ------------------ Grüße aus Linz
Willi Klemens MCDS Datensystem GmbH www.mcds.net [Diese Nachricht wurde von wklemens am 26. März 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adrian92 Mitglied
Beiträge: 12 Registriert: 19.03.2003
|
erstellt am: 27. Mrz. 2003 08:47 <-- editieren / zitieren --> Unities abgeben:
WOW, danke an alle. Ich habe AutoCAD 2000. Ich sagte doch, dass ich wahrscheinlich falsch gelandet bin. Aber trotzdem danke nochmal an alle. Ich werde es mal testen. Mit Lisp kann ich nichts anfangen. Ich muss das mit VBA lösen. Gruß Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD
|
erstellt am: 27. Mrz. 2003 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Hallo adrian, in Lisp ist das eine Zeile (vlax-curve-getPointAtDist splineObj 200.0) Da das eine vlax-Funktion ist, kann ich mir vorstellen, dass es in VB auch eine Funktion geben wird. Nur kenne ich mich dort nicht aus Vielleicht hilfts dir beim Suchen. Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Neue Tool's im Free-&Download Zugang zum Download schon gesichert? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002
|
erstellt am: 27. Mrz. 2003 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Zitat: Original erstellt von wklemens: Hallo! Da gibts interessante VisualLisp-Funktionen, die mit (vlax-curve-...) anfangen. Einfach in der Hilfe mal nachlesen. Da gibts richtige Wunderbefehle !! (vlax-curve-getPointAtDist curve-obj dist) müßte die Lösung sein. Geht aber nur in AutoCAD, nicht mit dem Extender unter LT!
Was das anbelangt hat Lisp VBA überholt, die vlax Funktionen leiten sich aus ARX ab, dort kann man mit Polylinien so ziehmlich alles machen. ------------------ Bernd Cuder Cad&Co makes CAD easy - z.B. Applikation für lineare Bemaßung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 28. Mrz. 2003 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für adrian92
Hi Hm, VL-Funktionen genial... Hab mich bisher vor dem Objekt gewühle gedrückt. Werde mich aber jetzt mal reinarbeiten, damit hätte ich mir bisher wohl schon viel Arbeit und Hirnschmalz sparen können. War zwar keine Frage von mir, trotzdem Danke für den Tip... Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |