Translate

Mostrar mensagens com a etiqueta VB.net. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta VB.net. Mostrar todas as mensagens

quarta-feira, 28 de maio de 2014

Noções básicas de Migração Autocad VBA para VB.net



Boas para quem quiser fica aqui o link da apresentação do Augusto Gonçalves em Português sobre Migração Autocad VBA para VB.net.


Ficheiros da apresentação: Download

São 48 minutos, aproveitem.

Bom trabalho

quarta-feira, 19 de março de 2014

VB.net Circle (Zwcad and Autocad)

Como fazer um circulo (5,5,0).

ZWCad+
1:  Imports ZwSoft.ZwCAD.ApplicationServices  
2:  Imports ZwSoft.ZwCAD.Runtime  
3:  Imports ZwSoft.ZwCAD.DatabaseServices  
4:  Imports ZwSoft.ZwCAD.Geometry  
5:    
6:  Public Class Class1  
7:    <CommandMethod("Circulo")> _  
8:    Public Sub circulo()  
9:      Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
10:      Dim CurDb As Database = Doc.Database  
11:    
12:      Using Trans As Transaction = CurDb.TransactionManager.StartTransaction()  
13:    
14:        Dim BlkTbl As BlockTable = Trans.GetObject(CurDb.BlockTableId, OpenMode.ForRead)  
15:        Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
16:    
17:        Dim Circ As Circle = New Circle()  
18:        Circ.SetDatabaseDefaults()  
19:        Circ.Center = New Point3d(5, 5, 0)  
20:        Circ.Radius = 4.25  
21:        BlkTblRec.AppendEntity(Circ)  
22:        Trans.AddNewlyCreatedDBObject(Circ, True)  
23:    
24:        Trans.Commit()  
25:      End Using  
26:    End Sub  
27:  End Class  
Autocad
1:  Imports Autodesk.AutoCAD.Runtime  
2:  Imports Autodesk.AutoCAD.ApplicationServices  
3:  Imports Autodesk.AutoCAD.DatabaseServices  
4:  Imports Autodesk.AutoCAD.Geometry  
5:    
6:  Public Class Class1  
7:    <CommandMethod("Circulo")> _  
8:    Public Sub circulo()  
9:      Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
10:      Dim CurDb As Database = Doc.Database  
11:    
12:      Using Trans As Transaction = CurDb.TransactionManager.StartTransaction()  
13:    
14:        Dim BlkTbl As BlockTable = Trans.GetObject(CurDb.BlockTableId, OpenMode.ForRead)  
15:        Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
16:    
17:        Dim Circ As Circle = New Circle()  
18:        Circ.SetDatabaseDefaults()  
19:        Circ.Center = New Point3d(5, 5, 0)  
20:        Circ.Radius = 4.25  
21:        BlkTblRec.AppendEntity(Circ)  
22:        Trans.AddNewlyCreatedDBObject(Circ, True)  
23:    
24:        Trans.Commit()  
25:      End Using  
26:    End Sub  
27:  End Class  



Boa Programação.

domingo, 9 de março de 2014

VB.net Polyline (Zwcad and Autocad)

Agora uma polilinha com 3 pontos (0,0); (5,5); (10,0).

ZWCad+


 Imports ZwSoft.ZwCAD.ApplicationServices  
 Imports ZwSoft.ZwCAD.Runtime  
 Imports ZwSoft.ZwCAD.DatabaseServices  
 Imports ZwSoft.ZwCAD.Geometry  
   
 Public Class Class1  
   <CommandMethod("Poly")> _  
   Public Sub proj1()  
   
     Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
     Dim Db As Database = Doc.Database  
   
     Using Trans As Transaction = Db.TransactionManager.StartTransaction()  
   
       Dim BlkTbl As BlockTable = Trans.GetObject(Db.BlockTableId, OpenMode.ForRead)  
       Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
   
       Dim Poly As Polyline = New Polyline()  
       Poly.SetDatabaseDefaults()  
       Poly.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)  
       Poly.AddVertexAt(1, New Point2d(5, 5), 0, 0, 0)  
       Poly.AddVertexAt(2, New Point2d(10, 0), 0, 0, 0)  
   
       BlkTblRec.AppendEntity(Poly)  
       Trans.AddNewlyCreatedDBObject(Poly, True)  
   
       Trans.Commit()  
     End Using  
   End Sub  
 End Class  

