一.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原點坐標)