• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Berechnen Sie den Abstand von Punkten von einer Polylinea

  • Ersteller Ersteller wind_skin
  • Erstellt am Erstellt am

wind_skin

Guest
hallo, ich frage sie experten, ob es eine lisp-anwendung für autocad gibt, die es erlaubt, bei einer sequenz von punkten 2d in einer textdatei enthalten, den abstand jedes dieser punkte von einer in einem design enthaltenen polylinie zu messen und dann solche entfernungen in eine andere textdatei zu exportieren. genau, dass punkte nicht zu polylinea gehören.
danke im voraus.
 
einen dwg mit einem beispiel befestigen.
ich verstehe nicht, was sie mit abstand von einer polylinie meinen.
eine polylinea kann durch mehrere linien gebildet werden, der punkt ist vom ersten segment a und vom zweiten segment b, was betrachtet werden soll?

bye
 
zunächst danke ich ihnen für ihre sorge.
polylinea ist eine straßenbahn und besteht daher aus linien, bögen von umfang und übergangskurven: in der synthese ist eine offene lwpoliline. die punkte, von denen ich spreche, gehören nicht zu der polylinea, die zur straßenachse ist, sondern von außen. ich möchte eine lisp-anwendung erstellen, die den abstand jedes dieser punkte aus der oben genannten polylinea berechnet. die operation ist sehr einfach, wenn in bezug auf autocad-befehle gesehen, aber es ist nicht (zumindest für mich), wenn in bezug auf anweisungen lisp gesehen.
danke im voraus.
 
daher sollten entfernungen als senkrecht zu polylinea berechnet werden? oder besser, als mindestabstand?
ich denke darüber nach und lass dich wissen.

bye
 
ihre punkte müssen in plan 0 sein.
der befehl ist l2plw.
der schritt ist für die genauigkeit bei der berechnung der entfernungen grundlegend, zu großer wert würde fehler verursachen, zu klein würde die ausführung der berechnung verlangsamen. ein idealer wert könnte das kleinste segment der geteilten polylinea 10 sein.
for now the program draws a line from the point to the lot of polylinea.
sehen, ob es funktioniert, dann vervollständigen wir es.

bye
 

Anhänge

sie könnten sich auf jeden punkt der liste bewerben, sofern dieser teil des codes(setq pt-cl (vlax-curve-getclosestpointto pl pt))
(setq dist)
wobei pl= polylinea der berichterstattung
pt = der äußere punkt von polylinea
pt-cl= der nächste punkt zu pt, auf polylinea
 
1) ich habe wohl verstanden, dass die punkte noch nicht in der zeichnung liegen, sondern in einer externen datei geschrieben sind, aber wenn sie eine vollständige antwort möchten, müssen sie angeben, wie die punkte in der datei txt strukturiert sind
2) "wind" fragt auch, alle entfernungen in einer externen datei zu speichern
3) der vlax-.... und ähnliche befehl akzeptiert als beide wesen und objekte, so dass keine umwandlung erforderlich ist

aber vielleicht "absichtlich" rpor66 löste nur das "herz" des problems, so dass sie (oder andere) die fertigstellung der routine.
 
danke für ihre sorge. ich versuche deine lösungen und lass dich wissen. ich habe bereits erkannt, dass der programmteil, der die punkte aus der textdatei liest; was ich vermisse ist die anweisung zur berechnung des abstandes von punkten (nicht zu polylinea gehören) von der polylinea selbst. ich habe nichts damit zu tun gefunden. ich versuche immer noch deine lösungen und bringe dich zu den ergebnissen.
danke noch mal!
 
ich hänge zwei dateien in der zip-datei namens "distanze-polilinea.zip" an:
- eine datei namens "distanze-polilinea.dxf", in der eine zusammenfassung des problems vorliegt
- eine datei namens "distanze-polilinea.lsp", die ich versuche zu schreiben (anmerkung: bevor sie die folgenden gelesen hat, weil sie zwei textdateien in c:\ !!!) erstellt.
wie bereits erwähnt, möchte ich die abstände externer punkte auf eine offene polylinie berechnen als die gleiche polylinie.
das ideal wäre, wenn solche entfernungen durch ein zeichen "+" oder "-" vorangegangen würden, je nachdem, ob sie über oder unter der polylinie liegen.
ich drücke, dass das programm, das ich schreibe, wie folgt funktioniert:
1) startet mit dem befehl "distanze"
2) fragt, um das polygon auszuwählen (ich habe es in der beigefügten dxf angezeigt)
3) wählen sie die spurachse aus (ich habe sie in der beigefügten dxf angezeigt)
4)cries, um den block auszuwählen, der auf der oberseite des polygonalen platziert wird (ich habe es in der beigefügten dxf angezeigt)
5) benötigt die anzahl des ersten blocks (teile sowie 1)
6) diesen block in die oberseiten des polygonalen und der numera schrittweise einfügen
7) erstellt die datei "vertical-polygonal.txt" im hauptordner der festplatte (c:\vertical-polygonal.txt), die die x,y koordinaten der polygonalen vertices enthält.
8) erstellt die datei "distanze.txt" im hauptordner der festplatte (c:\distanze.txt), die die anzahl des blocks und die gesuchte distanz enthalten soll (aber nur die anzahl des blocks enthält, weil ich nicht weiß, wie ich für die distanz zu tun habe), getrennt vom zeichen "!" (ich muss bei excell bleiben)

ich hoffe, sie können mir helfen und ihnen nochmals danken!
 

Anhänge

dann gelang es mir dank ihrer beratung, die distanzen zu berechnen. ich hänge die datei an und erinnere sie daran, dass "schreiben auf der festplatte c:" und dann " seien sie vorsichtig!"
aber ich habe immer noch das problem, ein zeichen "+" oder "-" je nach den punkten oberhalb oder unterhalb der strecke hinzuzufügen: würdest du mir dabei helfen?
du warst kostbar! (danke rpor66 und joseph)
 

Anhänge

in einer straßenbahn sagen "sopra" oder "unter" ist relativ, wenn dann die spur ist die eines stromkreises.........
versuchen, über versatz eine zu dem haupt parallele polylinie zu erstellen, berechnet den abstand auch auf diesem, wenn es niedriger ist + sonst ist es -, oder umgekehrt.

bye
 
auf andere weise: (unter verwendung der symbole meines vorherigen beitrags)
- das derivat wird zunächst (vlax-curve-getfirstderiv) im pt-cl-punkt und dem entsprechenden winkel berechnet (was auch der tangente an diesem punkt ist)
- der winkel "ang2" des segments berechnet wird (pt pt-cl)
- je nachdem, ob ang2 magg oder min von ang1 ist, befindet sich der pt-punkt auf beiden seiten der polylinea

alles in code übersetzen
gute nacht
 
joseph, ich versuchte mit der methode der ableitung, aber das ergebnis ist nicht der, der hofft, wie es immer positive werte liefert. vielen dank auch: die lösung wäre sehr elegant gewesen.
sag hallo.
 
ich entschuldige mich demütig für joseph, aber es gibt ein kleines detail.
in der tat ist es eine optimale und elegante lösung, wenn nicht für ein kleines detail:
der winkel ag2 wird immer größer als der winkel ag1 sein. die einzige variante ist, dass die differenz zwischen den beiden ecken nur 90° oder 270° betragen kann. mit diesen räumlichkeiten modifizierte ich die lispe und jetzt können die entfernungen positiv oder negativ sein.

nb: der anfangspunkt des derivates ist nicht, wie sie glauben könnten, der punkt auf der achse, aber es ist immer auf den koordinaten 0,0.0.
 

Anhänge

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben