UF_VIEW_ask_current_xy_clip()这个函数网上还没有详细的说明,我花了一点时间,详细得理解了一下函数返回的4个值的意思,作为一个猜想,希望有人能验证一下。
获取视图当前的剪辑边界,使用UF_VIEW_ask_current_xy_clip()函数会获得(Minimum_X, Maximum_X, Minimum_Y, Maximum_Y)四个数字。
测试源码:
extern DllExport void ufusr(char *param, int *returnCode, int rlen) { UF_initialize(); double xy_clip_bounds[4]; UF_VIEW_ask_current_xy_clip(55041, xy_clip_bounds);//55041 54988 list("%g,%g %g,%g ", xy_clip_bounds[0], xy_clip_bounds[1], xy_clip_bounds[2], xy_clip_bounds[3]); UF_terminate(); }
extern int ufusr_ask_unload(void) { return (UF_UNLOAD_IMMEDIATELY); }
动图:
我百思不得其解。查看帮助并结合测试。我猜是不是下面图示列出的尺寸:
情况1.视图在图纸页中,我们能完整得看到视图边界,运行程序得到下面这个结果
-11.35,11.35 -20.1,20.1,移动、放大缩小视图得到的结果不变。
情况2.当我将视图移动出图纸页,我们发现黄色框变小了,同时得到结果:
-8.98396,8.98396 -20.1,20.1
情况3.我把视图放到窗口左上角,同时发现黄色框也变小了,结果:
-8.39561,8.39561 -14.0877,14.0877
根据上面的结果结合着帮助说明,所以我猜想,使用UF_VIEW_ask_current_xy_clip()函数得(Minimum_X, Maximum_X, Minimum_Y, Maximum_Y)四个值代表上面图示的意思。
UF_VIEW_ask_xy_clip 与此函数类似,UF_VIEW_ask_current_xy_clip 返回当前边界,UF_VIEW_ask_xy_clip 返回保存在数据库中的视图边界。