Translate

Mostrar mensagens com a etiqueta ZwCad. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ZwCad. Mostrar todas as mensagens

segunda-feira, 30 de outubro de 2023

Manual VB.net para ZWCAD : Arc

  Colocação de um "Arc" na coordenada (1,3,0) com raio 5 e angulo inicial 57 e angulo final 172 .



Segue o código:

Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.Geometry

    Public Sub Arc()

    Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
    Dim ZWCurDb As Database = ZWDoc.Database

    <CommandMethod("NewArc")> _ 
    Public Sub NewArc()
        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZwCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZwCurDb.TransactionManager.StartTransaction()

            Dim ZWBlktbl As BlockTable = ZWTrans.GetObject(ZwCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlktblrec As BlockTableRecord = ZWTrans.GetObject(ZWBlktbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Using ZWArc As Arc = New Arc(New Point3d(1, 3, 0), 5, 1, 3)
                ZWArc.SetDatabaseDefaults()

                ZWBlktblrec.AppendEntity(ZWArc)
                ZWTrans.AddNewlyCreatedDBObject(ZWArc, True)

                ZWTrans.Commit()
            End Using

        End Using

    End Sub

End Class
Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewArc.

Testem 

Cumprimentos. 

segunda-feira, 23 de outubro de 2023

Manual VB.net para ZWCAD : Points

 Colocação de um "Point" na coordenada (2,3,10) e com o estilo que temos na imagem.


Segue o código:

Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.Geometry

Public Class Points

    Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
    Dim ZWCurDb As Database = ZWDoc.Database

    <CommandMethod("NewPoint")> _ 
    Public Sub NewPoint()

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWPoint As New DBPoint
            ZWPoint.SetDatabaseDefaults()
            ZWPoint = New DBPoint(New Point3d(2, 3, 10))

            ZWBlkTblRec.AppendEntity(ZWPoint)
            ZWTrans.AddNewlyCreatedDBObject(ZWPoint, True)

            ZWCurDb.Pdsize = 5
            ZWCurDb.Pdmode = 66

            ZWTrans.Commit()

        End Using

    End Sub

End Class
Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewPoint.

Testem 

Cumprimentos. 

segunda-feira, 16 de outubro de 2023

Manual VB.net para ZWCAD : ERASE

 "Erase" de uma entidade.

A explicação desta operação está explicada no código para melhor perceção do funcionamento.

Temos então o código:

Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.Geometry

Public Class EraseObject

    Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
    Dim ZWCurDb As Database = ZWDoc.Database

       < CommandMethod("NewErase")> _ 
    Public Sub NewErase()

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            'Criação da Linha de código para ser posteriormente apagada com a ordem erase.
            Dim ZWLine As New Line
            ZWLine = New Line(New Point3d(1, 2, 0), New Point3d(6, 7, 0))
            ZWLine.SetDatabaseDefaults()
            ZWBlkTblRec.AppendEntity(ZWLine)
            ZWTrans.AddNewlyCreatedDBObject(ZWLine, True)

            'Linha de comando com a ordem erase para apagar a linha criada (ZWLine)
                       ZWLine.Erase() 'Erase

            ZWTrans.Commit()

        End Using

    End Sub


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewErase.

Vamos lá experimentar.
Cumprimentos. 

segunda-feira, 9 de outubro de 2023

Manual VB.net para ZWCAD : NewDimension

  Criação de uma "Dimension"


Temos então o código:


Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Geometry

Public Class Dimension
    <CommandMethod("NewDimension")> _  
    Public Sub NewDimension()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWDimension As New AlignedDimension
            ZWDimension.SetDatabaseDefaults()
            ZWDimension.XLine1Point = New Point3d(0, 0, 0)
            ZWDimension.XLine2Point = New Point3d(5, 5, 0)
            ZWDimension.DimLinePoint = New Point3d(0, 10, 0)

            ZWBlkTblRec.AppendEntity(ZWDimension)
            ZWTrans.AddNewlyCreatedDBObject(ZWDimension, True)

            ZWTrans.Commit()
        End Using
    End Sub
End Class


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewDimension.

Vamos lá experimentar.
Cumprimentos. 

segunda-feira, 2 de outubro de 2023

Manual VB.net para ZWCAD : NEW TEXT

  Criação de um "NEW TEXT"

Temos então o código:

IImports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Geometry


Public Class Text
   <CommandMethod("NewText")> _  
    Public Sub NewText()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWNewText As New DBText
            ZWNewText.SetDatabaseDefaults()
            ZWNewText.WidthFactor = 0.7
            ZWNewText.Height = 0.35
            ZWNewText.HorizontalMode = TextHorizontalMode.TextCenter
            ZWNewText.VerticalMode = TextVerticalMode.TextVerticalMid
            ZWNewText.AlignmentPoint = New Point3d(0, 0, 0)
            ZWNewText.TextString = "Zwcad .net Loja dos Desenhadores"

            ZWBlkTblRec.AppendEntity(ZWNewText)
            ZWTrans.AddNewlyCreatedDBObject(ZWNewText, True)

            ZWTrans.Commit()
        End Using
    End Sub
End Class


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: "NewText".

Vamos lá experimentar.
Cumprimentos. 

segunda-feira, 25 de setembro de 2023

Manual VB.net para ZWCAD : NEW LAYER WITH LINETYPE

 Criação de de uma nova "Layer" agora com "Linetype"


Temos então o código:
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Colors
Public Class LayerWithLine
    <CommandMethod("NewlayerWithLinetype")> _  
    Public Sub ZWNewlayerWithLinetype()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWCurDb.CurrentSpaceId, OpenMode.ForWrite)
            Dim ZWLayerTable As LayerTable = ZWTrans.GetObject(ZWCurDb.LayerTableId, OpenMode.ForRead)
            Dim ZwLtTable As LinetypeTable = ZWTrans.GetObject(ZWCurDb.LinetypeTableId, OpenMode.ForRead)

            Dim ZWNewlayer As String = "ZWCad_1"
            Dim ZWZWNewlayer_1 As New LayerTableRecord

            If ZWLayerTable.Has(ZWNewlayer) = False Then
                ZWZWNewlayer_1.Name = ZWNewlayer
                ZWZWNewlayer_1.Color = Color.FromColorIndex(ColorMethod.ByAci, 1)
                ZWZWNewlayer_1.LineWeight = LineWeight.LineWeight009
                ZWLayerTable.UpgradeOpen()
                ZWLayerTable.Add(ZWZWNewlayer_1)
                ZWTrans.AddNewlyCreatedDBObject(ZWZWNewlayer_1, True)
            End If

            Dim LineName As String = "dashdot"
            If ZwLtTable.Has(LineName) = False Then
                ZWCurDb.LoadLineTypeFile(LineName, "Zwcad.lin")
            End If

            If ZwLtTable.Has("dashdot") = True Then
                ZWZWNewlayer_1.UpgradeOpen()
                ZWZWNewlayer_1.LinetypeObjectId = ZwLtTable("dashdot")
            End If

            ZWTrans.Commit()
        End Using
    End Sub
End Class

Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewlayerWithLinetype.

Vamos lá experimentar.
Cumprimentos. 

segunda-feira, 18 de setembro de 2023

Manual VB.net para ZWCAD : NEW LAYER

 Criação de uma nova "Layer"

Temos então o código:

Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Colors

Public Class LayersNew

    <CommandMethod("NewLayer")> _ 
    Public Sub NewLayer()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWCurDb.CurrentSpaceId, OpenMode.ForWrite)
            Dim ZWLayerTable As LayerTable = ZWTrans.GetObject(ZWCurDb.LayerTableId, OpenMode.ForRead)

            Dim ZWNewLayer As String = "ZWCad_1"

            If ZWLayerTable.Has(ZWNewLayer) = False Then
                Dim ZWZWNewLayer_1 As New LayerTableRecord
                ZWZWNewLayer_1.Name = ZWNewLayer
                ZWZWNewLayer_1.Color = Color.FromColorIndex(ColorMethod.ByAci, 1)
                ZWZWNewLayer_1.LineWeight = LineWeight.LineWeight009
                ZWLayerTable.UpgradeOpen()
                ZWLayerTable.Add(ZWZWNewLayer_1)
                ZWTrans.AddNewlyCreatedDBObject(ZWZWNewLayer_1, True)
            End If

            ZWTrans.Commit()
        End Using
    End Sub
End Class


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewLayer.

Vamos lá experimentar.
Cumprimentos. 

quinta-feira, 7 de setembro de 2023

Manual VB.net para ZWCAD : HATCH

 Criação do Hatch "solid"



Temos então o código:

Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.Geometry
Imports ZwSoft.ZwCAD.EditorInput
Imports ZwSoft.ZwCAD.Colors

Public Class HatchRec
    <CommandMethod("NewHatch")> _ 
    Public Sub NewHatch()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Dim Largura As Double = ZWEd.GetDouble(vbCr & "Qual a Largura do retangulo ?").Value
        Dim Altura As Double = ZWEd.GetDouble(vbCr & "Qual a Altura do retangulo ?").Value

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWPoly As New Polyline()
            ZWPoly.SetDatabaseDefaults()
            ZWPoly.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)
            ZWPoly.AddVertexAt(1, New Point2d(Largura, 0), 0, 0, 0)
            ZWPoly.AddVertexAt(2, New Point2d(Largura, Altura), 0, 0, 0)
            ZWPoly.AddVertexAt(3, New Point2d(0, Altura), 0, 0, 0)

            ZWPoly.Closed = True

            ZWBlkTblRec.AppendEntity(ZWPoly)
            ZWTrans.AddNewlyCreatedDBObject(ZWPoly, True)

            Dim dot As DrawOrderTable = CType(ZWTrans.GetObject(ZWBlkTblRec.DrawOrderTableId, OpenMode.ForWrite), DrawOrderTable)

            Dim ZWHatchSet As New Hatch()
            ZWHatchSet.SetDatabaseDefaults()
            ZWHatchSet.SetHatchPattern(HatchPatternType.PreDefined, "Solid")
            Dim ZWHatchRect As ObjectId = ZWBlkTblRec.AppendEntity(ZWHatchSet)
            ZWTrans.AddNewlyCreatedDBObject(ZWHatchSet, True)
            Dim idsZWHatchRect As New ObjectIdCollection()
            idsZWHatchRect.Add(ZWPoly.ObjectId)
            dot.MoveToBottom(idsZWHatchRect)
            ZWHatchSet.Associative = True
            ZWHatchSet.Layer = "0"
            ZWHatchSet.Color = Color.FromColorIndex(ColorMethod.ByAci, 253)
            ZWHatchSet.AppendLoop(HatchLoopTypes.Outermost, idsZWHatchRect)
            ZWHatchSet.EvaluateHatch(True)
            ZWBlkTblRec.DowngradeOpen()
            idsZWHatchRect.Add(ZWHatchRect)

            ZWTrans.Commit()
        End Using
    End Sub
