查看单个帖子
旧 2009-05-06, 10:49 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】problem in setting block scale

problem in setting block scale
problem in setting block scale
hi all,
i am using dwgdirect 2.3.0 dll version.
when we insert a block with block insertion units (insunits) astronomical units (1.74091843728581e-13), light years (2.684839e-18) and parsecs (8.231586e-19) and save the drawing, drawing is not saving. setscalefactors () function is throwing exception of invalid points.
while block insertion, first we multiply scale with the current drawing insertion unit and then set the scale. when we use above insertion units and insert a block and save the drawing, a exception of invalid points come from setscalefactors () function though insertion scale are not zero(but very less order of 1.0e-20).
dwgdirect is using precision value 1.e-10. so when we use above insertion scales, it is treated as zero.
i need to change the precision value used in setscalefactors() function.
i have also tried by modified tolerance value(1.0e-22) in oddefs.h but dd binary dlls compiled with tolerance value (1.0e-10) throws exception.
is there any process by which i can change the precision value globally.
autocad considers as valid scale which components comply the condition:
fabs(s) > 1.e-15 && fabs(s) < 1.e99
it's possible to set the the scale to 1.e-20 in autocad and save the dwg file but autocad's audit reports it as error.
also autocad gives message about error on opening such file.
dwgdirect uses not 1.e-10 for checking scale factors but the check above.
sergey slezkin
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)