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

Diskutieren Sie ein Polyline mit konstanten Ascisses

  • Ersteller Ersteller Counterblow Hammer
  • Erstellt am Erstellt am

Counterblow Hammer

Guest
guten morgen!

sind ein mechanischer experte im bereich des treviso, der sich mit heißprägung beschäftigt.

ich implementiere derzeit ein system zur bestimmung der achsometrischen stücke, die mich vor folgendem problem stellen: diskutieren eine polylinie mit konstanten ascisses. in der praxis: ich nehme eine polylinie, das lange projekt y auf der x-achse und erhalten eine linie; ich entscheide diese linie in n punkten; danach müsste ich entlang y solche punkte neu gestalten bis meine ausgangspolyline. ich habe bereits eine lippe, um die x-y-koordinaten solcher punkte zu extremisieren.

ich bitte diejenigen, die mehr über mich wissen, wenn sie eine idee haben, dies zu tun; oder eine andere möglichkeit, das gleiche ergebnis oben beschrieben zu bekommen.

vielen dank im voraus!
 
zahlen geben die reihenfolge der auszuführenden schritte an.

denken sie daran, dass solche arbeiten mit einer reihe von punkten kaum weniger als 100 tun sollten. .
 

Anhänge

ich hoffe, ich verstehe, ob der deckel ihr fall ist.
Code:
(Defun c:dpoly)

(vl-load-com)
(Prompt "\n*)
(setq _poly (vlax-name->vla-object))
(falls)
(/= (vlax-get _poly 'objectname) "acdbpolyline")
(/= (vlax-get _poly 'objectname) "acdb2dpolyline")
)
(Prog.)
(alert "das oggetto selezionato non è una polilinea 2d ")
(auszug)
)
)
(Prompt "\n*)
(setq n_div (getint "\nnumero di divisioni orizzontali "))
(setq p1 (vlax-curve-getstartpoint _poly))
(setq p2 (vlax-curve-getendpoint _poly))
(setq p3 (list (min (car p1) (car p2)) 0,0)
(setq p4 (list (max (car p1) (car p2))
(setq div (/ (abstand p3 p4) n_div)
(Ersatz p5 p3)
(Peat)
(Setq p5 (polar p5 0 div))
(entmake)
(Liste)
(cons 0 "line")
(cons 8 (getvar "clayer")
(cons 10 p5)
(cons 11 (polar p5 (/ pi 2) 1,0))
)
)
(setq lin_v)
(setq p_int (vlax-invoke (vlax-name->vla-object lin_v) 'intersectwith _poly acextentisity))
(entdel lin_v)
(entmake)
(Liste)
(cons 0 "point")
(cons 8 (getvar "clayer")
(cons 10 p_int)
)
)
)
)
 
ich hoffe, ich verstehe, ob der deckel ihr fall ist.
Code:
(Defun c:dpoly)

(vl-load-com)
(Prompt "\n*)
(setq _poly (vlax-name->vla-object))
(falls)
(/= (vlax-get _poly 'objectname) "acdbpolyline")
(/= (vlax-get _poly 'objectname) "acdb2dpolyline")
)
(Prog.)
(alert "das oggetto selezionato non è una polilinea 2d ")
(auszug)
)
)
(Prompt "\n*)
(setq n_div (getint "\nnumero di divisioni orizzontali "))
(setq p1 (vlax-curve-getstartpoint _poly))
(setq p2 (vlax-curve-getendpoint _poly))
(setq p3 (list (min (car p1) (car p2)) 0,0)
(setq p4 (list (max (car p1) (car p2))
(setq div (/ (abstand p3 p4) n_div)
(Ersatz p5 p3)
(Peat)
(Setq p5 (polar p5 0 div))
(entmake)
(Liste)
(cons 0 "line")
(cons 8 (getvar "clayer")
(cons 10 p5)
(cons 11 (polar p5 (/ pi 2) 1,0))
)
)
(setq lin_v)
(setq p_int (vlax-invoke (vlax-name->vla-object lin_v) 'intersectwith _poly acextentisity))
(entdel lin_v)
(entmake)
(Liste)
(cons 0 "point")
(cons 8 (getvar "clayer")
(cons 10 p_int)
)
)
)
)
ein drache!

vielen dank!...
 
eine andere weise, unter den vielen, das problem zu lösen, im bereich der visuallisp.
ich benutze normalerweise gespräche für persönliche zwecke, um neue funktionen auszuprobieren; auf diese weise komme ich jedoch immer zu spät, um eine lösung zu schaffen; ich hoffe zumindest, dass sie als punkt für andere dient.
 

Anhänge

eine andere weise, unter den vielen, das problem zu lösen, im bereich der visuallisp.
ich benutze normalerweise gespräche für persönliche zwecke, um neue funktionen auszuprobieren; auf diese weise komme ich jedoch immer zu spät, um eine lösung zu schaffen; ich hoffe zumindest, dass sie als punkt für andere dient.
arbeitet, aber mit einem kleinen problem: es nimmt die divisionen auf der gegenüberliegenden seite der polylinea. in dem sinne, dass es vom extremen finale beginnt und sich dann zu den positiven ascisse entwickelt, das ist von dem teil, wo die polylinea nicht existiert...
 
definitiv ihre polylinea wurde von rechts nach links entworfen.
dies ist der geänderte code.
natürlich werden die punkte von rechts nach links zurückgegeben; wenn sie wollen, dass sie von rechts nach rechts sortiert ist es genug, um das ende des codes hinzuzufügen:
(setq pts)
 

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