明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: goldenshin

Autocad2005编程指南(1)用VB.net编写Arx程序

  [复制链接]
发表于 2004-4-3 20:44:00 | 显示全部楼层
你写的是AX的方法,而不是ARX的方法吧
发表于 2004-4-3 21:20:00 | 显示全部楼层
mccad发表于2004-4-3 20:44:00你写的是AX的方法,而不是ARX的方法吧

AX是什么啊?
发表于 2004-4-4 09:56:00 | 显示全部楼层
lzh741206发表于2004-4-2 23:03:00Dim 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


我终于运行成功了.谢谢!


能不能把上面的代码解释一下.先谢谢了!
发表于 2004-4-6 00:08:00 | 显示全部楼层
这是ARX的方法
  1. Imports Autodesk.AutoCAD.ApplicationServices
  2. Imports Autodesk.AutoCAD.DatabaseServices
  3. Imports Autodesk.AutoCAD.Runtime
  4. Imports Autodesk.AutoCAD.Interop
  5. Imports Autodesk.AutoCAD.Geometry
  6. Imports DBTransMan = Autodesk.AutoCAD.DatabaseServices.TransactionManager
  7. Public Class TLCad
  8.        <CommandMethod("test")> Public Shared Sub MytestCmd()
  9.                Dim db As Database = Application.DocumentManager.MdiActiveDocument.Database
  10.                Dim tm As DBTransMan = db.TransactionManager
  11.                Dim myT As Transaction = tm.StartTransaction()
  12.                Try
  13.                        Dim line As New Line(New Point3d(0, 0, 0), New Point3d(1, 1, 0))
  14.                        Dim bt As BlockTable = CType(tm.GetObject(db.BlockTableId, OpenMode.ForRead, False), BlockTable)
  15.                        Dim btr As BlockTableRecord = CType(tm.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, False), BlockTableRecord)
  16.                        btr.AppendEntity(line)
  17.                        tm.AddNewlyCreatedDBObject(line, True)
  18.                        Dim tbl As RegAppTable = CType(myT.GetObject(db.RegAppTableId, OpenMode.ForWrite, False), RegAppTable)
  19.                        Dim app As New RegAppTableRecord
  20.                        app.Name = "test1"
  21.                        tbl.Add(app)
  22.                        tm.AddNewlyCreatedDBObject(app, True)
  23.                        line.XData = New ResultBuffer( _
  24.                                        New TypedValue(CInt(DxfCode.ExtendedDataRegAppName), "test1"), _
  25.                                        New TypedValue(CInt(DxfCode.ExtendedDataAsciiString), "tlcad test"))
  26.                        myT.Commit()
  27.                Finally
  28.                        myT.Dispose()
  29.                End Try
  30.        End Sub
  31. End Class
发表于 2004-4-6 13:44:00 | 显示全部楼层
lzh741206发表于2004-4-6 0:08:00这是ARX的方法



Imports Autodesk.AutoCAD.ApplicationServicesImports Autodesk.AutoCAD.DatabaseServicesImports Autodesk.AutoCAD.Runtime


运行成功.谢谢!谢谢!!谢谢!!!


能否再给一个橡皮线的代码:画直线,命令行提示第一点,用户输入,再拖鼠标可出现橡皮线.先谢谢了.
发表于 2004-4-7 09:02:00 | 显示全部楼层
请问一下,这种要连接autocad的vb。net程序如何调试?


我在设置中在调试前先打开autocad2005,但是好像不向下运行了。楼上的把有可以直接调试的那个实例文件打包发上来好吗?我下载下来看看需要哪些设置。
发表于 2004-4-7 20:24:00 | 显示全部楼层
啊!24楼的代码我运行还是有问题!加载后,第一次运行正常,第二次就不行了.





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2004-4-7 20:40:00 | 显示全部楼层
本帖最后由 作者 于 2004-4-10 19:56:33 编辑

注意这段代码
  1. tbl.Add(app)
复制代码
一个运行阶段只能注册一次应用程序你肯定运行了几遍
发表于 2004-4-7 21:04:00 | 显示全部楼层
lzh741206发表于2004-4-7 20:40:00注意这段代码 tbl.Add(app) 一个运行阶段只能注册一次应用程序 你肯定运行了几遍
如果加载后,想多次运行程序.代码该怎么看呢?不好意思,我很菜!
发表于 2004-4-7 21:10:00 | 显示全部楼层
我只是写了个给直线附加扩展数据的例子 可以在tbl.Add(app):tm.AddNewlyCreatedDBObject(app, True)
前加一个判断,如果有该应用程序名就不执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:35 , Processed in 0.156616 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表