PCB Genesis原点坐标转换关系

一.Genesis原点坐标转换关系:

     1.读取Genesis坐标转换:   UI界面坐标 = 文件坐标 - 偏移值

     2.写入Genesis坐标转换:   文件坐标 = UI界面坐标 + 偏移值

     3.为了说清楚转换关系,这里以读取Genesis坐标图示

         

           4.不再糊涂,彻底说明白,这里再次配一张图示。

             

二.Genesis原点相关指令:

        1.读取原点坐标:  

        /// <summary>
        /// 获取Step原点坐标
        /// </summary>
        /// <param name="step">填STEP名</param>
        /// <param name="job">填JOB名</param>
        /// <param name="units"></param>
        /// <returns></returns>
        public static gPoint getOrigPoint(string step = "", string job = "", string units = "mm")
        {
            gPoint OrigP = new G_Helper.gPoint();
            if (step.Length == 0) step = g.getSTEP();
            if (job.Length == 0) job = g.getJOB();
            string[] arayList = g.COM(g._get_origin).Split(' ');
            OrigP.x = double.Parse(arayList[0]);
            OrigP.y = double.Parse(arayList[1]);
            OrigPoint = OrigP;
            return OrigP;
        }

         2.读取基准点坐标: 

        /// <summary>
        /// 获取Step基准坐标
        /// </summary>
        /// <param name="step">填STEP名</param>
        /// <param name="job">填JOB名</param>
        /// <param name="units"></param>
        /// <returns></returns>
        public static gPoint getDatumPoint(string step = "", string job = "", string units = "mm")
        {
            gPoint DATUMP = new G_Helper.gPoint();
            if (step.Length == 0) step = g.getSTEP();
            if (job.Length == 0) job = g.getJOB();
            g.outINFO("step", job + "/" + step, "DATUM", "", "", units);
            DATUMP.x = double.Parse(g.getINFO("gDATUMx"));
            DATUMP.y = double.Parse(g.getINFO("gDATUMy"));
            return DATUMP;
        }

         3.设置原点坐标与基准点坐标

            gProfile pro = g.getProfile(stepname, jobname, "inch");
            g.COM($"origin,x={pro.Prof.min.x},y={pro.Prof.min.y}, push_in_stack = 1");
            g.COM($"datum,x={0},y={0}");

三.凝问解答:

    1.获取Genesis Info 坐标信息是否需要加入原点坐标转换?

           那当然啦,在封装获取Genesis Info信息类时,加入原点坐标转换,不然坐标会偏位。

           转换公式: UI界面坐标 = 文件坐标 - 偏移值

           例子:

           

      2.为什么我获取Info坐标时没加入转换值,不会造成坐标偏位呢?

         那因为大多数TGZ原点坐标默认就是0,只要原点坐标人为不修改,则不会造成坐标偏位。

      3.原点坐标更改后,是否会影响features文件图形坐标相应变化?

          不会的,只会更改stephdr文件的原点坐标。

          奥宝这样做法是在文件与Genesis之间加入了转换关系,达到变更原点,给用户的感觉是原点变了,而真实坐标文件原点不变 。

       4.原点坐标更改后,对输出Drill或Gerber 是按Genesis UI(转换后的)坐标还是按features文件坐标呢?

           以features文件真实坐标输出。

       5.如果想按Genesis UI(转换后的)坐标输出如何输出呢?

           输出时加入偏移即可,按通过原点坐标按下图公式转换即可。

         

      6.GenesisUI界面中,重新定义原点的坐标,是基于文件坐标零点还是UI界面坐标零点?

          重新定义原点的坐标是;基于文件坐标零点。

      7.GenesisUI界面中,重新定义基准点的坐标,是基于文件坐标零点还是UI界面坐标零点?

          重新定义基准点的坐标是:基于UI界面坐标零点。

        (UI界面基准点是相对于UI界面零点位置偏移坐标,而实际stephdr文件中基准点是是相对于文件零点位置偏移坐标)

      8.如果GenesisUI界面中,原点不在Profile左下角,且文件坐标原点也不在Profile左下角,如何定义Profile左下角为原点?

         

猜你喜欢

转载自www.cnblogs.com/pcbren/p/9471934.html
PCB