Como criar uma macro no SolidWorks | Celso Torres

Поділитися
Вставка
  • Опубліковано 15 жов 2024
  • Neste exemplo de macro, você aprende como criar uma macro do Zero no SolidWorks, usando componentes do VBA.
    Crie uma caixa de diálogo para editar as dimensões do modelo 3D. Entenda os códigos criados na gravação e crie seus projetos usando a API do SolidWorks.
    Baixe o arquivo em www.ccpro.com.br, na seção de downloads.

КОМЕНТАРІ • 41

  • @cinthyamiharuyasuda477
    @cinthyamiharuyasuda477 8 років тому +1

    Ótima aula Celso! Obrigada por compartilhar seu conhecimento!

  • @caiomaxwell5381
    @caiomaxwell5381 6 років тому

    Show de bola, vou tentar fazer la na empresa pra padronizar com os demais programas de edição

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  6 років тому

      Valeu Caio, se tiver alguma dúvida, é só falar. Abraços

  • @Marcoshsieh
    @Marcoshsieh Рік тому

    Mestre Celso, Boa tarde. Gostei muito da sua aula sobre criação de macros no SolidWorks. Poderia me informar onde consigo tutoriais ou documentação dos objetos VBA do solidWorks?

  • @daniel_araujo2507
    @daniel_araujo2507 6 років тому

    Ola amigo, é possível criar uma macro para fazer qualquer tipo de rosca, exemplo, clicar no diâmetro da peça e clicar no botão e dizer pra fazer uma roca de 1/4 e etc..

  • @Rafalopes303
    @Rafalopes303 День тому

    Po Celso, obrigado. mas na hora de inserir o label ta dando erro no meu. O site virou site de canabis.

  • @vannecicolella
    @vannecicolella 8 років тому +1

    O Vídeo ficou muito bom e fácil de aprender. Gostaria de saber se posso utilizar a MACRO em qualquer coisa dentro do solidwokrs e se possível criar MACRO para fazer um projeto completo ?

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому +1

      Giovanne Cicolella olá, com certeza é possível. É um pouco mais complexo...

  • @fabianorodriguesdasilva1685
    @fabianorodriguesdasilva1685 5 років тому

    Ola Celso, primeiramente muito obrigado por disponibilizar seu conhecimento a comunidade... Amigo eu preciso de uma API para salvar o BOM e ate mesmo outras informacoes de um desenho ou de um conjunto de desenhos do projeto como um todo e disponibilizar isso num TXT, CSV, Excel, enfim.. para pode integrar com o nosso ERP... O amigo tem algo pra isso ???

  • @Julio_cesar_27
    @Julio_cesar_27 10 місяців тому

    amigo, como eu quebro o vinculo da macro com esta peça, a minha macro só roda nessa peça, mas quero usar em outras.

  • @solidworks-autocad-invento8530
    @solidworks-autocad-invento8530 7 років тому +1

    muito bom, não sabia que dava pra fazer isso

  • @marcelow168
    @marcelow168 6 років тому +1

    Excelente explicação nos videos, parabéns. Gostaria de saber como fazer para buscar valores em uma planilha do excel através de combobox ou listbox e inserir o valor selecionado nas propriedades do desenho. Fico no aguardo.

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  6 років тому

      Vou ver um exemplo...e publico aqui.. Abraço.

    • @marcelow168
      @marcelow168 6 років тому

      Celso Torres CCPro , obrigado. Ficarei no aguardo. Vlw

  • @giordanojoao6164
    @giordanojoao6164 7 років тому

    Celso, gostei muito do video, porem tenho uma duvida, tenho uma biblioteca de itens comerciais gerenciada por excel e presciso alterar um campo em todos os arquivos, gostaria de fazer uma macroé possivel? Estou tentando mas quando vou dando F8 chegando no passo de abrir a tabela, a tabela abre e para.

  • @Rodrigo-jk1ku
    @Rodrigo-jk1ku 3 роки тому +1

    Ola Celso, fiz uma macro no solidworks, igual a que ensinou, mas como faço para que seja salva na mesma pasta do projeto? e quando tentei colocar a mesma macro para outras pessoas utilizarem, não funciona em outros computadores, sabe dizer o poruqe?

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  3 роки тому +1

      Olá Rodrigo. Para outras pessoas usarem a macro que você criou, verifica se algum caminho tem o nome do seu computador, pode ser isso. Com relação a salvar, você assim:
      Claro, precisa editar alguns parâmetros abaixo... Blz.
      Sub salvarDWG()
      Set swApp = _
      Application.SldWorks
      Set Part = swApp.ActiveDoc
      nomeArquivo = Part.GetTitle
      nomeArquivo = Left(Part.GetTitle, Len(Part.GetTitle) - 7)
      On Error GoTo CaminhoErrado
      If chk_salvaro_outro_caminho.Value = True Then
      Path = txt_N_Path.Text & "\"
      Else
      Path = txtpath.Text
      End If
      If Path = "" Then
      GoTo CaminhoErrado
      End If
      Part.ViewZoomtofit2
      longstatus = Part.SaveAs3(Path & nomeArquivo & ".dwg", 0, 0)
      SalvouArquivo = True
      Exit Sub
      CaminhoErrado:
      MsgBox mensagemErroAoSalvar, vbOKOnly + vbExclamation, "KINGS CAD"
      SalvouArquivo = False

      End Sub

    • @Rodrigo-jk1ku
      @Rodrigo-jk1ku 3 роки тому

      @@CelsoTorresCCPro
      Ola Celso, fiz o que disse, mas não cria nada na pasta...
      Dim swApp As Object
      Dim Part As Object
      Dim boolstatus As Boolean
      Dim longstatus As Long, longwarnings As Long
      Dim filename As String
      Private Sub CommandButton1_Click()
      End Sub
      Private Sub cmdsave_Click()
      If chkstl.Value = True Then
      Call SaveSTL
      End If
      If chkx_t.Value = True Then
      Call SaveX_T
      End If
      If chkigs.Value = True Then
      Call SaveIGS
      End If
      If chkstep.Value = True Then
      Call SaveSTEP
      End If
      MsgBox "Sucess", vbOKOnly
      End Sub
      Sub SaveSTL()
      Set swApp = Application.SldWorks
      Set Part = swApp.ActiveDoc
      filename = Part.GetTitle
      filename = Left(Part.GetTitle, Len(Part.GetTitle) - 7)
      On Error GoTo WrongFolder
      If chk_save_other_folder.Value = True Then
      Path = txt_N_Path.Text & "\"
      Else
      Path = txtpath.Text
      End If
      If Path = "" Then
      GoTo WrongFolder
      End If
      ' Save As
      longstatus = Part.SaveAs3(Path & filename & ".STL", 0, 0)
      SaveFile = True
      Exit Sub
      WrongFolder:
      MsgBox mensagemErroAoSalvar, vbOKOnly + vbExclamation, "Error"
      SaveFile = False

      End Sub
      Sub SaveX_T()
      Set swApp = Application.SldWorks
      Set Part = swApp.ActiveDoc
      filename = Part.GetTitle
      filename = Left(Part.GetTitle, Len(Part.GetTitle) - 7)
      On Error GoTo WrongFolder
      If chk_save_other_folder.Value = True Then
      Path = txt_N_Path.Text & "\"
      Else
      Path = txtpath.Text
      End If
      If Path = "" Then
      GoTo WrongFolder
      End If
      ' Save As
      longstatus = Part.SaveAs3(Path & filename & ".X_T", 0, 0)
      SaveFile = True
      Exit Sub
      WrongFolder:
      MsgBox mensagemErroAoSalvar, vbOKOnly + vbExclamation, "Error"
      SaveFile = False
      End Sub
      fiz isso em todos, mas nenhum funciona... =( , diz que pode me ajudar !!

    • @Rodrigo-jk1ku
      @Rodrigo-jk1ku 3 роки тому

      @@CelsoTorresCCPro
      com relação ao nome o unico lugar que encontro referencia ao meu computador é isso...
      ' ******************************************************************************
      ' C:\Users
      cardelle\AppData\Local\Temp\swx16060\Macro1.swb - macro recorded on 06/16/21 by rcardelle
      ' ******************************************************************************
      Dim swApp As Object
      Dim Part As Object
      Dim boolstatus As Boolean
      Dim longstatus As Long, longwarnings As Long
      Sub main()
      frm3Dfiles.Show
      End Sub
      teria que mudar esse local?? colocaria o que?

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  3 роки тому

      @@Rodrigo-jk1ku Rodei teu código, o que falta é pegar o caminho do arquivo.

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  3 роки тому

      @@Rodrigo-jk1ku
      se for uma peça, usa este código para pegar o caminho do arquivo.
      Sub thisPart()
      Set swApp = Application.SldWorks
      Dim swModel As SldWorks.ModelDoc2
      Dim swDocExt As SldWorks.ModelDocExtension
      Dim swDraw As SldWorks.DrawingDoc
      Dim folha As String
      Dim Path As String
      Set swApp = Application.SldWorks
      Set swModel = swApp.ActiveDoc
      Set swDocExt = swModel.Extension
      Path = swModel.GetPathName
      Path = Left(Path, Len(Path) - 7)
      nomeArquivo = swModel.GetTitle

      nomeArquivo = Left(nomeArquivo, Len(nomeArquivo) - 7)
      Y = Len(nomeArquivo)

      Path = Left(Path, Len(Path) - Y)

      txtpath.Text = ""
      txtpath.Text = Path
      End SubSub thisPart()
      Set swApp = Application.SldWorks
      Dim swModel As SldWorks.ModelDoc2
      Dim swDocExt As SldWorks.ModelDocExtension
      Dim swDraw As SldWorks.DrawingDoc
      Dim folha As String
      Dim Path As String
      Set swApp = Application.SldWorks
      Set swModel = swApp.ActiveDoc
      Set swDocExt = swModel.Extension
      Path = swModel.GetPathName
      Path = Left(Path, Len(Path) - 7)
      nomeArquivo = swModel.GetTitle

      nomeArquivo = Left(nomeArquivo, Len(nomeArquivo) - 7)
      Y = Len(nomeArquivo)

      Path = Left(Path, Len(Path) - Y)

      txtpath.Text = ""
      txtpath.Text = Path
      End Sub

  • @leonardoschneider2030
    @leonardoschneider2030 8 років тому +1

    Quando tento executar , aparece a mensagem :"erro em tempo de execução 91,a variável do objeto ou a variável do bloco 'with' não foi definida" , o que eu devo fazer ? Parabéns pelos vídeos

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому

      +Leonardo Schneider Olá Leonardo, obrigado. Bom, você tem duas opções que podem lhe ajudar. A primeira, vai no editor do Visual Basic, clica no menu Depurar, depois compilar, nessa primeira parte verifica a sintaxe.
      A segunda e melhor é ir debugando passo a passo. Se você já fez todo o código, vai no botão, clica duas vezes nele e pressiona F8, que passará linha a linha. Desta forma, quando ocorrer o erro, você saberá onde está.
      Geralmente este erro está relacionado a uma palavra Set que falta.
      Tenta aí, se não der certo me avisa. Abraço.

    • @leonardoschneider2030
      @leonardoschneider2030 8 років тому +1

      Celso Torres CCPro Continua dando este erro, na verdade eu alterei algumas coisas no vba para a minha necessidade, mas está apontando o erro em uma linha "myDimension.SystemValue = com", sendo que antes dela já esta com o Set que você comentou, muito obrigado pela ajuda

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому

      +Leonardo Schneider Me manda o código por e-mail, assim consigo lhe ajudar melhor.
      celso.torres@ccpro.com.br, Ok, te aguardo.

  • @wander967
    @wander967 7 років тому

    Ola celso, gostaria de fazer uma macro para trocar o template ( formato da folha no 2d) como faço

  • @alexandrecs7730
    @alexandrecs7730 8 років тому +1

    Ótimo aula de Macro!
    Celso, ao criar o macro não ficou parecido com seu! Não aparece algumas linhas de comando! Coloquei ( ? ) para destacar. Fico no aguardo da solução!
    Sub main()
    Set swApp = _
    Application.SldWorks
    Set Part = swApp.ActiveDoc
    ?
    boolstatus = Part.Extension.SelectByID2("Altura@Esboço1@Peça teste macro.SLDPRT", "DIMENSION", -2.59941899567743E-02, 3.09895654907732E-02, 1.07858140104875E-02, False, 0, Nothing, 0)
    ?
    ?
    ?
    boolstatus = Part.EditRebuild3()
    boolstatus = Part.Extension.SelectByID2("Comprimento@Esboço1@Peça teste macro.SLDPRT", "DIMENSION", 3.41286417621077E-02, -1.22151849626765E-02, 8.41248494951091E-03, False, 0, Nothing, 0)
    ?
    ?
    boolstatus = Part.EditRebuild3()
    boolstatus = Part.Extension.SelectByID2("Espessura@Ressalto-extrusão1@Peça teste macro.SLDPRT", "DIMENSION", 9.43515825643405E-02, -0.013148407572471, -2.27323224555607E-02, False, 0, Nothing, 0)
    ?
    ?
    boolstatus = Part.EditRebuild3()
    End Sub

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому

      +Alexandre Cardoso Olá tudo bem?. Então a gravação da macro pode ser um pouco diferente, por exemplo, eu dei zoom, ele grava isso, se você não deu Zoom, não deve ter gravado. Mas o que você fez está correto, basta editar conforme o vídeo, você vai conseguirá criar a caixa de entrada de dimensão. Esse código que o SolidWorks grava é bem específico. Abraços.

    • @alexandrecs7730
      @alexandrecs7730 8 років тому +1

      +Celso Torres CCPro bom dia, espero que esteja tudo bem!
      Primeiro eu assisti esse vídeo seu: "Como criar macro para exportar dimensões para o Excel no SolidWorks". E nele você criou uma tabela do Excel junto com a peça. Fiz isso e deu certo!
      Mas, agradeço pela atenção com meu problema. Um forte abraço!

  • @STITCHTHY
    @STITCHTHY 3 роки тому

    Celso, no solidworks versão 2019 e 2020 é totalmente diferente....

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  3 роки тому

      Olá, como usa VBA7, é muito similar nas versões mais novas do SolidWorks

  • @ednaldo0106
    @ednaldo0106 8 років тому +1

    QUANDO VOU INSERIR O FORMULÁRIO NÃO INSERE NADA!O QUE SERÁ?

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому +1

      +Eddy cruz batista Olá, se você for no Excel, consegue inserir um Userform? Abra o Excel e pressione Alt+F11, clique no nome do projeto e com o botão direito, inserir userform. Se o userform aparecer no Excel, o problema pode estar na instalação do SolidWorks. Me dê um retorno, vamos resolver esse problema.
      Que versão você usa do SolidWorks?

    • @ednaldo0106
      @ednaldo0106 8 років тому

      +Celso Torres CCPro
      OBRIGADO PELA ME RESPONDER.

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому

      +Eddy cruz batista Apareceu o userform?

  • @viniciussoaresnascimento303
    @viniciussoaresnascimento303 7 років тому +1

    muito interessante, a literatura para vba em SolidWorks é bem escassa.

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  7 років тому

      Vinicius Soares Nascimento é sim, Vinícius. em português é raro mesmo. Estou montando um curso de API. em breve estará pronto. Com API, se explora muito mais do SolidWorks. um abraço.

  • @vinicussampaio8707
    @vinicussampaio8707 8 років тому +1

    Celso,
    Boa noite!
    Teria como disponibilizar esse arquivo do Solid que foi feito o macro?
    email: viniciussampaio@ucl.br
    Desde já agradeço!

    • @CelsoTorresCCPro
      @CelsoTorresCCPro  8 років тому

      Olá Vinicius... tá lá no meu site... www.ccpro.com.br