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

Finden Sie die x y z Koordinaten des Zentrums einer Reihe ausgewählter Objekte

  • Ersteller Ersteller x11start
  • Erstellt am Erstellt am

x11start

Guest
Ich möchte einen lisp-Befehl machen, der es mir erlaubt, eine Reihe von Objekten auszuwählen und dann auf 90° Schritt drehen, indem Sie die x y- oder z-Tasten drücken.
um dies zu tun, sollte ich einen Weg finden, um das Herzstück meiner Auswahl zu bekommen (was natürlich von verschiedenen Elementen sein kann), um es als "Pink" zu verwenden.
Kann mir jemand helfen?
Danke.
 
wo finde ich die Koordinaten der "Fußbox" jedes Objekts (die theoretische Parallelepiped, die es umschließt)? Würden Sie so nett sein, einen Code zu schreiben, der tut, was Sie sagen? Ich weiß nicht, wo ich anfangen soll!
alternativ Ich löse dies mit einem einfachen "Klick" in einem Top jeder der ausgewählten Elemente....
Es wäre jedoch interessant (zumindest für mich!) neue Dinge auf der Lispe zu lernen!
 
in der Variable Ritzel der Grundpunkt für die Rotation wird gespeichert.
im Schwanz in die Liste fügen Sie die Spitze der lee mac oben (minenccircle.)
Code:
(defun c:test ( / sel n _p1 _p2 p perno)
(falls und
(princ "\nselezionare gli oggetti da ruotare")
(setq sel)
)
(Progn)
(Repeat)
(vla-getboundingbox (vlax-ename->vla-object (ssname sel)))
(setq _p1 (vlax-safearray->list p1)
(setq _p2 (vlax-safearray->list p2))
(setq p (cons (list (car _p1) (cadr _p1))
(setq p (cons (list (car _p2) (cadr _p1))
(setq p (cons (list (car _p2) (cadr _p2))
(setq p (cons (list (car _p1) (cadr _p2))
)
(setq perno (car (lm:minenccircle p))))
)
)
)

(vl-load-com)
 
sehr freundlich wie immer!
Heute versuche ich alles zusammenzustellen... und dann werde ich dem Forum das Ergebnis zur Verfügung stellen!
 
gp toller Meister:)

der Lisp die Koordinaten des Drehpunktes zurückgibt, aber nur um die Kommandozeile
die Schwenkgröße ist eine lokale... am Ende des o_o-Verfahrens selbstzerstört
Ich entschuldige mich demütig mit ihrem Gesicht unter ihren Füßen und ohne sie zu bitten, still zu stehen:



(defun c:test ( / sel n _p1 _p2 p perno)
(falls)
(princ "\nselect Objekte zu drehen)
(setq sel)
)
(Progn)
(Repeat (setq n (sslength sel))
(vla-getboundingbox (vlax-ename->vla-object (sssname sel (setq n (1-n)))) (p1'p2)
(setq _p1 (vlax-safearray->list p1)
(setq _p2 (vlax-safearray->list p2))
(Setq p (cons (car _p1) (cadr _p1)) p)
(Setq p (cons (car _p2) (cadr _p1)) p)
(Setq p (cons (car _p2) (cadr _p2)) p
(Setq p (cons (car _p1) (cadr _p2)) p
)
(setq pin (car (lm:minenccircle p)))
(Befehl "_circle" Pin 0.5)
(Befehl "_rotate" sel "" Pin)
)
)
)

(vl-load-com)
 
die Schwenkvariable ist eine lokale... selbstzerstörte am Ende des Verfahrens
Ich weiß nicht, wie er mit dem Deckel fortfahren will.
aufgrund der "pin"-Deklaration, die mit der gebundenen Box-Methode berechnet wird, ist nicht das wahre Zentrum der ausgewählten Objekte, aber es ist funktionsfähig für die Verwendung der lisp (besser als zufällig klicken).
...mit deinem Gesicht unter deinen Füßen und ohne dich zu bitten, still zu stehen:
Ich dachte, ich springe...
 
Hier ist das Ergebnis: Sie wählen die Objekte und dann wählen Sie die Drehachse. Nach der ersten Wahl können Sie die Objekte auf der gleichen Achse weiter drehen und das Senden drücken.
Der 'e'-Button ermöglicht es Ihnen, zu verlassen, während Sie 'ec' drücken Sie zurück zur ursprünglichen Rotation.

Ich dachte sofort, ich würde das Senden benutzen... aber es ist bequemer, es zu verwenden, um die gleiche Achse zu bestätigen.
eine weitere Verbesserung wäre, direkt x y und z zu ermöglichen, ohne zu senden:
Ich dachte für den Zweck der "Diskusse" grread.... Ich denke darüber nach, wenn ich einen Moment habe.

Vielen Dank für Ihre Hilfe!
 

Anhänge

hier ist die neue Version: Ich habe "grread" eingefügt, um die gedrückten Tasten zu erkennen, so ist es jetzt nicht mehr notwendig, sie mit "Nachricht" zu bestätigen.
Im Grunde geht es nun darum, die Objekte auszuwählen und dann in die 3 Richtungen zu drehen, die x y- oder z-Tasten zu drücken, während das Senden oder der Raum zum Austritt dienen (bestätigen Sie die durchgeführte Rotation), während "esc" in die anfängliche Rotation zurückkehrt.
 

Anhänge

"...um dies zu tun, sollte ich einen Weg finden, um das Herzstück meiner Auswahl zu bekommen (was natürlich von verschiedenen Elementen sein kann), um es als "Pink" zu verwenden. . . "

Ich habe die Nützlichkeit dieser Lispe nicht verstanden. wäre nicht einfacher gewesen, den Befehl "mass" (oder propmass) zu verwenden, der die Koordinaten x, y, z des Zentrums ausgewählter Feststoffe zurückgibt?
 
Ich brauche diese Lippe, um schnell besetzte 3d Objekte zu drehen, um sie mit anderen zusammenbauen zu können.
 
[QUOTE="giulio1962,.... Non sarebbe stato più semplice utilizzare il comando "massa" (o propmass) che restituisce le coordinate x, y, z del baricentro dei solidi selezionati?[/QUOTE]der Befehl "mass", von dem, was ich weiß, macht es zu einer Zeit ein Objekt... Ich brauchte nur einen Punkt in der Mitte der Auswahl, um einen "Pin" der Rotation zu haben, ohne einen zusätzlichen "Klick" zu tun! Ich weiß.... Ich bin faul!
 
"Der Befehl "mass", von dem, was ich weiß, macht es zu einer Zeit zu einem Objekt... Ich brauchte nur einen Punkt in der Mitte der Auswahl, um einen "Spin" der Rotation, "

Er schafft es nicht zu einer Zeit. macht es von allen ausgewählten Elementen und kehrt dann schnell die 3 Koordinaten des Mittelstücks zurück. und deshalb verstehe ich die Nützlichkeit all dieser Schritte nicht.
 
... Ich verstehe die Nützlichkeit all dieser Schritte nicht.
Schritte:
- mit der Lisp wählen Sie die Objekte, um ein (pseudo)baricentro zu erhalten
- mit Propmass wählen Sie die Objekte, um den Schwerpunkt zu erhalten

Frage: mit Option 2 wie viele Schritte habe ich gerettet?

ohne zu zählen, dass das Dienstprogramm ist, die Koordinaten an den Deckel für die Fortsetzung des Befehls zu übergeben, mit Propmass als die Schritte?

Problematisch ist jedoch, dass bei diesem Befehl der Schwerpunkt zurückgegeben wird, also ein nicht-funktionaler Punkt für den Zweck der Lispe, im Bild der rote Punkt der Mittelpunkt des minimalen Kreises, der das Objekt enthält, also besser als Drehpunkt geeignet ist.
620.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