mccad
发表于 2004-4-3 20:44:00
你写的是AX的方法,而不是ARX的方法吧
ahlzl
发表于 2004-4-3 21:20:00
mccad发表于2004-4-3 20:44:00static/image/common/back.gif你写的是AX的方法,而不是ARX的方法吧
<BR>AX是什么啊?
ahlzl
发表于 2004-4-4 09:56:00
lzh741206发表于2004-4-2 23:03:00static/image/common/back.gifDim DataType(1) As Short, Data(1) As Object Dim c As Line Dim d(2), e(2) As Double Dim f As Autodesk.AutoCAD.Interop.AcadApplication e(1) = 10 f
我终于运行成功了.谢谢!
能不能把上面的代码解释一下.先谢谢了!
雪山飞狐_lzh
发表于 2004-4-6 00:08:00
这是ARX的方法Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Geometry
Imports DBTransMan = Autodesk.AutoCAD.DatabaseServices.TransactionManager
Public Class TLCad
<CommandMethod("test")> Public Shared Sub MytestCmd()
Dim db As Database = Application.DocumentManager.MdiActiveDocument.Database
Dim tm As DBTransMan = db.TransactionManager
Dim myT As Transaction = tm.StartTransaction()
Try
Dim line As New Line(New Point3d(0, 0, 0), New Point3d(1, 1, 0))
Dim bt As BlockTable = CType(tm.GetObject(db.BlockTableId, OpenMode.ForRead, False), BlockTable)
Dim btr As BlockTableRecord = CType(tm.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, False), BlockTableRecord)
btr.AppendEntity(line)
tm.AddNewlyCreatedDBObject(line, True)
Dim tbl As RegAppTable = CType(myT.GetObject(db.RegAppTableId, OpenMode.ForWrite, False), RegAppTable)
Dim app As New RegAppTableRecord
app.Name = "test1"
tbl.Add(app)
tm.AddNewlyCreatedDBObject(app, True)
line.XData = New ResultBuffer( _
New TypedValue(CInt(DxfCode.ExtendedDataRegAppName), "test1"), _
New TypedValue(CInt(DxfCode.ExtendedDataAsciiString), "tlcad test"))
myT.Commit()
Finally
myT.Dispose()
End Try
End Sub
End Class
ahlzl
发表于 2004-4-6 13:44:00
lzh741206发表于2004-4-6 0:08:00static/image/common/back.gif这是ARX的方法
Imports Autodesk.AutoCAD.ApplicationServicesImports Autodesk.AutoCAD.DatabaseServicesImports Autodesk.AutoCAD.Runtime
运行成功.谢谢!谢谢!!谢谢!!!
能否再给一个橡皮线的代码:画直线,命令行提示第一点,用户输入,再拖鼠标可出现橡皮线.先谢谢了.
subtlation
发表于 2004-4-7 09:02:00
请问一下,这种要连接autocad的vb。net程序如何调试?
我在设置中在调试前先打开autocad2005,但是好像不向下运行了。楼上的把有可以直接调试的那个实例文件打包发上来好吗?我下载下来看看需要哪些设置。
ahlzl
发表于 2004-4-7 20:24:00
啊!24楼的代码我运行还是有问题!加载后,第一次运行正常,第二次就不行了.
雪山飞狐_lzh
发表于 2004-4-7 20:40:00
本帖最后由 作者 于 2004-4-10 19:56:33 编辑
注意这段代码 tbl.Add(app)
一个运行阶段只能注册一次应用程序你肯定运行了几遍
ahlzl
发表于 2004-4-7 21:04:00
lzh741206发表于2004-4-7 20:40:00static/image/common/back.gif注意这段代码
tbl.Add(app)
一个运行阶段只能注册一次应用程序
你肯定运行了几遍
如果加载后,想多次运行程序.代码该怎么看呢?不好意思,我很菜!<BR>
雪山飞狐_lzh
发表于 2004-4-7 21:10:00
我只是写了个给直线附加扩展数据的例子
可以在tbl.Add(app):tm.AddNewlyCreatedDBObject(app, True)<BR>前加一个判断,如果有该应用程序名就不执行<BR>