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

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】different retrurn value from odgsbasevectorizeviewtarget90 (http://www.dimcax.com/hust/showthread.php?t=15695)

yang686526 2009-05-04 07:29 PM

【转帖】different retrurn value from odgsbasevectorizeviewtarget90
 
different retrurn value from odgsbasevectorizeview::target()
different retrurn value from odgsbasevectorizeview::target() on the same drawing file
we are using dwgdirect 1.12.04 and adtdirect 0.5.2 as static libraries and by ms .net 2003 compiler.
for our display purpose, we use odgsbasevectorizeview::target() as an offset value to convert the coordinate points from vectorized result. what we find is that when opening the same drawing multiple times, each time will see the target() function returns the different odgepoint3d value (off by a small amount in x, y and z). the same problem happens on odgsbasevectorizeview:osition() as well.
two questions;
(1) do we not initialize something correctly to alter the return from target() and position()? how can we make it right?
(2) could someone tell us the purpose of position(), target() and upvector() in odgsbasevectorizeview class?
thanks,
wen
viewport alignment to integer screen coordinates is a limitation of gs interface -- odgsdevice:nsize() and odgsview::setviewport() take integers as parameters. then these values used for calculating objecttodevicematrix().
as a result if your application uses different integer values (different window size/aspect ratio for example) the transformation matrix may slightly differ.
in odamfcapp, for example, pan, zoom, rotate are performed by gsview - no changes are propagated to db objects (oddbviewport or oddbviewporttablerecord). to move the changes from gs view to db object view parameters need to be accessed somehow...
sergey slezkin


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