End Class


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewHatch.

Vamos lá experimentar.
Cumprimentos. 

quarta-feira, 19 de julho de 2023

Manual VB.net para ZWCAD : CIRCLE

 Criação de um Circulo, inserido no ponto 10,15,0 e com raio 2.5.




Temos então o código, quem quiser pode experiementar com base no código anterior pode na linha de comando a pedir o raio.


Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.Geometry
Public Class ZWCirculoObject

<CommandMethod("NewCircle")>
        Public Sub NewCircle()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWCurDb As Database = ZWDoc.Database

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWCircle As Circle = New Circle()
            ZWCircle.SetDatabaseDefaults()
            ZWCircle.Center = New Point3d(10, 15, 0)
            ZWCircle.Radius = 2.5

            ZWBlkTblRec.AppendEntity(ZWCircle)
            ZWTrans.AddNewlyCreatedDBObject(ZWCircle, True)

            ZWTrans.Commit()
        End Using
    End Sub

End Class


Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewCircle.

Vamos lá experimentar.
Cumprimentos. 

segunda-feira, 17 de julho de 2023

Manual VB.net para ZWCAD : RECTANGLE

 Criação de um Retangulo/Quadrado com uma Polilyne fechada, inserido no ponto 0,0,0



Com programação VB.net a linha de código que fecha a polilinha é a seguinte:

ZWPoly.Closed = True

Temos então as duas de linhas de código que nos pedem as variáveis, Largura e Altura:
Dim Largura As Double = ZWEd.GetDouble(vbCr & "Qual a Largura do retangulo ?").Value
Dim Altura As Double = ZWEd.GetDouble(vbCr & "Qual a Altura do retangulo ?").Value

Temos então o código para quem quiser experimentar
Public Class ZWRetanguloObject
  <CommandMethod("NewRetangulo")>
  
       Public Sub NewRetangulo()

        Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim ZWEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        Dim ZWCurDb As Database = ZWDoc.Database

        Dim Largura As Double = ZWEd.GetDouble(vbCr & "Qual a Largura do retangulo ?").Value
        Dim Altura As Double = ZWEd.GetDouble(vbCr & "Qual a Altura do retangulo ?").Value

        Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()

            Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
            Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

            Dim ZWPoly As Polyline = New Polyline()
            ZWPoly.SetDatabaseDefaults()
            ZWPoly.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)
            ZWPoly.AddVertexAt(1, New Point2d(Largura, 0), 0, 0, 0)
            ZWPoly.AddVertexAt(2, New Point2d(Largura, Altura), 0, 0, 0)
            ZWPoly.AddVertexAt(3, New Point2d(0, Altura), 0, 0, 0)

            ZWPoly.Closed = True

            ZWBlkTblRec.AppendEntity(ZWPoly)
            ZWTrans.AddNewlyCreatedDBObject(ZWPoly, True)

            ZWTrans.Commit()
        End Using
    End Sub
End Class

Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: Newretangulo.

