几何尺寸与公差论坛------致力于产品几何量公差标准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-06, 09:32 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】orthoproject query

orthoproject query
orthoproject query
i am using dd 1.13.01 vectorization framework.
once i get an ellipse whose coordinates are in viewing coordinate system(i.e. in exgssimpledevice::elliparcproc) then i use the following code to project it on xy plane of the screen coordinates.
odgeplane plane = odgeplane::kxyplane;
odgeentity3d* entity = elliparc.orthoproject(plane);
my assumption is that this the entity will now be an ellipse whose coordinates are described in the screen coordinates.
but when i query the major and minor radius of the entity, it turns out to be totally wrong.
i assume that the xyplane that has been passed as a parameter to orthoproject call means the xy plane in screen coordinates. is this correct?
thanks
-paresh-

quote:
but when i query the major and minor radius of the entity, it turns out to be totally wrong.
what do you mean by "totally wrong"?
are the major and minor axis lies in xy plane (does they have zero z-coordinate)?
are major axis longer then minor axis?
the sample of using this functionality is dwf export.
sincerely yours,
george udov
i drew a circle in top-view mode(i.e. normal in z-coordinate system of wcs).
then i rotated my view angle till the circle was just short of becoming a line..i.e. the radius ratio(minor/major) of the resulting ellipse should be very small.
after using the orthoproject call, i find that the radius ratio = 0.85!
thats why my ellipse is fatter than the way it looks in autocad.
i want to project the ellipse in xyplane of the screen coordinates.
is the xyplane parameter that i passed to orthoproject correct??
does it assume the ellipse to be in wcs?? my ellipse is in view coordinate system..
thanks

note that odgeelliparc3d:roject, odgeelliparc3d:rthoproject are just mathematical functions.
it means that elliparc.orthoproject(odgeplane::kxyplane); will project ellipse on xy plane of coordinate system in which ellipse is given.
if your ellipse is in "view" coodinates, then odgeelliparc3d:rthoproject will return ellipse that is projection of source ellipse on xy plane of view cs.
if you need ellipse projected on xy plane of screen cs, then you should first transform source ellipse to screen cs, and then orthoproject() it.
also note that if ellipse is looking nearly like line segment, it doesn't mean that minoraxislength()/majoraxislength() will be very little for it. this statement is true only for ellipses with orthogonal axes.
sincerely yours,
george udov

non-orthogonal axis???
the orthoproject function should have returned the new orthogonal major and minor axis of the projected ellipse.
how do i query the orthogonal axes now?
should i call ellipse.correctaxis? i tried using this call. it corrects the axes..but the start and end angle returned by it are same!! the start angle should have been 0 and end angle=2*pi for an ellipse.
please help.
thanks

quote:
non-orthogonal axis???
the orthoproject function should have returned the new orthogonal major and minor axis of the projected ellipse.
in general, neither odgeelliparc3d, nor acgeelliparc3d must always have orthogonal axes. so any function, that produces odgeelliparc3d, can return ellip arc with non-orthogonal axes. including odgeelliparc3d:rthoproject().
quote:
how do i query the orthogonal axes now?
odgeelliparc::correctaxis (this function was renamed in modern dd versions, now it is called "orthogonalizeaxes") rearranges ellipse axes to be orthogonal.
quote:
it corrects the axes..but the start and end angle returned by it are same!! the start angle should have been 0 and end angle=2*pi for an ellipse.
does it transform closed ellipse to non closed? this can be obtained by this code:
code:
odgeelliparc3d* pell;
// ... doing something with pell
// ...
bool bwasclosed = pell->isclosed();
pell->correctaxis();
oda_assert(pell->isclosed == bwasclosed);
if this assert fails, it definetely means bug of dd. please note that last available 1.13 is 1.13.05, and the last available dd is 1.14.01.
sincerely yours,
george udov
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】little query about oddbtext and oddbmtext width yang686526 DirectDWG 0 2009-05-06 05:12 PM
【转帖】incorrect query file in the drawing file yang686526 DirectDWG 0 2009-05-06 03:49 PM
【转帖】how to query for dynamic block id yang686526 DirectDWG 0 2009-05-06 03:03 PM
【转帖】dwf import query yang686526 DirectDWG 0 2009-05-05 07:47 AM
【转帖】codepage query yang686526 DirectDWG 0 2009-05-04 05:53 PM


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


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