查看单个帖子
旧 2009-05-06, 04:20 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】is there a way to round coordinates in dwgdirec

is there a way to round coordinates in dwgdirect?
is there a way to round coordinates in dwgdirect?
imagine the draing has been set to 3 dp accuracy, is there a way within dwgdirect for it to produce those values at 3 decimal places? or must i do my own rounding routine?
andrew
you can save drawing to dxf with specified precision or you need your own rounding routine.
but note that dd uses specified number of decimal places not for all values saved to dxf (as autocad does)
sergey slezkin
i will use my own rounding routine. i already had this code in my legacy app. but since dwgdirect offers things like matrix transformations and odgepoint3d operations, it was worth asking if it had built in a way to round values.
again, thanks for clarification.
andrew
i am using dd 1.14.05. i want to reduce the precision of all entities written out to dxf file. i observed that when acdbspline is written out to ascii dxf file, it seems not to obey the dxfprecision parameter specified in writefile(). is there any way to force it to write out the desired precison only? are many other entities also written out with a higher precison? is there a workaround for this?
regards,
varun
precision specified in writefile() parameter effects doubles written with default (oddbdxffiler::kdfltprec). usualy coordinates are written wit default precision. values like koefficients, angles etc, are usually written with oddbdxffiler::kmaxprec.
sergey slezkin
as oddbdxffiler::kmaxprec is an enum, its value must be compiled into the binaries and there would be no way to change it. so we can't make the values written with it to have a lower precision. am i right?
regards,
varun
using writefile() - no.
but if you call dxfout() or dxfoutfields() for some entity you can pass your own implementation of oddbdxffiler to it.
sergey slezkin
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)