Testem 
Cumprimentos. 

quarta-feira, 12 de julho de 2023

Manual VB.net para ZWCAD : POLYLINE

 Criação de uma Polilinha, com coordenadas (0,0) , (1,0) , (3,5).




Com programação VB.net

1:  Imports ZwSoft.ZwCAD.ApplicationServices  
2:  Imports ZwSoft.ZwCAD.Runtime  
3:  Imports ZwSoft.ZwCAD.DatabaseServices  
4:  Imports ZwSoft.ZwCAD.Geometry  
5:    
6: Public Class ZWPolylineObject
7:
8:  <CommandMethod("NewPolyline")>
9:  Public Sub NewPolyline()
10:
11:     Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
12:     Dim ZWCurDb As Database = ZWDoc.Database
13:
14:     Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()
15:
16:         Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
17:         Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
18:
19:         Dim ZWPoly As Polyline = New Polyline()
20:         ZWPoly.SetDatabaseDefaults()
21:         ZWPoly.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)
22:         ZWPoly.AddVertexAt(1, New Point2d(1, 0), 0, 0, 0)
23:         ZWPoly.AddVertexAt(2, New Point2d(3, 5), 0, 0, 0)
24:
25:         ZWBlkTblRec.AppendEntity(ZWPoly)
26:         ZWTrans.AddNewlyCreatedDBObject(ZWPoly, True)
27:
28:         ZWTrans.Commit()
29:     End Using
30: End Sub
31:
32: End Class
Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewPolyline.





Testem 
Cumprimentos. 

segunda-feira, 10 de julho de 2023

Manual VB.net para ZWCAD : LINE

 Hoje vou apresentar um primeiro passo para criar um manual de programação para o ZWCAD.

A ideia passa por mostrar como se cria objetos, e assim passo a passo alguns possam aprender a fazer pequenas rotinas.

Criação de uma linha, com coordenadas (1, 2, 0) , (6, 7, 0).



Com programação VB.net

1:  Imports ZwSoft.ZwCAD.ApplicationServices  
2:  Imports ZwSoft.ZwCAD.Runtime  
3:  Imports ZwSoft.ZwCAD.DatabaseServices  
4:  Imports ZwSoft.ZwCAD.Geometry  
5:    
6: Public Class ZWLineObject 
7:    <CommandMethod("NewLine")> _  
8:  Public Sub AddLine()
9:
10:     Dim ZWDoc As Document = Application.DocumentManager.MdiActiveDocument
11:     Dim ZWCurDb As Database = ZWDoc.Database
12:
13:     Using ZWTrans As Transaction = ZWCurDb.TransactionManager.StartTransaction()
14:
15:         Dim ZWBlkTbl As BlockTable = ZWTrans.GetObject(ZWCurDb.BlockTableId, OpenMode.ForRead)
16:         Dim ZWBlkTblRec As BlockTableRecord = ZWTrans.GetObject(ZWBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
17:
18:         Dim ZWLine As Line = New Line(New Point3d(1, 2, 0), New Point3d(6, 7, 0))
19:         ZWLine.SetDatabaseDefaults()
20:         ZWBlkTblRec.AppendEntity(ZWLine)
21:         ZWTrans.AddNewlyCreatedDBObject(ZWLine, True)
22:
23:         ZWTrans.Commit()
24:     End Using
25: End Sub
26:
27: End Class
Após escrever o código, deve-se criar o dll. No  ZWCad, na linha de comando: netload carregar o dll criado. na linha de comando chamamos então o comando criado neste caso: NewLine.


Testem 
Cumprimentos. 

terça-feira, 1 de julho de 2014

Remove cui file - Autocad, Zwcad

Para remover um ficheiro cui do Autocad ou do ZWcad, precisamos de usar o comando Menuload.

Bastando para isso corrermos o comando: MENUNLOAD.
Aparece-nos o seguinte menu.

Autocad

ZWcad
Bastando escolher o ficheiro Cui e fazer Unload.

Bom trabalho.

segunda-feira, 23 de junho de 2014

Convert stb to ctb or ctb to stb Autocad and Zwcad




Quantas vezes precisamos de um ctb que temos em stb ou vice-versa?
Poucas. E como se fazemos?

É com o comando CONVERTPSTYLES, e temos mesmo de escrever na linha de comando, pois não estáa no mennu nem na Ribbon. Depois ao recebermos uma mensagem e confirmamos, voilá temos então o CTB ou o STB.

Experimentem.

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.





sexta-feira, 5 de julho de 2013

ZWCAD+ 2014 Preview Novidades

Enquanto não recebo informações sobre o ZWCAD 2014, encontrei o seguinte filme com as novidades.

Espero dar novidades em breve.



Bom trabalho