Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro!!! Eigenschaften von GetRayIntersectionsPoints aendern

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 SOLIDWORKS
  
SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
Autor Thema:  Makro!!! Eigenschaften von GetRayIntersectionsPoints aendern (543 mal gelesen)
DAN77
Mitglied
Student

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

Beiträge: 3
Registriert: 03.03.2005

erstellt am: 03. Mrz. 2005 19:10    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 zusammen,
habe eine sehr spezielle Frage und bin fuer jede Hilfe dankbar!!
Ich moechte mit Hilfe eines Makros bestimmte Eigenschaften eines komplexen Solids abfragen, dazu ist es notwendig alle Punkte des Koerpers (mehr oder weniger) genau zu kennen um diese in einem Integral auswerten zu koennen. Es gibt hierfuer eine nette Funktion in SWXSolidWorks, naemlich: GetRayIntersectionsPoints. Diese Fkt sendet "Strahlen" vom Ursprung aus und liefert u.a. die exakten Koordinaten der Ein- und Austrittspunkte, wenn diese auf einen Solid treffen. Die Sache funktioniert sehr gut, wenn man in Kugelkoordinaten arbeitet. Ich moechte allerdings (habe Gruende dafuer) ein Kartesisches K-system verwenden. Wie es aussieht, kann ich diese "Strahlen" zwar senden, SWXSolidWorks
scheint diese allerdings ans K-System des aktiven Dokuments zu binden, leasst mich also keine deltay-Schritte durchfuehren. Hat vielleicht irgend jemand Erfahrung mit diesem Befehl, oder ein aehnliches Problem
auf andere weisse geloest??? Bin wirklich fuer jeden Tipp dankbar!!
Vielen Dank fuer die Hilfe
Dan

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 04. Mrz. 2005 08:14    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 DAN77 10 Unities + Antwort hilfreich

Hallo Dan,

und herzlich willkommen im SolidWorks-Brett auf CAD.de   

Ich hab selbst noch nie etwas damit gemacht, aber ich verstehe deine Frage auch nicht ganz.

Punkt 1: Diese Fkt sendet "Strahlen" vom Ursprung aus ...

Das verstehe ich etwas anders. Die Strahlen schickst du ja mit ModelDoc2::RayIntersections , und da musst du für jeden Strahl den Basispunkt und die Richtung angeben. Also kannst du den Startpunkt doch dahin legen, wohin du willst   

Punkt 2: ... SWX scheint diese allerdings ans K-System des aktiven Dokuments zu binden ...

Ich versteh nicht was du meinst, in welchen Bezugsrahmen sollte SolidWorks die Ergebniskoordinaten packen, wenn nicht in das Koordinatensystems des Teils   

Punkt 3: ... leasst mich also keine deltay-Schritte durchfuehren ...

Siehe oben.

Ich stell mir deine Aufgabe in etwas so vor: du hast deinen Körper auf einer Messplatte aufgespannt und hast einen Laserpointer auf einer Art Schiene positioniert, so dass der genau parallel zur X-Achse und normal zur Z-Achse seine Strahlen schießen soll. Nun willst du in Y-Richtung alle 0.1 mm einen Strahl feuern und schauen, wo der in dem Körper ein- und wieder austritt.

Wenn das soweit richtig ist musst du in einer Schleife jeweils mit ModelDoc2::RayIntersections einen Strahl abfeuern, den mit ModelDoc2::GetRayIntersectionsPoints Auswerten, dann den Startpunkt des Strahl um 0.0001 m erhöhen und den nächsten Strahl abschießen.

Wenn du dann deinen Richtungsvektor für den Strahl immer auf 1,0,0 lässt brauchst du eigentlich auch nichts mehr umrechnen, da du ja keine Rotation um X oder Z-Achse hast.

Vielleicht sind ein paar Denkanstöße dabei, selbst wenn ich das Problem nicht ganz verstanden habe  

Viel Grüße über den großen Teich, ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

DAN77
Mitglied
Student

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

Beiträge: 3
Registriert: 03.03.2005

