Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  3D Daten mit Lisp auslesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD
Autor Thema:  3D Daten mit Lisp auslesen (1131 mal gelesen)
pgoer
Mitglied
Konstruktionsingenieur


Sehen Sie sich das Profil von pgoer an!   Senden Sie eine Private Message an pgoer  Schreiben Sie einen Gästebucheintrag für pgoer

Beiträge: 30
Registriert: 12.07.2012

erstellt am: 27. Jan. 2013 12:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

hat einer Erfahrung damit wie man den Befehl _massprop (Anzeigen von 3D Daten wie Schwerpunkt...) mit Lisp auslesen kann, aber das Protikollfenster, das automatisch erscheint, unterdrücken kann ?
MfG
pgoer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 30. Jan. 2013 07:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pgoer 10 Unities + Antwort hilfreich

Unterdrücken geht in diesem Falle der Massenermittlung nicht, aber wenn Du ein (graphscr) direkt hinter deine Massenermittlung hinterherschickst, geht das Fenster blitzschnell wieder zu.
(command "_massprop" "_l" "" "_Y" "test")(graphscr)

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pgoer
Mitglied
Konstruktionsingenieur


Sehen Sie sich das Profil von pgoer an!   Senden Sie eine Private Message an pgoer  Schreiben Sie einen Gästebucheintrag für pgoer

Beiträge: 30
Registriert: 12.07.2012

erstellt am: 30. Jan. 2013 08:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für den Hinweis. Habe ich auch so Programmiert. Könnte es sein das mit den VLAX-Funktionen ein Auslesen von 3D-Modellen möglich ist?

MfG

pgoer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

T.Moses
Mitglied



Sehen Sie sich das Profil von T.Moses an!   Senden Sie eine Private Message an T.Moses  Schreiben Sie einen Gästebucheintrag für T.Moses

Beiträge: 82
Registriert: 16.03.2005

Win10, Core i9-9900k @5.0 GHz, 32 GB Ram, NVidia GT1030

erstellt am: 30. Jan. 2013 13:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pgoer 10 Unities + Antwort hilfreich

Ja, das geht mit COM-basierendem Lisp ...

Eine Region kann folgende Daten liefern :
Area, Centroid, MomentOfInertia, Normal, Perimeter, PrincipalMoments, ProductOfInertia, PrincipalDirections, RadiiOfGyration

Ein 3DSolid liefert folgende Daten :
Centroid, MomentOfInertia, PrincipalDirections, PrincipalMoments, ProductOfInertia, RadiiOfGyration, Volume, Position

Geht mit
(vla-get-<property> (vlax-ename->vla-object <ename> ))

braucht ein wenig Übung mit VLA/VLAX Funktionen und/oder stöbern im Netz.

Gutes Gelingen !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pgoer
Mitglied
Konstruktionsingenieur


Sehen Sie sich das Profil von pgoer an!   Senden Sie eine Private Message an pgoer  Schreiben Sie einen Gästebucheintrag für pgoer

Beiträge: 30
Registriert: 12.07.2012

erstellt am: 30. Jan. 2013 16:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke T.Moses für diesen Hinweis. Funktioniert fast aber nicht ganz.

Wenn ich mit (vlax-get-Volume (vlax-ename->vla-Object (car (entsel)))
ein 3D-Modell direkt auslese bekomme ich das Volumen.

Wenn ich allerdings mit
(vlax-get-PrincipalMoment... ein 3D-Modell auslese #<variant 8197 ...>

Was mache ich falsch?

MfG

pgoer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

T.Moses
Mitglied



Sehen Sie sich das Profil von T.Moses an!   Senden Sie eine Private Message an T.Moses  Schreiben Sie einen Gästebucheintrag für T.Moses

Beiträge: 82
Registriert: 16.03.2005

Win10, Core i9-9900k @5.0 GHz, 32 GB Ram, NVidia GT1030

erstellt am: 31. Jan. 2013 00:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für pgoer 10 Unities + Antwort hilfreich

Die VLA Funktionen geben manchmal einen "nativen" Datenwert zurück, manchmal aber auch "komplexe" Daten ...

2 Möglichkeiten :
1. die Rückgabe als <variant ...> mit
  (setq result (vlax-variant-value res)) -> ergibt ein SAFEARRAY
  (setq result (safearray->list result)) -> wandelt das dann in normale Liste (eben den Punkt)

-oder-
2. mit (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'PrincipalMoment) gibt direkt den Punkt als Liste ...
(vlax-invoke) ist eine nicht-dokumentierte Funktion in AutoLISP, aber natürlich auch in BricsCAD enthalten 

Wie gesagt, braucht ein bisschen Übung / Erfahrung mit VLA / COM Lisp ...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz