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

Zeichne Polyline aus einer Liste mit Zyklus

  • Ersteller Ersteller carry
  • Erstellt am Erstellt am

carry

Guest
hi.
ich habe eine liste von tausend punkten, wie kann ich eine polylinie mit einem zyklus erstellen, der alle punkte in der liste erholt?
oder
(setq listpoints (list 1.0 1.0 0)(list 2.0 0)(list 3.0 3.0 0)(list 4.0 0));angabe der punkteliste

(setq np 0)
(setq n (längenlisten)); anzahl der punkte

(befehl "_pline" 0.0.0 (nth np listpoints) ; ja hier ok
; hier wie es weitergeht
(repeat np list) (setq np (1+ np)))

danke.
 
Code:
(Befehl "_pline")
(mapcar (funktion (lambda ( x ) (befehl x))) listapunti
(Befehl)


oppure:

(Befehl "_pline")
(Repeat (setq n (längelisteapunti))
(befehl (nth (setq n (1- n)) listapunti))
)
(Befehl)
im zweiten fall beginnt das poly vom letzten listenpunkt-gipfel, an der grenze, die sie die liste umkehren.


wenn sie jedoch tausend punkte behandeln, sollten sie ein poly mit entmake erstellen
Code:
(entmake)
(beifall)
(Liste)
'(0 . "lwpolyline")
"(100. "akku")
'(100 . "acdbpolyline")
(cons 90 (längelisteapunti))
(70). 0)
)

(foreach pt listapunti (setq lp (liste (cons 10 pt)))))

)
)
 
@ gp
ich versuche, die punkte und die polylinie der drei methoden zu zeichnen,
die ersten beiden arbeiten, punkte und polylinea zusammenfallen
für den dritten gibt es ein problem
der ursprung der polylinea gegenüber den punkten bewegt wird, obwohl die form genau ist
weißt du, worum es hier geht?
hi.
 
die koordinatensysteme der vergangenen punkte auf funktionen zu ändern, befehl zieht mit ucs koordinaten, während entmake global sind.

wenn ihre koordinaten global waren, würden sie keinen unterschied in der gestaltung des poly zwischen den beschriebenen methoden finden, sondern sie sollten sie mit trans konvertieren.

wie funktioniert die situation?
 
hallo und danke für die antwort
in der tat verlagere ich den ursprung der ucts, jetzt versuche ich, die punkte mit trans zu konvertieren.
danke.
 
hi.
ich fügte die trans von ucs 1 bis wcs 0 hinzu und funktioniert nur auf dem wcs plan, aber nicht in der 3d
irgendeine idee?
danke.

(setq list points (list 100.0 100.0 0)(list 200.0 200.0 0)(list 300.0 300.0 0)(list 400.0 400.0 0));creo list points
(sing)
(beifall)
(liste)
'(0 . "lwpolyline")
'(100. "akku"
'(100 . "acdbpolyline")
(cons 90 (längenlistenpunkte)
(70). 0)
)
(fort pt listpoints (setq lp (append lp (list 10 (trans pt 1 0))))))
)
)
 
zur entmake-funktion müssen sie auch die richtung der extrusion von theucs hinzufügen, code 210. in der liste gibt es eine funktion namens (ucszdir), die den wert der richtung der extrusion zurückgibt. da ein lwpolyline z in code 43 angegeben hat, können sie es sicher in der punkteliste auslassen.

hier die richtige funktion:

(defun c:poll (/ lp listpoints)
(einzellistenpunkte)
(liste 100.0 100.0)
(liste 200.0 200.0)
(liste 300.0 300.0)
(liste 400.0 400.0)
)
)
(sing)
(beifall)
(liste)
'(0 . "lwpolyline")
'(100. "akku"
'(100 . "acdbpolyline")
„(43. 0)
(cons 90 (längenlistenpunkte)
(70). 0)
(cons 210 (ucszdir)
)
(jeder elem listpoints (setq lp (append lp (list (cons 10 elem)))))
)
)
)

(defun ucszdir)
(setq pon1 (trans (list 0 0 0) 0)
pon2 (car pon1) (cadr pon1) (+ (cadddr pon1) 1)
ucsz (trans pon2 1 0)
)
)

die entmake funktion gibt eine einheit mit koordinaten zurück, die durch den code 210 spezifiziert sind, nicht nur globale.
 

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