【NX二次开发】获取视图当前的剪辑边界UF_VIEW_ask_current_xy_clip()

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 返回保存在数据库中的视图边界。

原文地址:https://www.cnblogs.com/KMould/p/14468836.html