Table of Contents

NC優化

組態在NC仿真前設定,然後執行輸出優化NC檔指令。

可同時參考閱讀說明章節NC優化

組態

Note

指令格式

OptEnableFeedrate = <布林值>;
OptEnableInterpolation = <布林值>;
OptRapidFeed_mmdmin = <實數>;
OptMinFeedrate_mmdmin = <實數>;
OptMaxFeedrate_mmdmin = <實數>;
OptMaxAcceleration_mmds2 = <實數>;
OptExtendedPreDistance_mm = <實數>;
OptExtendedPostDistance_mm = <實數>;
OptSpindlePowerSafetyFactor = <實數>;
  • OptEnableFeedrate:啟用順序式(Sequential)進給率優化。

    順序式係指該功能從下指令開始作用。與其相對的設定在刀具端,刀具端也能設定進給率優化,但是在裝刀時才會發揮作用。

    OptEnableFeedrate與所有其他啟用進給率優化的指令需同時為真,進給率優化才會啟用。 即與刀具設定端必須同時為真(true),進給率優化才會啟用。

    OptEnableFeedrate預設值為真。

  • OptEnableInterpolation:優化程序用重新插補。

重新插捕後NC碼會增加,可以更好地控制加減速。

  • OptRapidFeed_mmdmin:優化程序中的無切削區域進給率。單位mm/min。

沒有切到工件的NC路徑,為無切削區域。優化後該路徑將採用無切削區域進給率。

  • OptMinFeedrate_mmdmin:優化程序中的有切削區域最小進給。單位mm/min。
  • OptMaxFeedrate_mmdmin:優化程序中的有切削區域最大進給。單位mm/min。

有切到工件的NC路徑,為有切削區域。有切削區域的最大最小進給的設定通常依據經驗法則。

  • OptMaxAcceleration_mmds2:優化程序中的加減速限制。優化後NC碼的F值變化在該限制之內。單位$mm/s^2$。

  • OptExtendedPreDistance_mm:優化程序中的有切削區域等效計算的前長度。單位mm。

  • OptExtendedPostDistance_mm:優化程序中的有切削區域等效計算的後長度。單位mm。

ExtendedDistance
優化程序中的有切削區域等效計算的長度
  • OptSpindlePowerSafetyFactor:主軸功率安全係數。
  • OptSpindleTorqueSafetyFactor:主軸扭力安全係數。

優化後的NC碼,主軸功率及主軸扭力將被限制於安全係數之內。

  • OptPreferedForce_N:優化程中的目標力。單位N。

在符合所有限制的條件下,優化程序中的加工路徑產生的力會盡可能的趨近目標力。

NC碼中的優化腳本指令

於指定NC行不啟用優化

在執行 Preserve() 的NC行中,不啟用優化。

Tip

指令範例

N0140 行不啟用優化。

...
N0130 X-1.965 Y17.053
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();)
N0150 G01 X-3.068 Y40.776 
...

於指定NC範圍不啟用優化

使用BeginPreserve()的NC行及EndPreserve()的NC行及包含的NC範圍,不啟用優化。

Tip

指令範例

N0140N0150N0160 行不啟用優化。

...
N0130 X-1.965 Y17.053
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@BeginPreserve();)
N0150 G01 X-3.068 Y40.776 
N0160 X-3.555 Y43.338 (;@EndPreserve();)
N0170 X-4.125 Y45.875
...

輸出優化NC檔

Note

指令格式

OptimizeToFiles(<路徑樣板>);

<路徑樣板>支援 檔案路徑樣板

Tip

指令範例

OptEnableFeedrate = true; 
OptEnableInterpolation = true; 
OptRapidFeed_mmdmin = 4000; 
OptMinFeedrate_mmdmin = 100; 
OptMaxFeedrate_mmdmin = 4000; 
OptMaxAcceleration_mmds2 = 10; 
OptExtendedPreDistance_mm = 3; 
OptExtendedPostDistance_mm = 2; 
OptSpindlePowerSafetyFactor = 1.5; 
OptSpindleTorqueSafetyFactor = 1.5;
OptPreferedForce_N = double.PositiveInfinity; 
PlayNcFile("NC/file1.nc");

OptRapidFeed_mmdmin = 8000; 
PlayNcFile("NC/file2.nc");

OptimizeToFiles("Cache/Opt-[NcName]");

組態設定可以穿插在NC仿真間,將會作用在組態設定後的NC仿真。

以上範例為例,優化後的NC程式file1.nc的無切削區域快速進給為4000,file2.nc則為8000。

Tip

NC碼中的優化指令範例

...
N0110 X-3.064 Y6.378 (;@OptMaxAcceleration_mmds2=10;)
N0120 X-2.411 Y11.712
N0130 X-1.965 Y17.053
N0140 G03 X-2.66 Y38.193 I-103.796 J7.172 (;@Preserve();)
N0150 G01 X-3.068 Y40.776 (;@OptMaxAcceleration_mmds2=100; OptMaxFeedrate_mmdmin=12000;)
N0160 X-3.555 Y43.338 
N0170 X-4.125 Y45.875
...

N0110至N0150前,優化區加速度設為10 \(mm/s^2\); N0140單行不做優化; N0150及以後,優化區加速度設為100 \(mm/s^2\); N0150及以後,優化區切削區域最大進給設為12000 \(mm/min\)