Dubbio su macro

gtsolid

Utente Standard
Professione: disegnatore
Software: sw 2014
Regione: piemonte
#1
ciao a tuttiho questo frammento di macro che trasforma le parti in pdf, dwg e step.
per quanto riguarda la trasformazione in step ho problemi SOLO nel caso in cui abbia dei "." nel nome del file.
Secondo voi qual e' il problema? ad una prima occhiata non ho trovato niente di fuori posto.

Codice:
     'Pdf & DWG & step: generate Step ---------- (load part within same name, save Step, close part) ---------
      If myvalue = "4" Or myvalue = "8" Then
        FileN1 = Strings.Left(filename, Len(filename) - 4) & ".SLDPRT"        'Full path + filename + .sldprt
        Set swApp = Application.SldWorks
        Set swModel = swApp.ActiveDoc
        Set SelMgr = swModel.SelectionManager
        Set swModel2 = swApp.OpenDoc6(FileN1, 1, 0, "", longstatus, longwarnings)
        swApp.OpenDoc6 FileN1, 1, 0, "", longstatus, longwarnings
           swApp.ActiveDoc.ActiveView.FrameLeft = 0
           swApp.ActiveDoc.ActiveView.FrameTop = 18
           swApp.ActiveDoc.ActiveView.FrameState = 1
           FileN2 = Right(filename, Len(filename) - Len(WorkDir))
            FileN2 = Strings.Left(FileN2, Len(FileN2) - 4)
           Set swModel2 = swApp.ActivateDoc2(FileN2, False, longstatus)
        FileN3 = Strings.Left(FileN1, Len(FileN1) - 7) & ".step"              ''Full path + filename + .step
        boolstatus = swModel2.Extension.SaveAs(FileN3, 0, 0, Nothing, longstatus, longwarnings)
        Set swModel2 = Nothing
        swApp.CloseDoc FileN2
                If boolstatus Then
                   If SingleFile = True Then MsgBox FileN3, vbInformation, "File salvato con SUCCESSO   -Step-"
                Else
                   MsgBox FileN3 & vbNewLine & lErrors, vbCritical, "Salvataggio FALLITO, codice errore:    -Step-"
                End If
      End If
 

ale47p

Utente registrato
Professione: reverse/cad/cam
Software: CopyCad/PowerShape/PowerMill/VeriCut
Regione: Veneto
#2
non so se sia il doppio apice prima di ''Full path + eccetera eccetera...
ma non c'è la funzione debug?
non è il mio software o il mio linguaggio...ma sembra una cosa semplice
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#3
Sinceramente non capisco del perchè di tutto quel giro di codice di cui non si capisce cosa tu voglia fare prima di salvare il file, ti chiedo una spiegazione a riguardo, non capisco perché swicci da un file all'altro per poi salvare sempre FileN1.
Secondo me il problema sta nelle righa
FileN1 = Strings.Left(Filename, Len(Filename) - 4) & ".SLDPRT"
e
FileN2 = Strings.Left(FileN2, Len(FileN2) - 4)

Dove dovresti togliere 7 non 4 caratteri alla stringa altrimenti al file rimane l'estensione ".sl"

Se ti serve una macro che ti salva la parte attiva in step al click vale la pena rifarla, ci si mette un attimo, prima che modificare questa.
 

gtsolid

Utente Standard
Professione: disegnatore
Software: sw 2014
Regione: piemonte
#4
Non era quello il problema. Non saprei come andare avanti. Per quanto riguarda la programmazione, mi servirebbe un tutorial, ci sono tante funzioni...
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#5
E allora qual è il problema, non ho capito probabilmente cosa vuoi fare e cosa vuoi recuperare dal codice e perché.
 

gtsolid

Utente Standard
Professione: disegnatore
Software: sw 2014
Regione: piemonte
#6
se il file non ha "." funziona. Se ce ne sono, mi da errore alla riga
"Set swModel2 = swApp.ActivateDoc2(FileN2, False, longstatus)"
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
#7
Intanto non si capisce da dove viene "filename", vedo che FileN1 lo ricavi eliminando la stringa completa del file (immagino, ma non capisco di quale file) e ne ricavi il solo nome senza l'estensione, MA RIPETO IL -4 TI LASCIA IN CODA UN ".sl", se vuoi togliere tutta l'estensione devi togliere 7.

Ti ripeto che se spiegassi bene cosa deve fare la macro si potrebbe riscriverla molto velocemente utilizzando magari del codice meno articolato.

Se riesci a spiegarmi le stringhe che dovrebbero contenere le variabili Filename, FileN1,FileN2, Workdir, riuscirei ad avere una idea chiara del processo.

Ciao
 

teseo

Utente Standard
Professione: Cantinaro
Software: solidworks2019 sp0.1, autocad2017, pochino solidedge st7, draftsight
Regione: Lombardia
#8
Ciao a tutti io uso queste due macro per salvare in diversi formati...e mi trovo bene per ora li ho trovate su internet e poi modificate: io oppure con l'aiuto di qualcuno........chissa chi sarà...
ciao
 

Allegati