Autocad


 Imports Autodesk.AutoCAD.Runtime  
 Imports Autodesk.AutoCAD.ApplicationServices  
 Imports Autodesk.AutoCAD.DatabaseServices  
 Imports Autodesk.AutoCAD.Geometry  
   
 Public Class Class1  
   <CommandMethod("Poly")> _  
   Public Sub proj1()  
   
     Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
     Dim Db As Database = Doc.Database  
   
     Using Trans As Transaction = Db.TransactionManager.StartTransaction()  
   
       Dim BlkTbl As BlockTable = Trans.GetObject(Db.BlockTableId, OpenMode.ForRead)  
       Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
   
       Dim Poly As Polyline = New Polyline()  
       Poly.SetDatabaseDefaults()  
       Poly.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)  
       Poly.AddVertexAt(1, New Point2d(5, 5), 0, 0, 0)  
       Poly.AddVertexAt(2, New Point2d(10, 0), 0, 0, 0)  
   
       BlkTblRec.AppendEntity(Poly)  
       Trans.AddNewlyCreatedDBObject(Poly, True)  
   
       Trans.Commit()  
     End Using  
   End Sub  
 End Class  





terça-feira, 4 de março de 2014

VB.net Line (Zwcad and Autocad)

E que tal fazer uma linha com coordenadas: (0, 0, 0); (20, 15, 0).

Zwcad+
 Imports ZwSoft.ZwCAD.ApplicationServices  
 Imports ZwSoft.ZwCAD.Runtime  
 Imports ZwSoft.ZwCAD.DatabaseServices  
 Imports ZwSoft.ZwCAD.Geometry  
   
 Public Class Class1  
   <CommandMethod("linha")> _  
   Public Sub linha()  
     Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
     Dim Db As Database = Doc.Database  
   
     Using Trans As Transaction = Db.TransactionManager.StartTransaction()  
   
       Dim BlkTbl As BlockTable = Trans.GetObject(Db.BlockTableId, OpenMode.ForRead)  
       Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
   
       Dim Linha As Line = New Line(New Point3d(0, 0, 0), New Point3d(20, 15, 0))  
       Linha.SetDatabaseDefaults()  
       BlkTblRec.AppendEntity(Linha)  
       Trans.AddNewlyCreatedDBObject(Linha, True)  
   
       Trans.Commit()  
     End Using  
   End Sub  
 End Class  

Autocad+
 Imports Autodesk.AutoCAD.ApplicationServices  
 Imports Autodesk.AutoCAD.Runtime  
 Imports Autodesk.AutoCAD.DatabaseServices  
 Imports Autodesk.AutoCAD.Geometry  
   
 Public Class Class1  
   <CommandMethod("linha")> _  
   Public Sub linha()  
     Dim Doc As Document = Application.DocumentManager.MdiActiveDocument  
     Dim Db As Database = Doc.Database  
   
     Using Trans As Transaction = Db.TransactionManager.StartTransaction()  
   
       Dim BlkTbl As BlockTable = Trans.GetObject(Db.BlockTableId, OpenMode.ForRead)  
       Dim BlkTblRec As BlockTableRecord = Trans.GetObject(BlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)  
   
       Dim linha As Line = New Line(New Point3d(0, 0, 0), New Point3d(20, 15, 0))  
       linha.SetDatabaseDefaults()  
       BlkTblRec.AppendEntity(linha)  
       Trans.AddNewlyCreatedDBObject(linha, True)  
   
       Trans.Commit()  
     End Using  
   End Sub  
 End Class  

Criado o código teremos de salvar ir ao menu bar Build->Build linha e então temos o dll criado.

Vamos à linha de comando ao Zwcad ou Autocad e fazemos
Command: Netload

Temos uma caixa de dialogo e vamos caregar o nosso dll criado.

Por fim basta escrever na linha de comando a nossa nova rotina.

Command:linha




terça-feira, 25 de fevereiro de 2014

VB.net Bemvindo (Zwcad and Autocad)

