VB.NET qualche suggerimento ?

PlannerRoad

Moderatore
Membro dello Staff
Professione: Scarabocchiatore
Software: AutoCAD 2020 - QGIS
Regione: Italia
...Io giuro mi sto impegnando per mettermi sotto, ma con il VBA ancora sotto mano non ce la faccio proprio a complicarmi la vita al cubo... grgrgrgrgrggrgrgr
Zitto e studia senza lamentarti, che poi ti daremo tanti esercizi da fare a casa! :biggrin: :finger:
 

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
Zitto e studia senza lamentarti, che poi ti daremo tanti esercizi da fare a casa! :biggrin: :finger:
Ci sto provando per osmosi... ma non sembra funzionare molto !!! :confused:



C'è da dire però che oltre a vari "contro" il VB.NET sembra un po' stabile essendo anche più rigido e incasinato al cubo.
 

pertengineering

Utente Junior
Professione: progettazione
Software: autocad, cadworx, solidworks
Regione: friuli
come accedere ai layer per visualizzarne le proprieta':

Codice:
Private Function get_layxdata() As Array
        Dim myXdata As Array = Nothing
        Using db As Database = ThisDatabase
            Using tr As Autodesk.AutoCAD.DatabaseServices.Transaction = tr_start
                Using lt As LayerTable = tr.GetObject(db.LayerTableId, OpenMode.ForRead)
                    Using r As LayerTableRecord = tr.GetObject(lt("0"), OpenMode.ForRead)
                        If r.XData <> Nothing Then
                            myXdata = r.XData.AsArray
                        End If
                        tr.Commit()
                    End Using
                End Using
            End Using
        End Using
        Return myXdata
End Function
in questo esempio specifico chiedo gli xdata attaccati al layer "0"

Saluti.
 

tracciatura.net

Utente poco attivo
Professione: Tecnico
Software: AutoCAD - Inventor - Tekla - Nesting
Regione: Piemonte
Lo so che è un post vecchio ma visto che documentazione in Italiano c'è ne cosi poca vorrei sottolineare la complessità di VB.NET,
mentre con VBA per creare una linea scrivevamo:
Codice:
Sub AddLine()
    Dim ptStr(0 To 2) As Double
    ptStr(0) = 5: ptStr(1) = 5: ptStr(2) = 0#
     Dim ptEnd(0 To 2) As Double
    ptEnd(0) = 12: ptEnd(1) = 3: ptEnd(2) = 0#
 
    ' Create a Line object in model space
    Dim lineObj As AcadLine
    Set lineObj = ThisDrawing.ModelSpace.AddLine(ptStr, ptEnd)
 
End Sub
Con VB.NET si deve scrivere...
Codice:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
 
<CommandMethod("AddLine")> _
Public Sub AddLine()
  '' Get the current document and database
  Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  Dim acCurDb As Database = acDoc.Database
 
  '' Start a transaction
  Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
 
      '' Open the Block table for read
      Dim acBlkTbl As BlockTable
      acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
 
      '' Open the Block table record Model space for write
      Dim acBlkTblRec As BlockTableRecord
      acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
                                      OpenMode.ForWrite)
 
      '' Create a line that starts at 5,5 and ends at 12,3
      Dim acLine As Line = New Line(New Point3d(5, 5, 0), New Point3d(12, 3, 0))
 
      acLine.SetDatabaseDefaults()
 
      '' Add the new object to the block table record and the transaction
      acBlkTblRec.AppendEntity(acLine)
      acTrans.AddNewlyCreatedDBObject(acLine, True)
 
      '' Save the new object to the database
      acTrans.Commit()
  End Using
End Sub
Quindi?
Restate in VBA finche potete che è un linguaggio più "user friendly"

Comunque io sto iniziando a fare delle librerie (.DLL) da caricare in nanoCAD
scritte e compilate in MS VisualStudio (gratuito)
Se avete bisogno di una mano fate un fischio