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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-16, 11:40 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[arx]arx计算选取的直线总长度

[arx]arx计算选取的直线总长度
[arx]arx计算选取的直线总长度
本人用arx编写了一个计算所选取直线总长度的程序,感觉挺不方便,大家给点意见。
void getsellens()
{
ads_name ent1,ssents;
long i(0),n;
char* entname;
struct resbuf *rb,*rbtmp;
double flength(0);
acgepoint3d *pt1,*pt2;
acedssget(null,null,null,null,ssents);
acedsslength(ssents,&n);
for (;i<n;i++)
{
acedssname(ssents,i,ent1);
rb=acdbentget(ent1);
for (rbtmp=rb;rbtmp!=null;rbtmp=rbtmp->rbnext)
{
if (rbtmp->restype==0)
{
entname=rbtmp->resval.rstring;
continue;
}
if (rbtmp->restype==10)
pt1=new acgepoint3d(rbtmp->resval.rpoint[x],rbtmp->resval.rpoint[y],
rbtmp->resval.rpoint[z]);
if (rbtmp->restype==11)
pt2=new acgepoint3d(rbtmp->resval.rpoint[x],rbtmp->resval.rpoint[y],
rbtmp->resval.rpoint[z]);
}
if (!strcmp(entname,"line"))
{
flength+=getlinelen(pt1,pt2);
}
}
acutprintf("总长度 %f",flength);
// return 0;
}
double getlinelen(acgepoint3d *pt1,acgepoint3d *pt2)
{
double len=sqrt(pow(pt1->x-pt2->x,2)+pow(pt1->y-pt2->y,2)+pow(pt1->z-pt2->z,2));
return len;
}
有人用vlisp编写了计算弧线和直线总长的程序,很简单。
(defun c:calen (/ curve tlen ss n sumlen)
(vl-load-com)
(setq sumlen 0)
(setq ss (ssget '((0 . "circle,ellipse,line,*polyline,spline,arc"))))
(setq n 0)
(repeat (sslength ss)
(setq curve (vlax-ename->vla-object (ssname ss n)))
(setq tlen (vlax-curve-getdistatparam
curve
(vlax-curve-getendparam curve)
)
)
(setq sumlen (+ sumlen tlen))
(setq n (1+ n))
)
(print (strcat "总长度: " (rtos sumlen 2 5)))
(princ)
)
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



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


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