erstellt am: 04. Mrz. 2005 19:12    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 Stefan,

danke fuer die Hilfe! Du hast das Problem genau richtig erkannt! Die Sache funktioniert im Endeffekt genau so, wie du es dir vorstellst. Nur leider kann ich den Ursprung der Strahlen nicht beliebig versetzen, also den Startpunkt (wie es scheint), dieser ist immer bei (0,0,0) - kann also keine deltay-Schritte im kartesischen KS durchfuehren, oder??? Habe mich jetzt fuer eine andere Loesung entschieden, sende die Strahlen vom Ursprung aus und verschiebe meinen Solid um deltay, zwar nicht sehr elegant und relativ Zeitaufwendig zum Berechnen, aber zumindest eine im Moment brauchbare Loesung...
und tschuldigung, dass ich mit der Antwort so lange auf mich warten hab lassen, aber die Zeitverschiebung...
Vielen Dank fuer die Hilfe und die Anregungen, hoffe ich habe mich nun etwas verstaendlicher ausgedrueckt!?
Bis bald
Dan

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 07. Mrz. 2005 07:56    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 DAN77 10 Unities + Antwort hilfreich

Aheu Dan,

also so wie ich das sehe kannst Du sehr wohl den Startpunkt Deines Strahls angeben. In der API-Hilfe steht (zumindest bei mir) folgendes:

retval = ModelDoc2.RayIntersections ( bodiesIn, basePointsIn, vectorsIn, options, hitRadius, offset )
.
.
und später
.
.
Input:
(VARIANT) basePointsIn
SafeArray of doubles containing the x,y,z base points of each ray

Damit ist in meinen Augen der Startpunkt gemeint. Also probier das ruhig nochmal. Sollte Dir eine enorme Zeitersparnis bei der Berechnung bringen.

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

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

DAN77
Mitglied
Student

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

Beiträge: 3
Registriert: 03.03.2005

erstellt am: 07. Mrz. 2005 20:52    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 Kalle und Stefan,

vielen Dank fuer eure Hilfe!! Ich muss mich leider bei euch entschuldigen, mir ist ein ******* -Fehler unterlaufen, bzw. wusste ich nicht, dass in VBFA jede Variable einzeln deklariert werden muss, also:
Dim x,y As Double meint nicht das selbe, wie:
Dim x As Double, y As Double...war das von C gewoehnt und hab mir darueber leider keinen Kopf gemacht!!
Die Sache funktioniert jetzt, tschuldigung, dass ich euch mit so einem dummen Fehler aufgehalten habe!!!
Nochmals danke fuer die Hilfe!!

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 08. Mrz. 2005 08:25    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 DAN77 10 Unities + Antwort hilfreich

Hallo Dan,

kein Grund sich zu entschuldigen, hat Spaß gemacht, sich mit dem Problem zumindest theoretisch auseinander zu setzen 

Und mit der zeilenweise Deklarationen in VB/VBA ist schon ganz schön komisch, da stolpert jeder irgendwann mal drüber 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

HarryD
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 597
Registriert: 01.12.2000

erstellt am: 08. Mrz. 2005 11:58    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 DAN77 10 Unities + Antwort hilfreich

Hallo,
jetzt habt ihr mich aber verunsichert!!!!!!!!
Hä???
Wo ist da jetzt der Unterschied??

Bitte! Lasst mich nicht dumm sterben!

------------------
Gruß
Harry 

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 08. Mrz. 2005 12:46    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 DAN77 10 Unities + Antwort hilfreich

Hallo Harry,

wenn du bei der Deklaration von Variablen nicht explizit den Typ dabei schreibst nimmt VB/VBA eben VARIANT, den omnipotenten Datentyp. Wenn du also

DIM X, Y as Double

hast du anschließend X als Variant und Y als Double deklariert. Also entweder jede Deklaration in einer eigenen Zeile schreiben oder brav für jedes den Type angeben:

DIM X as Double, Y as Double

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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)2024 CAD.de | Impressum | Datenschutz