Seite 1 von 1

Active Qt

Verfasst: 21. April 2014 19:31
von Gora
Hallo,

ich versuche seit einigen Tagen in QT die SolidWorks Library zu implementieren. Das ganze habe ich mit dem kurzen Ausschnitt

Code: Alles auswählen

QAxObject * swApp = new QAxObject("SldWorks.Application.20",0);
    swApp->dynamicCall("Visible", false); 
    QAxObject *swDoc = swApp->querySubObject("IPartDoc");
    bool boolstatus = false;
    int longstatus = 0;
    int longwarnings = 0;
    swPart=swApp->querySubObject("NewDocument(QString,QString,QString,QString)", QString("C:\\ProgramData\\SolidWorks\\SolidWorks 2009\\templates\\Teil_testWK.prtdot"), QString("0"), QString("0"), QString("0"));
    swPart->querySubObject("SaveAs3(QString,QString,QString)",QString("C:\\Projekte\\test\\ant 40-019.SLDPRT"),QString("0"),QString("2"));
    
versucht. Bei der dritten Zeile, in der ich ein Objekt von SW erzeuge, erhalte ich eine Fehlermeldung

Code: Alles auswählen

QAxBase::dynamicCallHelper: IPartDoc: No such property in {b4875e89-91f6-4124-bb63-2539727e98fa} [{B4875E89-91F6-4124-BB63-2539727E98FA}]
	Candidates are:
		IActiveDoc
		IActiveDoc2
Anscheinend gibt es das Objekt nicht, das gibt es aber laut Anleitung. Ich habe es auch mit PartDoc oder SldWorks::IPartDoc probiert, mit dem gleichen Ergebnis. Das wäre Frage nummer 1.

Die andere Frage ist, ob man in Qt die ATL Unterstützung einbinden kann, so dass ich die klassen und Methoden, die in SW bereitgestellt werden, direkt benutzen kann. In Solidworks gibt es eine sldworks.tlb Datei. Ich konnte bis jetzt dazu finden, dass man dumpcpp in der pro datei benutzen könnte. Leider kann ich das ganze nicht zusammen bringen, da es zu dem Thema kaum bzw. keine Beispiele gibt. Vielleicht kann mir einer ein paar Tipps geben wie ich es am besten angehen kann.