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


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


 
 
主题工具 搜索本主题 显示模式
旧 2009-05-07, 05:16 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】rim Information On Nurbs

trim information on nurbs
trim information on nurbs
hi銆?br /> i have the question about 3dsolid.
i want to resolve 3dsolid object to brep and to get nurbssurface. but, i am without getting trim information on nurbssurface now.
how can i get it?
it is an excerpt of code as follows.
code:
void test1(oddbobjectid id)
{
oddbentityptr pent = id.safeopenobject();
if(pent->iskindof(oddb3dsolid::desc()))
{
oddb3dsolidptr psolid = pent;
odbrbrep brep;
psolid->brep(brep);
odbrbrepfacetraverser bft;
bft.setbrep(brep);
while(!bft.done())
{
odbrface face = bft.getface();
odgenurbsurface nurbs;
face.getsurfaceasnurb(nurbs);
dumpnurbsdata(nurbs);
bft.next();
}
}
}
void dumpnurbsdata(const odgenurbsurface& anurbs)
{
odgeknotvector knotvecu, knotvecv;
anurbs.getuknots(knotvecu);
anurbs.getvknots(knotvecv);
}
please advise to me.
thank you.
-------
nyde
because the one to serve as a reference from a past contribution was discovered, it is tested.
===============
alexander rumyantsev
softdev
wrote:
brepfacetraverser - get enum of faces.
facelooptraverser - get enum of trimming loop for face
loopedgetraverser - get edges of loop
loopedgetraverser has getorientedcurve method (return pointer to newly created odgecurve3d object)
edge has getvertex1, getvertex2 (return start\end vertexes of edge)
also face, edge, loopedgetraverser has orientation flag = forward\reverse.
you can read arx help about br. ddt br and arx br are very similar.
===============
thanks.
------
nyde

i did not obtain the result though i tried.
code:
void test1(const odbrbrep &abrep)
{
odbrbrepfacetraverser bft;
bft.setbrep(abrep);
while (!bft.done())
{
odbrface face = bft.getface();
odbrfacelooptraverser flt;
flt.setface(face);
odgenurbsurface nurbs;
odbrface f = bft.getface();
f.getsurfaceasnurb(nurbs);
dumpnurbssurface(nurbs);
while(!flt.done())
{
odbrloop loop = flt.getloop();
odbrloopedgetraverser let;
let.setloop(loop);
while(!let.done())
{
odgenurbcurve2d curve;
odbrerrorstatus ret2 = let.getparamcurveasnurb(curve);
if(ret2 == odbrok)
dumpnurbscurve(curve);
let.next();
}

flt.next();
}
bft.next();
}
i could not get trimcurve of nurbssuface from odbrloopedgetraverser::getparamcurveasnurb() method.
how can i acquire nurbstrimcurve?
thankyou
-----------
nyde
attached files (100.4 kb, 3 views)

paramcurve is a 2d curve in uv plane. it is optional curve. it is normal situation, when getparamcurve return null. if you need 3d trimming loops\edges, use getorientedcurve(). if you need 2d trimming loops in 2d, you should construct it from 3d.
thank you for answer.
how can it be converted into 2dcurve by assuming that 3dcurve was able to be acquired?
though i think it is difficult to request 2d coordinates on the surface of
nurbs from 3d space coordinates.
is curve of 3d space projected to nurbssurface and is there a technique for making
it to coordinates of 2d space?
and, can trimcurve(nurbscurve) be made from the acquired one?
thankyou
---------
nyde
last edited by nyde; 9th november 2005 at 04:46 amfff">.
odgesurface has
odgepoint2d odgenurbsurface:aramof(const odgepoint3d& pnt, const odgetol& tol) const
it is difficult task - construct 2d trimming loops from 3d curves.
quote:
originally posted by alexander rumyantsev
odgesurface has
odgepoint2d odgenurbsurface:aramof(const odgepoint3d& pnt, const odgetol& tol) const
it is difficult task - construct 2d trimming loops from 3d curves.
because it is necessary to acquire trimloop of 2d, i try
examining a little.
odgecurvesurfint may carry out function, is not yet mounting....
i think that i question again occasionally.
thankyou
---------
nyde
last edited by nyde; 9th november 2005 at 05:38 pmfff">.
humm...
i cannot acquire trimcurve which is defined in 2d space on
nurbssurface.i tried various functions, but could not find those which are
agreeable to purpose.
in opengl, trimcurve of 2d is necessary for trimming nurbssurface, and i want to acquire it.
is there a person to whom the same problem was solved?
thankyou
-----
nyde
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


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

高级搜索
显示模式

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

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

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】otally New To All Of This yang686526 DirectDWG 0 2009-05-07 05:10 PM
【转帖】reading xref information yang686526 DirectDWG 0 2009-05-07 12:39 PM
【转帖】geometry related questions yang686526 DirectDWG 0 2009-05-05 11:12 AM
【转帖】dwg without layout extension information yang686526 DirectDWG 0 2009-05-05 08:11 AM
曲面造型技术 huangyhg CAD内核 0 2006-11-05 02:59 PM


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


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