tracciatura.net > 11-06-2020, 10:55 PM
'Variabili
Dim pnt_1(2) 'Array di Double
Dim pnt_2(2) 'Array di Double
Dim lineObj 'Oggetto linea
pnt_1(0) = 200 'Coordinata X
pnt_1(1) = 200 'Coordinata Y
pnt_1(2) = 0 'Coordinata Z
pnt_2(0) = 200 'Coordinata X
pnt_2(1) = 300 'Coordinata Y
pnt_2(2) = 0 'Coordinata Z
'Creo l'oggetto lineObj con AddLine Method (ActiveX)
'RetVal = object.AddLine(StartPoint, EndPoint)
Set lineObj = ThisDrawing.ModelSpace.AddLine(pnt_1, pnt_2)Imports Teigha.Runtime 'Namespace HostMgd.ApplicationServices -> Public NotInheritable Class CommandMethodAttribute
Imports HostMgd.ApplicationServices 'Namespace HostMgd.ApplicationServices -> Public NotInheritable Class Document
Imports Teigha.DatabaseServices 'Namespace Teigha.DatabaseServices -> Public NotInheritable Class Database
Imports Teigha.Geometry 'Namespace Teigha.Geometry -> Public Structure Point3d
Namespace Test_01
Public Class Utility
' Add_Line diventa un comando da prompt come se fosse integrato al CAD
<CommandMethod("Add_Line")>
Public Sub Add_Line()
' Riferimenti al database corrente (vedi prossimo post)
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
' Inizia una transazione (vedi prossimo post)
Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
' Apre la tabella block in lettura (vedi prossimo post)
Dim acBlkTbl As BlockTable
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
'' Apre la tabella block record nel ModelSpace per scrittura (vedi prossimo post)
Dim acBlkTblRec As BlockTableRecord
acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim point1 As Point3d = New Point3d(200, 200, 0)
Dim point2 As Point3d = New Point3d(200, 300, 0)
'' Crea linea
Dim acLine As Line = New Line(point1, point2)
acLine.SetDatabaseDefaults()
' Aggiunge il nuovo oggetto (linea) alla tabella block record
acBlkTblRec.AppendEntity(acLine)
acLine.GetHashCode()
' Aggiunge il nuovo oggetto (linea) alla transazione
acTrans.AddNewlyCreatedDBObject(acLine, True)
' Salva il nuovo oggetto (linea) nel database (disegno)
acTrans.Commit()
End Using
End Sub
End Class
End Namespacetracciatura.net > 11-06-2020, 11:18 PM
![[Immagine: GUID-1AA8F78F-DF90-4AA4-A975-A06FBF65231C.png]](https://help.autodesk.com/cloudhelp/2021/ENU/OARX-DevGuide-Managed/images/GUID-1AA8F78F-DF90-4AA4-A975-A06FBF65231C.png)