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

Verschieben Sie Punkte einer Punktewolke auf einer Linie oder Polylinie

  • Ersteller Ersteller totof
  • Erstellt am Erstellt am

totof

Guest
Guten Morgen.

Ich möchte wissen, ob Sie einen Weg kennen, die Punkte einer Wolke von Punkten auf einer einzigen interpolierenden Linie, eine Art Magnet zu positionieren, ohne den Punkt manuell auswählen und an die Linie heranfahren zu müssen. Danke!
 
Prüfen Sie dies, d.h. wenn die Linie zu kurz ist, werden die Punkte, die über Start/End gelegt werden, an die Enden gezogen:
Code:
;; bewegen Sie die ausgewählten Punkte auf den nächsten Punkt auf einer Linie;
;; 18/01/2013 - gian paolo cattaneo

(defun c:spsl (/Punkte lin n Punkt pp pl)
(Prompt "\nselect points")
(setq Punkte)
(Prompt "\nselect the interpolating line")
(setq lin) 0)
(falls (und Punkte lin)
(Progn)
(Repeat (Setq n (Längenpunkte)
(Satzpunkt (Snamepunkte (Satzq n (1-n)))))
(setq pp (cdr (assoc 10))
(setq pl (vlax-curve-getclosestpointto lin pp)
(entmod (subst (cons 10 pl) (assoc 10 (entget point))))
)
)
)
)
 
Was, wenn die Linie nicht existierte? und das Problem wäre gewesen, eine interpolierende Polylinie zwischen einer Reihe von Streupunkten zu schaffen? Gibt es eine Lippe dafür?
 
il codice dovrebbe essere questo?

(defun _lineartrendline)
(Satz f '(l) ((etwa '+ l) (Länge l))))
x (Karte 'car l')
y (Karte 'cadr l')
ax (f x)
ay (f y)
b (- (f) (* x y) (* ax ay))
(- (f) (* x x))
)
ay (* b ax)
)
(entmake)
(Liste)
'(000 . 'ray')
100 .
100. "Akku"
(Liste 10 0,0 bis 0,0)
(Liste 11 1.0 b 0.0)
)
)
)
 
Ich versuche es anche questo:

(Defun c:test)

(defun vxv (a b) (ungefähr '+ (Karte '* a b))))

(falls
(setq ss (ssget '(0 . "point")))))
(Progn)
(Repeat (setq i (sslength ss) n i)
(Setq l (cons (cdr (assoc 10))
)
(Setq oder (Karte '/ (Apply 'mapcar' (cons '+ l)))))
d (Karte '(lambda(a) (Karte '- oder a))) l
dx (Karte 'car d')
dy (Karte 'cadr d)
a (* 0.5 (atan (*2 (vxv dx dy)) (- (vxv dx dx) (vxv dy)))
)
(entmake)
(Liste)
'(0 . "xline")
100 .
100 . "acdbxline"
(62.1)
(cons 10 o)
(Liste 11 (Körper a) (sin a) 0,0)
)
)
)
)
(princ)
)

ma mi crea una retta che interpola i punti, sarebbe utile avere una polilinea anziché una retta la distribuzione dei punti da interpolare è questa:
. Senza titolo-1.jpg
 

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