Depois de termos criado o template para o Zwcad, vamos agora ter uma rotina de boas vindas para o Zwcad e Autocad.

Zwcad+
1:  Imports ZwSoft.ZwCAD.ApplicationServices  
2:  Imports ZwSoft.ZwCAD.Runtime  
3:  Imports ZwSoft.ZwCAD.DatabaseServices  
4:  Imports ZwSoft.ZwCAD.Geometry  
5:    
6:  Public Class Class1  
7:    <CommandMethod("BemVindo")> _  
8:    Public Sub BemVindo()  
9:      Dim nome As String = InputBox("Qual o seu nome? ", "ZWcad+ 2014")  
10:      MsgBox("Seja Bem Vindo " & nome)  
11:    End Sub  
12:  End Class  

Autocad

1:  Imports Autodesk.AutoCAD.ApplicationServices  
2:  Imports Autodesk.AutoCAD.DatabaseServices  
3:  Imports Autodesk.AutoCAD.EditorInput  
4:  Imports Autodesk.AutoCAD.Runtime  
5:    
6:  Public Class Class1  
7:    <CommandMethod("BemVindo")> _  
8:    Public Sub Proj1()  
9:      Dim nome As String = InputBox("Qual o seu nome? ", "Autocad")  
10:      MsgBox("Bem Vindo " & nome)  
11:    End Sub  
12:  End Class  

Criado o código teremos de salvar ir ao menu bar Build->Build Bemvindo e então temos o dll criado.




Vamos à linha de comando ao Zwcad ou Autocad e fazemos
Command: Netload

Temos uma caixa de dialogo e vamos caregar o nosso dll criado.

Por fim basta escrever na linha de comando a nossa nova rotina.

Command:Bemvindo

e voilá



Boa programação


sexta-feira, 21 de fevereiro de 2014

VB.net Create Template to ZWcad

O ZWCad 2012 + já corre rotinas em VB.net, vou mostrar como se cria um template de programação para o ZWcad.

Primeiro devemos instalar o Visual Basic 2010 Express. Download

Depois de instalar o VB.net abrimos então o programa e vamos seguir os seguintes passos.


Abrimos um novo Projecto e damos um nome.




Adicionamos então as referências: ZwDatabaseMgd.dll e ZwManaged.dll, indo ao menu Project, <nome do ficheiro> Properties


Devemos também inserir no COM features o seguinte:


Ficamos com este aspecto final.


Por fim no compile escolhemos .net Framework 4



Para pouparmos trabalho de futuro colocamos algumas linhas de comando que normalmente poderemos utilizar regularmente.


Por fim vamos criar o template.
Seguem-se todos os passos.





Assim, quando abrimos o Visual Basic e vamos criar um novo projecto já temos o nosso template para o ZWcad.


Boa programação.





quinta-feira, 21 de fevereiro de 2013

CAD Portugal para todos

Caros amigos, criei no Google + e no Facebbok uma comunidade, gostaria que todos participassem.


A ideia é para trocarmos ideias, sites e blogs,  truques e dicas, novidades, noticias, programações (lisp, VBA ou VB.net), etc., etc., etc. de qualquer tipo de CAD (Autocad, GstarCAD, ZWCad, etc etc.).
Podem também escrever sobre Civil3D, PowerCivil, Revit, Tekla, etc etc etc), e aproveitar este espaçõ para trocas de informação sobre estas novas ferramentas.
A ideia passa mesmo que seja uma comunidade de todos para todos, a única coisa que peço é inovação e respeito.

Fica também apresentado o logo escolhido criado pelo Filipe Francisco num concurso realizado pela comunidade.

Google + : CAD Portugal
Facebook : CAD Portugal

Obrigado.


domingo, 16 de dezembro de 2012

1ªFormação Programação em VB.net para o Autocad

A primeira turma

Terminei ontem, dia 15 de Dezembro de 2012, a minha primeira experiência como formador.
Foram 28 horas de programação em VB.net para o Autocad na Qualicad.

Tratou-se de uma transmissão de experiência passada para os formandos para que estes possam começar a dar os primeiros passos na programação através da criação de rotinas e com estas rotinas poderem seguramente tirar muito melhor proveito no Autocad.

