SolidWorks API – OpenDoc6 uitgelegd

Hoi allemaal

Ik kwam een vreemde eend in de bijt met de OpenDoc6 functie. In een deel van mijn macro probeer ik elk onderdeel van mijn assembly achtereenvolgens te openen in de volgorde van de feature manager. Wat ik niet begrijp, is dat ik het type document moet specificeren dat ik als assembly moet openen om een onderdeel te openen en vice versa om een onderdeel te openen, anders wordt het document niet geopend.

    Als FileTyp = swDocPART dan
        swApp.OpenDoc6 CompPath, swDocASSEMBLY, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings
     Einde als

    Als FileTyp = swDocASSEMBLY dan
        swApp.OpenDoc6 CompPath, swDocPART, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings
    Einde als

Heeft iemand een verklaring?

 

Springen

Dit is de normale manier waarop de OpenDoc6-methode werkt. Zie hier: http://help.solidworks.com/2016/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~opendoc6.html

 

Hallo

Het zijn de kenmerken van SW die bepalen welk type bestand wordt geopend.

Voor API's kunt u de juiste functies aanpakken, aangezien elk type bestand verschillende acties toestaat.

Ik begrijp dat we moeten aangeven welk type bestand we willen openen, maar wat ik niet begrijp, is dat ik het volgende moet doen:

  1. Stel het ONDERDEEL-type in om een ASSEMBLAGE te openen
  2. Stel het type MERK in om een ONDERDEEL te openen

 

Hallo

Verkeerd gelezen, vreemd.

Bug of slechte declaratie van SW-doc-typen.

Hoe wordt het type document bepaald dat moet worden geopend?

Normaal gesproken zou het dit moeten zijn:

' Bepaal het type SOLIDWORKS-bestand op basis van de bestandsextensie
    Als InStr(LCase(sDocFileName), "sldprt") > 0 Dan
        nDocType = swDocDEEL
    ElseIf InStr(LCase(sDocFileName), "sldasm") > dan 0
        nDocType = swDocASSEMBLY
    ElseIf InStr(LCase(sDocFileName), "slddrw") > dan 0
        nDocType = swDocTEKENING
    Anders
        ' Waarschijnlijk geen SOLIDWORKS-bestand
        nDocType = swDocNONE
        ' Kan het bestand dus niet openen
        Sub afsluiten
    Einde als   

Het is hetzelfde als het aanroepen van een aangepaste eigenschap in een tekenbericht: $PRPSHEET als het is gedefinieerd in de PRT/ASM, $PRP als het is gedefinieerd in de DRW...