Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SolidWorks 2006 IComponent2::IGetChildren

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 3D CAD Grundlagen E-Learning , ein Kurs
Autor Thema:  SolidWorks 2006 IComponent2::IGetChildren (295 mal gelesen)
DiegoArmando
Mitglied


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

Beiträge: 1
Registriert: 17.06.2006

erstellt am: 17. Jun. 2006 15:06    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,

ich versuche in C++ mit COM auf die Komponenten einer Baugruppe
zuzugreifen. Die verfügbaren Beispeile sind in SWXSolidWorks < 2006 so, dass
IComponent2::IGetChildren ein Array zurückliefert. In 2006 wird ein
ptr auf ein IComponent2 zurückgegeben. Wie soll ich über die
Komponenten iterieren. Konventionelles Iterieren wie über C-Ptr
scheint nicht zu funktionieren.

Code:

#include <atlcomcli.h>
#include <mmc.h>
#include <comdef.h>

#import "D:\Programme\SolidWorks\sldworks.tlb"
#import "D:\Programme\SolidWorks\swconst.tlb"

//#include "swconst.tlh"
//#include "sldworks.tlh"
//#include "sldworks.tlh"

int
main(int argc, const char* argv[])
{
  HRESULT result = CoInitialize(NULL);

  CLSID clsid;
  result = CLSIDFromProgID(OLESTR("SldWorks.Application"), &clsid);

  CComPtr <IUnknown> unknown;
  result = GetActiveObject(clsid, NULL, &unknown);

  CComQIPtr <SldWorks::ISldWorks> sldworks;
  result = unknown->QueryInterface(__uuidof(SldWorks::ISldWorks), (LPVOID*)&sldworks);

  result = sldworks->SetUserPreferenceToggle(SwConst::swExtRefUpdateCompNames, FALSE);
  SldWorks::IModelDoc2Ptr document = sldworks->GetActiveDoc();

  CComQIPtr <SldWorks::IConfigurationManager> cfgmgr;
  result = document->get_ConfigurationManager(&cfgmgr);

  CComQIPtr <SldWorks::IConfiguration> activeconfig;
  result = cfgmgr->get_ActiveConfiguration(&activeconfig);

  CComQIPtr <SldWorks::IComponent2> root_component;
  root_component = activeconfig->IGetRootComponent2();

  int children_count = root_component->IGetChildrenCount();

  CComQIPtr <IComponent2> children;
  children = root_component->IGetChildren();

  return 0;
}

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

SW 2006 SP4

erstellt am: 21. Jun. 2006 07:28    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 DiegoArmando 10 Unities + Antwort hilfreich

IGetChildren liefert dir eine Array, das du vorher mit der richtigen Grösse initialisieren musst. Weitere Infos findest du in der SolidWorks API Doku, da ist auch eine Beispiel dazu.

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