Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Mal wieder die API (MaterialPropertyValues)

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
  
FMB
Autor Thema:  Mal wieder die API (MaterialPropertyValues) (292 mal gelesen)
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: 25. Mrz. 2002 11: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

Aloah APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Spezialisten

ich möchte von einem Teil in einer Baugruppe die Komponenteneigenschaften was die Farben usw. angeht auslesen und einen der Werte ändern und wieder zurückschreiben. Der Code dazu müsste ja dann ungefähr so aussehen (auf's wesentliche reduziert):

Code:

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long
Dim Annotation As Object
Dim Gtol As Object
Dim DatumTag As Object
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim SelMgr As Object
Dim selObj As Object
Dim MaterialEigenschaften(8) As Double
Dim MatEigArray As Variant

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager()
Set selObj = SelMgr.GetSelectedObject3(1) 'Auf das derzeit selektierte Zeit zeigen

Set Component = selObj.GetComponent 'Die Baugruppenkomponente holen

MatEigArray = MaterialEigenschaften 'Das Safe-Array erzeugen, das für MaterialPropertyValues benötigt wird

MatEigArray = Component.MaterialPropertyValues 'Die derzeitigen Werte auslesen
.
.
.


Dummerweise wird in MatEigArray nichts reingeschrieben. Warum nicht? Ich kann erst was auslesen wenn ich selber was reingeschrieben habe, aber damit würde ich ja die vorhandenen Werte überschreiben, was ich nicht will.

Kann mir da jemand weiterhelfen?

Danke

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

Oberparleiter
Mitglied
Konstrukteur


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

Beiträge: 706
Registriert: 06.06.2000

Celsius R630, P4 Xeon 3,2
3GB Ram, 2x24" an FX3500
U320 SCSI,
SWX 2011 SP4.0
WinXP SP3
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wirs nicht wagen, ist es schwer.

erstellt am: 25. Mrz. 2002 12:11    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 Kalle 10 Unities + Antwort hilfreich

Hallo Kalle

Schau mal auf der Seite http://www.cad.de/foren/ubb/Forum2/HTML/000831.shtml nach.
Vielleicht steht da die Lösung.

------------------
Soo Long

Frank O.

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: 25. Mrz. 2002 12:36    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

Aloah Oberparleiter,

ich erinnere mich schon noch selbst an meine alten Postings. In dem Thread, den Du verlinkst hatte ich ein anderes Problem. In dem Code dort wurden die MaterialPropertyValues gesetzt und wieder ausgelesen, was auch funktioniert. Wenn ich sie aber nur auslesen will, ohne vorher was gemacht zu habe, dann kommt da nichts. Mein Safe-Array wird wieder ein Empty/Variant.

Bis dann
Kalle

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: 25. Mrz. 2002 13:33    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 Kalle 10 Unities + Antwort hilfreich

Hallo Kalle,

das kommt wahrscheinlich daher, dass die Komponenteneigenschaften nicht geändert wurden, d.h. die Komponente hat praktisch noch die Originalfarbe. Du bekommst beim Lesen erst dann einen Nicht-Leeren-Wert zurückgeliefert, wenn die Komponenteneigenschaften in der Baugruppe geändert wurden.

Siehe auch APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Hilfe unter Component2::MaterialPropertyValues :

> Be aware that this function will return a NULL VARIANT (and an
> S_FALSE HRESULT for COM implementations) if this component has not
> been explicitly modified from the material property values of the
> underlying part document.

Also fängst du am Besten den Laufzeitfehler ab und fragst explizit das darunterliegende Part ab, was das denn für Farben hat.

Ciao,
Stefan

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

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: 25. Mrz. 2002 14: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

Aloah Stefan,

Jetzt hab ich aus deiner Antwort gleich zwei Lehren für die Zukunft geschlossen. Die wichtigere der beiden ist: "Scroll in der Hilfedatei bis ganz nach unten und lies dir alles durch was da steht."

Ich hab nämlich immer nur bis zu der Auflistung der einzelnen Parameter (R,G,B,Ambient,...) gescrollt. Hätte ich bis zum Schluss gelesen hätte ich mir die Frage hier sparen können.

Dann weiss ich jetzt wenigstens was los ist und werde es wohl schaffen mein kleines Programm fertig zu machen.

Besten Dank
Kalle

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