Vrijstaande, bijgevoegde macro-opnamen?

Hallo

Al onze planbestanden staan in de vrijstaande modus in SolidWorks en ik heb dimensies die verspringen.

Ik wil er zeker van zijn dat de foto's solide zijn.

Weet u of er een macro is om de planbestanden losgekoppeld, bijgevoegd te maken?

En masse zou een + zijn (4000 plannen)

1 like

Op dit moment ken ik niets exsistant dat het zou doen.

Ik laat het aan de API-professional over om een completer antwoord te geven

2 likes

Hallo

 

Ik had hetzelfde probleem 2 jaar geleden, opgelost met behulp van de Update utility-versie van MyCADServices.

 

U moet de optie "geen bestanden converteren die al in de te converteren versie zijn" uitschakelen en de optie "tekeningen opslaan in niet-losstaand formaat" aanvinken .

3 likes

Wat is de vrijstaande modus?

 

Edit: een beetje onderzoek liet me toe om te zien wat het was.

 

Als je de MyCAD-hulpprogramma's niet hebt, is het niet erg ingewikkeld met een macro, maar je moet een beetje weten over VBA!

 

U kunt beginnen met een macro door te leren zien welke code er zit achter wat u doet wanneer u converteert naar MEP bijgevoegd.

Hallo

 

Als u een tekening wilt wijzigen van het vrijstaande type naar het bijgevoegde type, moet u de SaveAs Method API (IModelDocExtension) gebruiken met de optie swSaveAsVersion gelijk aan 3.

 

Hieronder ziet u een voorbeeld van een codefragment dat werkt voor open tekening als vervanging voor het "back-uppad+naam"

  Dim swApp als object

  Dim swModel als SldWorks.ModelDoc2

  Dim swModelExt als SldWorks.ModelDocExtension

  Dim boolstatus als Booleaanse

  ExportData dimmen als object

  Dim waarschuwingen zo lang, fouten zo lang

 

  Sub hoofd()

 

  Stel swApp = Toepassing.SldWorks in

  Stel swModel = swApp.ActiveDoc in

  Stel swModelExt = swModel.Extension in

  boolstatus = swModelExt.SaveAs("pad+savename", 3, 1, ExportData, Fouten, Waarschuwingen)

 

  Einde Sub

 

Voor massaverwerking heb ik geen code bij de hand om alle bestanden in een map te herhalen. Iemand anders misschien?

 

1 like

Volgens uw antwoorden lijkt het gemakkelijk, helaas heb ik niet Mijn cad services.fgirard je lijkt het programmeren te beheersen. Dat soort dingen heb ik nog nooit gedaan. Is het scriptgedeelte voldoende om een bestand om te zetten in bijlagen? Moet ik in elk bestand een macro plaatsen? (Ik heb 4000 foto's, ik kan ze net zo goed 1 voor 1 openen en opslaan als... het zal minder ingewikkeld zijn?)

Staan alle 4000 abonnementen in dezelfde directory?

Ik ben op zoek naar de volledige macro die alle bestanden in 1 map verwerkt.

Ik kom terug zodra het klaar is.

Dank je wel Fgirard. Zelfs als de macro zich bezighoudt met een heleboel opnamen, zou het nog steeds interessant zijn.

Ik ben klaar met de macro om alle tekeningen van een directory te verwerken.

De macro opent een dialoogvenster om een bestand te selecteren dat u wilt openen.

Vervolgens haalt het de locatie van het bestand op en verwerkt het alle tekeningen erin.

Hier is de code:

 

Dim swApp als object

Dim swModel als SldWorks.ModelDoc2

Dim swModelExt als SldWorks.ModelDocExtension

Dim boolstatus als Booleaanse

ExportData dimmen als object

Dim waarschuwingen zo lang, fouten zo lang

Dim oFSO als Scripting.FileSystemObject

Dim oFld als Scripting.Folder

Dim oFile als Scripting.File

Dim pad als snaar

Dim Filter                      Als String

Dim fileName                    als tekenreeks

Dim fileConfig                  als tekenreeks

Dim fileDispName                als tekenreeks

Dim bestandopties                 zo lang

 

 

Sub hoofd()

 

Stel swApp = Toepassing.SldWorks in

 

Filter op tekening

Filter = "Tekening (*.slddrw)|*.slddrw|"

 

Dialoogvenster openen

fileName = swApp.GetOpenFileName("Selecteer Bestand", "", Filter, fileOptions, fileConfig, fileDispName)

 

'Geselecteerd bestand controleren

Als fileName = "" sluit dan Sub af

 

Herstel van het pad

path = Links(bestandsnaam, InStrRev(bestandsnaam, "\"))

 

'FSO-verklaring'

Set oFSO = Nieuwe Scripting.FileSystemObject

Stel oFld in = oFSO.GetFolder(pad)

'Looping op de bestanden in de map "pad"

Voor elke oFile in oFld.Files

    'Type testbestand = tekening

    Als oFile.Type = "SolidWorks tekeningdocument" dan

        Opening van de tekening

        Stel swModel in = swApp.OpenDoc6(oFile.Path, swDocDRAWING, 1, "", Fouten, waarschuwingen)

        Stel swModelExt = swModel.Extension in

        'Back-upversie bijgevoegd

        boolstatus = swModelExt.SaveAs(oFile.Path, 3, 1, ExportData, Fouten, Waarschuwingen)

        Het bestand sluiten

        swApp.CloseDoc swModel.GetTitle

    Einde als

Volgende oFile

 

Einde Sub

 

 

 

3 likes

Bedankt Fgirard, omdat ik nog nooit macro heb gedaan, zal ik je programma proberen. Fijne dag.

 

Met de integratietool van myCADtools kunt u een batchmacro uitvoeren met behulp van de bewerkingen die beschikbaar zijn in integratie.

 

Hiermee kunt u snel een eenvoudige macro maken en deze in bulk op een groot aantal bestanden uitvoeren.

 

Philou

3 likes

 Bedankt prossignol, dit zal de oplossing zijn als ik de macro niet kan maken.

Ik kon de macro niet laten draaien.

Fgirard, je zegt dat je de macro hebt gemaakt. Als ik het zou kunnen misbruiken, zou je me dan een bestand kunnen sturen met een bijbehorend plan dat de macro integreert? Fijne Feestdagen

Bijgevoegd is het swp-bestand van de macro.

Je slaat het op je pc op.

Dan doe je "tool/macro/execute"

U selecteert het bestand "Dettach.swp"

Er wordt een venster geopend, u selecteert het eerste slddrw-bestand in de map waarin uw plannen om te converteren zich bevinden.

Je kijkt toe hoe de software wordt geopend en slaat je plannen zelf op als een volwassene.

 

Dat is de theorie. In de praktijk kun je problemen krijgen met verwijzingen naar niet-actieve .dll en problemen met de code zelf.

 

Start de macro één keer en als je een foutmelding krijgt, maak dan een screenshot en plaats deze. Ik zal zien wat ik kan doen.

 

Anders, als signaal, is Prossignol Integration een zeer krachtig hulpmiddel dat het werk kan doen.

 

Fijne feestdagen voor iedereen.

 


loskoppelen.swp
1 like