Fica assim toda a informação do curso e os contactos para os que estiverem interessados.

Qualicad - Programação VB.NET para AutoCAD
Descrição do Curso pdf





sábado, 20 de outubro de 2012

Curso VB.net na Qualicad

Foi com muito orgulho que recebi o convite do meu amigo João Santos.



A Qualicad abriu inscrições para o curso de VB.net e o João convidou-me a participar como Formador. Para mim é uma nova experiência à qual espero corresponder.

Não se trata apenas de ir dar uma formação, mas antes dar formação na Qualicad, o centro de formação CAD, reconhecido como o melhor centro de formação de Portugal.

Fica a explicação do curso:

Programação VB.NET para AutoCAD

Pré-requisitos: Conhecimentos correspondentes ao Curso de AutoCAD Fundamental

Duração: 28 horas
Preço: 305 € (+IVA)


Objetivos: Criar e executar programas em VB.NET, permitindo uma adaptação do AutoCAD a funções específicas e programar a comunicação com outros programas.

Programa: Introdução ao Visual Studio. Estrutura de projecto. Carregamento e execução de projectos. Linguagens VB para .NET. Conceitos fundamentais do ambiente de programação AutoCAD .NET. Objetos e coleções. Propriedades e métodos. Controlo do ambiente AutoCAD. Criação e edição de entidades. Controlo de erros. Ligações com outros programas. Passagem de programas VBA para VB.NET.


Oferta: Manual adequado ao curso, João Santos/Francisco Silva


Datas: 01 a 22 dezembro (sábados, 09h30-17h30) 


Certificações: Certificado de Formação Profissional QualiCAD e Certificado de Conclusão Autodesk

Inscrições em : 
 Qualicad
Mail Qualicad
tel. 213 427 612

Obrigado

sexta-feira, 19 de outubro de 2012

VB.net -> Rotina Text para Excel

Andava com um desenho com mais de 300 coordenadas de estacas marcadas no cad e com uma tabela em text, quando não é que me pedem para passar esse texto para uma tabela de excel.

Então voilá, acabei de criar uma rotina que passa o texto para o excel, depois é só "arrumar", mas em breve espero dar mais um avanço para que este "arrumar" desapareça.

O comando é  Text2XLS ;)


Pela primeira vez coloquei uma mensagem para aqueles que que estiverem interessados na rotina possam fazer um justo donativo aqui no blog.

Já tenho um icon no desktop e já trabalhou.

Aqui está:


Qualquer questão ou interesse é só entrar em contacto.

Obrigado

segunda-feira, 14 de maio de 2012

Cad help - rotina para ajudar no desenho

Comecei á pouco tempo a criar pequenas rotinas para ajudar em algumas funções no Autocad.

Chamei a esta ferramenta CAD HELP, já o tenho a funcionar como toolbar no Autocad.


A primeira rotina dei o nome de Change Layer.


A sua função é correr todas as entidades escolhidas entre Textos, Dimensões, Mtext e Multileaders e ao escolhermos uma destas dizemos em que layer queremos colocar. Como podem observar no interface seguinte.


A segunda rotina chamei  Mover Z, ela está aqui no blog disponível mas unicamente a trabalhar na linha de comando, agora alterei e trabalha com interface.


A sua função é somar ou subtrair valores ao valor dado em Z, se tivermos todos os Z com o valor 0 (zero) por exemplo numa topografia, podemos mover todas as entidades para os valores altimétricos correspondentes e ficamos com essa topografia em 3D, ao fazermos eata operação a entidade fica com a cor verde para melhor sabermos as que foram alteradas. No fim basta colocarmos novamente as entidades com valor bylayer.


Fica aqui apresentado o novo projecto, se quiserem dar algumas ideias podem enviar.

Esta ferramenta apenas trabalha no Autocad.

Bom trabalho.





sexta-feira, 11 de maio de 2012

Qualicad no seu melhor


A Qualicad vai começar a apoiar os desempregados, neste momento dificil para a área do projecto e construção.


Assim a QualiCAD lançou uma promoção especial para todos os activos que se encontram, infelizmente, numa situação de desemprego: 35% de desconto na inscrição em qualquer um dos nossos cursos calendarizados.

