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左下角為原點?

          只要計算出新原點坐標即可解決此問題,計算公式如下

         

      9.在GenesisUI界面中,更改原點或基准點坐標是否可以撤回?

         基准點更改后可以撤回。而原點更改后不能撤回的

      10.在GenesisUI界面中,更改原點后,基准點的坐標會變嗎?

           會變的,基准點坐標變化如下圖所示

           UI基准點坐標,可以通過INFO直接獲取(UI基准點坐標是相對於UI原點坐標)

       

 

         

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM