Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.DatabaseServices
Imports System.Runtime.InteropServices
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.Geometry
Namespace test
Public Class test
<DllImport("zwcad.exe", EntryPoint:="zcedCmd", CallingConvention:=CallingConvention.Cdecl)> _
Private Shared Function zcedCmd(vlist As System.IntPtr) As Integer
End Function
Shared Function SendCmd(cmds() As String) As Integer
Dim rb As New ResultBuffer()
For Each cmd As String In cmds
rb.Add(New TypedValue(5005, cmd))
Next
Return SendCmd(rb)
End Function
Shared Function SendCmd(rb As ResultBuffer) As Integer
Return zcedCmd(rb.UnmanagedObject)
End Function
'使用非托管的acedCmd方法调用平台命令及由ObjectARX或.NET API定义的命令
<CommandMethod("CallCmd")> _
Public Sub CallCmd()
Dim ZcDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim ZcDB As Database = ZcDoc.Database
Using ZcTran As Transaction = ZcDB.TransactionManager.StartTransaction
Dim ZcBLT As BlockTable = ZcTran.GetObject(ZcDB.BlockTableId, OpenMode.ForRead)
Dim ZcBLTR As BlockTableRecord = ZcTran.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim line As Line = New Line(New Point3d(0, 0, 0), New Point3d(10, 10, 0))
ZcBLTR.AppendEntity(line)
ZcTran.AddNewlyCreatedDBObject(line, True)
ZcTran.Commit()
End Using
SendCmd({"_.ZOOM", "_E"})
End Sub
End Class
End Namespace
Imports ZwSoft.ZwCAD.DatabaseServices
Imports System.Runtime.InteropServices
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.Geometry
Namespace test
Public Class test
<DllImport("zwcad.exe", EntryPoint:="zcedCmd", CallingConvention:=CallingConvention.Cdecl)> _
Private Shared Function zcedCmd(vlist As System.IntPtr) As Integer
End Function
Shared Function SendCmd(cmds() As String) As Integer
Dim rb As New ResultBuffer()
For Each cmd As String In cmds
rb.Add(New TypedValue(5005, cmd))
Next
Return SendCmd(rb)
End Function
Shared Function SendCmd(rb As ResultBuffer) As Integer
Return zcedCmd(rb.UnmanagedObject)
End Function
'使用非托管的acedCmd方法调用平台命令及由ObjectARX或.NET API定义的命令
<CommandMethod("CallCmd")> _
Public Sub CallCmd()
Dim ZcDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim ZcDB As Database = ZcDoc.Database
Using ZcTran As Transaction = ZcDB.TransactionManager.StartTransaction
Dim ZcBLT As BlockTable = ZcTran.GetObject(ZcDB.BlockTableId, OpenMode.ForRead)
Dim ZcBLTR As BlockTableRecord = ZcTran.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim line As Line = New Line(New Point3d(0, 0, 0), New Point3d(10, 10, 0))
ZcBLTR.AppendEntity(line)
ZcTran.AddNewlyCreatedDBObject(line, True)
ZcTran.Commit()
End Using
SendCmd({"_.ZOOM", "_E"})
End Sub
End Class
End Namespace
该博客介绍了如何通过非托管的acedCmd方法来向CAD平台发送命令,例如执行_ZOOM和_E命令。示例代码展示了在.NET环境中,如何利用ZwCAD库进行操作,包括创建线段、开始事务、写入模型空间以及提交事务。
3499

被折叠的 条评论
为什么被折叠?



