Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Linienkontur versetzen

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:  Linienkontur versetzen (257 mal gelesen)
floppy
Mitglied


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

Beiträge: 7
Registriert: 26.09.2005

erstellt am: 26. Sep. 2005 19:08    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

Ich habe folgendes Problem:
Ich möchte in AutoLisp eine Kontur zusammenhängender Linien (keine Polylinien) versetzen, wobei jede Linie individuell um einen bestimmten Wert versetzt werden soll. Das lässt sich mit dem AutoCad Versetz-Befehl leider nicht machen, also muss ich das wohl oder übel in Lisp nachprogrammieren.
Ist im Prinzip ja gar nicht so schwer: Endpunkte der Linie ermitteln, Winkel ermitteln, zum Winkel 90 Grad dazurechnen (Kontur verläuft immer im Uhrzeigrsinn) und mittels Polar-Funktion die versetzten Punkte berechnen und dann in einem weiteren Durchgang mittels inters-Befehl das Ganze wieder zu einer zusammenhängenden Kontur verbinden.
Das Problem hierbei ist aber, dass bei der resultierenden Kontur ev. Linien wegfallen können, wenn sich das aus der Geometrie so ergibt - meine Frage deshalb, hat jemand einen Lösungsansatz wie man ermitteln kann welche Linien wegfallen oder ev. ein kleines Lisp-Beispiel auf Lager?
Vielen Dank!

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

Stelli1
Ehrenmitglied
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2013
Oracle 9i,10g,11g Enterprise
autodesk Topobase 2-2012
VS6, VS.net

erstellt am: 26. Sep. 2005 20:32    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 floppy 10 Unities + Antwort hilfreich


schnitte.gif

 
Hallo,

nachdem ich nochmal genau gelesen habe ....
.. würde ich es halt unter VB machen.

Linien der Kontur der Reihe nach in ein Array speichern.
(Die Reihenfolge könnte man auch automatisch ermitteln)
Mit Entity.Offset die jeweiligen Linien (individuel) versetzen.

Bei ersten Element beginnend mit "intersecWith" die Schnitte
mit dem nächsten und übernächsten Element rechnen.
Ist die Entfernung Anfangspunkt zum Schnittpunkt übernächstes
Element kleiner als die Entfernung Anfangspunkt zum Schnitt
nächstes ELement fällt das nächste Element aus der Kontur.

Stelli

------------------
Warum lisp'eln wenns's auch anders geht.

[Diese Nachricht wurde von Stelli1 am 26. Sep. 2005 editiert.]

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

floppy
Mitglied


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

Beiträge: 7
Registriert: 26.09.2005

erstellt am: 03. Okt. 2005 19: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

Erstmal Danke für die Antwort!

Ich finde, das man das in Lisp auch relativ einfach umsetzten kann und Lisp liegt mir halt bei AutoCAD einfach besser als VB.

Das eigentliche Problem ist aber zu bestimmen, welche Linien wegfallen.
Dein Lösungsansatz funktioniert zwar im beigefügten Beispiel, bei komplexeren Linienverläufen stimmt das Ergebnis aber nicht.
Ich denke, man muss von einer Linie ausgehen und diese mit allen anderen schneiden lassen. Von allen Linien die schneiden, "gewinnt" dann diejenige, die die Linie am kürzesten macht und mit dieser Linie gehts dann weiter, die dazwischenligenden Linien fallen weg.
Das Problem ist nur, wenn die Linie, von der ich ausgehe, eine Linie ist, die eigentlich wegfallen würde, dann ensteht eine falsche Kontur :-(

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