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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-19, 05:10 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[求助]pb开发autocad中getboundingbox问题

[求助]pb开发autocad中getboundingbox问题
www.dimcax.com
[求助]pb开发autocad中getboundingbox问题
请教下有谁用过pb开发autocad 的
我在vb中使用getboundingbox能够得到坐标
但在pb下总是空值 ,得不到数据,望达人指点一二~
int oleok
oleobject olecad,olecaddoc
oleobject olemospace,olepaspace
//连接cad
olecad=create oleobject
oleok=olecad.connecttoobject("","autocad.application")
if oleok<> 0 then //没打开autocad
oleok=olecad.connecttonewobject("autocad.application")
if oleok > 0 then
messagebox("ole失败","该功能无法使用!"+"~n"+"请先安装autocad。",stopsign!)
end if
end if
olecad.visible=true
olecaddoc = olecad.activedocument
olemospace = olecaddoc.modelspace
olepaspace = olecaddoc.paperspace
oleobject elem
decimal{3} x1,y1,x2,y2,xb1,yb1,xb2,yb2//文字的坐标
decimal{3} minext[1 to 3],maxext[1 to 3]//边界的坐标
decimal{3} min[],max[]
double li_elem[],minpoint[],maxpoint[]
integer li_count,i,m,k
string ls_name
any s
m=1
//li_elem = upperbound(olemospace.elem[])
//for each elem in olemospace
//next elem
//得到边界坐标
minext[] = olecaddoc.getvariable("extmin")
maxext[] = olecaddoc.getvariable("extmax")
xb1=minext[1]
xb2=maxext[1]
yb1=minext[2]
yb2=maxext[2]
//sle_1.text=string(x1)
//messagebox("wr",string(minext[1])+" "+string(minext[2]))
//messagebox("wr",string(maxext[1])+" "+string(maxext[2]))
li_count = olemospace.count
//messagebox("er",string(li_count))
for i =1 to li_count - 6
//for i =1 to 44
// ls_name =string(olemospace.item(i).entityname)
elem = olemospace.item(i)
if elem.entityname = "acdbblockreference" then

elem.explode()
end if

if elem.entityname = "acdbtext" or elem.entityname = "acdbmtext" then
//if olemospace.item(i).entityname = "acdbtext" then
elem.getboundingbox(min,max) //得到坐标
ls_name = trim(elem.textstring)
if len(ls_name)<50 then
dw_1.insertrow(1)
//
dw_1.setitem(1, "name", ls_name)
dw_1.setitem(1, "x1",min[1])
dw_1.setitem(1, "y1", min[2])
dw_1.setitem(1, "x2", max[1])
dw_1.setitem(1, "y2", max[2])
m=m+1
end if
end if
next
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



所有的时间均为北京时间。 现在的时间是 08:04 AM.


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