Promoção: Formação para desempregados
do QualiCAD de QualiCAD

Mais informações em Qualicad.com

Parabéns ao João Santos e a toda a sua equipa por mais esta iniciativa após ter completado os 10 anos da Qualicad.

Aproveitem.

domingo, 20 de novembro de 2011

VBA - Inserir texto no GstarCad

Hoje apresento um filme de programação em VBA para o GstarCad que também pode servir para o Autocad, ZWCad, etc.

Espero de futuro colocar mais filmes com demonstrações de programação para programas Cad.



Espero que gostem e comentem

Boa semana de trabalho.

quarta-feira, 9 de novembro de 2011

O que acham destas figuras?

Estas imagens identificam o que pretendemos?

Imaginem que apareceria um botão destes no vosso autocad, o que será que está a pedir para desenhar?





domingo, 2 de outubro de 2011

VB.net - Rotina para quadro de pilares.

Já estou a finalizar a rotina para desenhar um Quadro de Pilares, ficam aqui algumas imagens.







Comentem e obrigado.

segunda-feira, 5 de setembro de 2011

VB.net - Apresentação da rotina para Sapatas

Olá a todos hoje mostro o filme do funcionamento da rotina para desenhar as armaduras de sapatas.

Espero que gostem.


Comentem e bom trabalho.

Obrigado

terça-feira, 30 de agosto de 2011

VB.net - Secção de Vigas Armadas Versão 3, demonstração

Olá a todos, tenho hoje para mostrar a rotina que produz secções armadas.

Espero que gostem e comentem.


Boa programação.

segunda-feira, 29 de agosto de 2011

VB.net - Erase

Hoje apresento a programação para o comando de erase por selecção.


Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime

Public Class Class1

    <CommandMethod("erasepoly")> _
    Public Sub erasepolilinha()

        'para ter acesso ao editor do AutoCAD
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor

        'para ter acesso banco de dados do desenho aberto no AutoCAD
        Dim db As Database = Application.DocumentManager.MdiActiveDocument.Database

        Dim mydwg As Document = Application.DocumentManager.MdiActiveDocument

        'Iniciar a transacção
        Using trans As Transaction = db.TransactionManager.StartTransaction

            'Pedido de objetos a serem selecionados na área de desenh
            Dim objetos As PromptSelectionResult = mydwg.Editor.GetSelection()

            'Abrir o Model Space
            Dim modelSpace As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForRead)

            If objetos.Status = PromptStatus.OK Then

                Dim acSSet As SelectionSet = objetos.Value

                For Each selectobject As SelectedObject In acSSet

                    If Not IsDBNull(selectobject) Then

                        Dim entidade As Entity = trans.GetObject(selectobject.ObjectId, OpenMode.ForWrite)

                        If Not IsDBNull(entidade) Then

                            '' apaga as entidades

                            entidade.Erase()

                        End If

                    End If

                Next

                'Confirmar a transação
                trans.Commit()
            End If

        End Using 'Fecha a transação

    End Sub

End Class


Comentem. 

Boa programação.


domingo, 21 de agosto de 2011

VB.net - Um quadrado, descubra as diferenças

Vou apresentar duas maneiras de desenhar um quadrado com uma rotina.
Descubra as diferenças

            Dim estribo As Polyline = New Polyline()
            estribo.SetDatabaseDefaults()
            estribo.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)
            estribo.AddVertexAt(1, New Point2d(0, 1), 0, 0, 0)
            estribo.AddVertexAt(2, New Point2d(1, 1), 0, 0, 0)
            estribo.AddVertexAt(3, New Point2d(1, 0), 0, 0, 0)
            estribo.AddVertexAt(4, New Point2d(0,0), 0, 0, 0)


outra:

            Dim novalinha As New Line(New Point3d(0, 0, 0), New Point3d(1,0, 0))

            Dim novalinha1 As New Line(New Point3d(1, 0, 0), New Point3d(1, 1, 0))

            Dim novalinha2 As New Line(New Point3d(1, 1, 0), New Point3d(0, 1, 0))

            Dim novalinha3 As New Line(New Point3d(0, 1, 0), New Point3d(0, 0, 0))