几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-21, 05:31 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】等不及金斑竹了,我先发个简单的例子

等不及金斑竹了,我先发个简单的例子
www.dimcax.com
等不及金斑竹了,我先发个简单的例子
imports autodesk.autocad.applicationservices
imports autodesk.autocad.databaseservices
imports autodesk.autocad.runtime
imports autodesk.autocad.interop
imports autodesk.autocad.geometry
imports autocadtm = autodesk.autocad.databaseservices.transactionmanager
module module1
end module
public class tlstemp
<commandmethod("test")> public shared sub mytestcmd()
dim putility as acadutility = application.documentmanager.mdiactivedocument.acaddocument.utility
dim pt as new tlsdatabase
dim p1, p2 as object
'在屏幕上选取两个点生成一条直线
p1 = putility.getpoint()
p2 = putility.getpoint(p1)
dim pline as new line(new point3d(p1(0), p1(1), p1(2)), new point3d(p2(0), p2(1), p2(2)))
pt.appendentity(pline)
'生成一条直线,并加入到无名块,插入
dim p as object = putility.getpoint()
dim pes(0) as dbobject
'pes(0) = new line(new point3d(p1(0), p1(1), p1(2)), new point3d(p2(0), p2(1), p2(2)))
pes(0) = pline.clone
dim pblock as objectid = pt.appendblock("*u", pes)
dim pobj as new blockreference(new point3d(p(0), p(1), p(2)), pblock)
pt.appendentity(pobj)
end sub
end class
public class tlsdatabase
'程序功能:向当前模型空间加入实体
public function appendentity(byval tlsentity as dbobject)
dim pdatabase as database = application.documentmanager.mdiactivedocument.database
dim ptransactionmanager as autocadtm = pdatabase.transactionmanager
dim pstarttransaction as transaction = ptransactionmanager.starttransaction()
try
dim pblocktable as blocktable = ctype(ptransactionmanager.getobject(pdatabase.blocktableid, openmode.forread, false), blocktable)
dim pblocktablerecord as blocktablerecord = ctype(ptransactionmanager.getobject(pblocktable(blocktablerecord.modelspace), openmode.forwrite, false), blocktablerecord)
pblocktablerecord.appendentity(tlsentity)
ptransactionmanager.addnewlycreateddbobject(tlsentity, true)
pstarttransaction.commit()
finally
pstarttransaction.dispose()
end try
end function
'程序功能:生成一个新块,并加入实体
public function appendblock(byval name as string, byval entitys as dbobject()) as objectid
dim i as dbobject
dim pdatabase as database = application.documentmanager.mdiactivedocument.database
dim ptransactionmanager as autocadtm = pdatabase.transactionmanager
dim pstarttransaction as transaction = ptransactionmanager.starttransaction()
try
dim pblocktable as blocktable = ctype(ptransactionmanager.getobject(pdatabase.blocktableid, openmode.forwrite, false), blocktable)
dim pblocktablerecord as new blocktablerecord
pblocktablerecord.name = name
pblocktable.add(pblocktablerecord)
dim pid as objectid = pblocktablerecord.id
for each i in entitys
pblocktablerecord.appendentity(i)
ptransactionmanager.addnewlycreateddbobject(i, true)
next i
pblocktablerecord.close()
pstarttransaction.commit()
return pid
finally
pstarttransaction.dispose()
end try
end function
end class
[此贴子已经被作者于
金版主用的夹叙夹议之春秋笔法,有滋有味。你来个只练不讲,责把开头的一堆“imports”解释清楚。:)
河伯老兄,偶还等着金版主的文章呢,就靠偶的三脚猫可不行,:)
这是用vb.net做的吗?怎么这么像arx啊。。。
好像挺烦的,不如vba来得简单啊,不知有什么优点???
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 11:56 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多