1.はじめに
作成したスライサーソフトのパラメータサンプルです。
パラメータは種類別にファイル化し、メインとなるパラメータファイルで他のファイルを参照する形にしました。また、メインとなるパラメータファイル自体もコマンドラインから指定できるため、ファイル名に規則はありません。
2.1 param.xml
メインとなるパラメータファイルです。
param.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
スライスパラメータ定義ファイル
[file] : 定義ファイルを定義します。
[hardware] : ハードウェア定義ファイルを定義します。
[script] : スクリプト定義ファイルを定義します。
[print] : 出力定義ファイルを定義します。
[filalemnt] : フィラメント定義ファイルを定義します。(エクストルーダ(ツールヘッド)毎)
[extrude] : 吐出(押出)幅を定義します。
[ToolHead] : 利用エクストルーダ(ツールヘッド)を定義します。
[Primary] : ターゲットモデルの利用エクストルーダ(ツールヘッド)を定義します。
[Infill] : インフィル(ターゲットモデル)の利用エクストルーダ(ツールヘッド)を定義します。
[SkirtBrim] : スカート/ブリムモデルの利用エクストルーダ(ツールヘッド)を定義します。
[Raft] : ラフトモデルの利用エクストルーダ(ツールヘッド)を定義します。
[Support] : サポートモデルの利用エクストルーダ(ツールヘッド)を定義します。
-->
<profile name="default print settings" version="2016-03-12 00:00:00" app="ISSlicer" type="param">
<file>
<hardware file="Hard.xml"/>
<script file="Script.xml"/>
<print file="Print.xml"/>
<filament no="1" file="Filament_ABS.xml">
<extrude autoWidth="0" width="0.4"/> <!-- [auto/manual] [mm] -->
</filament>
<filament no="2" file="Filament_PLA.xml">
<extrude autoWidth="0" width="0.4"/> <!-- [auto/manual] [mm] -->
</filament>
</file>
<ToolHead>
<Primary no="1" /> <!-- [1or2] -->
<Infill no="999" /> <!-- [1or2or999] 999 is Primary or Seconday -->
<SkirtBrim no="999" /> <!-- [1or2or999] 999 is Raft or Primary -->
<Raft no="1" /> <!-- [1or2] -->
<Support no="1" /> <!-- [1or2] -->
</ToolHead>
</profile>
2.2 Hard.xml
ハードウェアを定義するパラメータファイルです。
Hard.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
ハードウェア定義ファイル
[extruder] : エクストルーダ(ツールヘッド)の定義をします。
[buildArea] : 造形エリアの定義をします。
[hasHeatedBed] : 加熱ベッドの定義をします。
[hasCoolingFan] : 冷却ファンの定義をします。
[rapidSpeed] : 空移動速度を定義します。
[toolChangeRetraction] : エクストルーダ(ツールヘッド)の変更時のリトラクション(フィラメント吸込み/戻し)の定義をします。
-->
<profile name="Bonsai Lab BS01+Dual" version="2016-03-12 00:00:00" app="ISSlicer" type="hardware">
<!-- no[1or2] diameter[mm] offset[mm] -->
<extruder no="1" name="Tool 1" diameter="0.4" offsetx= "0.0" offsety="0.0" />
<extruder no="2" name="Tool 2" diameter="0.3" offsetx="28.4" offsety="0.0" />
<buildArea x="150.0" y="130.0" z="102.0" /> <!-- [mm] -->
<hasHeatedBed value="1" /> <!-- [on/off] -->
<hasCoolingFan value="1" limitLowSpeed="30" /> <!-- [on/off] [%] -->
<rapidSpeed XY="80.0" Z="16.7" /> <!-- [mm/sec] -->
<toolChangeRetraction distance="12.0" restart="2.0" speed="10.0" /> <!-- [mm] [mm] [mm/sec] -->
</profile>
2.3 Script.xml
スクリプトを定義するパラメータファイルです。
Script.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
スクリプト定義ファイル
[startingGcode] : 第1層出力前に実行されるG-Codeを定義します。
[endingGcode] : 最終層出力後に実行されるG-Codeを定義します。
※共通 ,(半角カンマ)を改行コードとして扱います。
-->
<profile name="Script(Default Setting)" version="2016-03-12 00:00:00" app="ISSlicer" type="script">
<startingGcode>G1 X100 F8000 ; move X100,M700 ; (org)Start Print,</startingGcode>
<endingGcode>G1 Y0 F8000 ; move Y0,M701 ; (org)End Print,M84 ; disable motors,M31 ; show print time,</endingGcode>
</profile>
2.4 Print.xml
出力設定を定義するパラメータファイルです。
Print.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
出力パラメータ定義ファイル
[Slice] : スライス一般の定義をします。
[Layer] : レイヤーの定義をします。
[SkirtBrim] : スカート/ブリムの定義をします。
[Raft] : ラフトの定義をします。
[Infill] : インフィルの定義をします。
[Support] : サポートの定義をします。
[Speed] : 速度の定義をします。
[Other] : (将来対応)
-->
<profile name="default print settings" version="2016-03-12 00:00:00" app="ISSlicer" type="print">
<Slice>
<GCodeExt value=".g" />
<DisableShortCut value="1" /> <!-- [on/off] -->
<edgeWait flag="0" angle="125.0" time="1" /> <!-- [on/off] [°] [msec] -->
</Slice>
<Layer>
<layerHeight value="0.3" /> <!-- [mm] -->
<topSolidLayers value="3" /> <!-- [層] or [mm] -->
<bottomSolidLayers value="3" /> <!-- [層] or [mm] -->
<perimeterOutlines value="3" /> <!-- [ループ] or [mm] -->
<printPerimetersInsideOut value="1" /> <!-- [in-out/out-in] -->
<sequentialIslands value="0" /> <!-- [on/off] -->
<AutoLayerHight value="0" /> <!-- [on/off] -->
<MicroLayering value="1" /> <!-- [分割] -->
<AutoMicroLayering flag="0" Overlap="50.0" LowLimit="5" /> <!-- [on/off] [%] [分割] or [mm] -->
<lowestTime flag="0" time="6" /> <!-- [on/off] [sec] -->
</Layer>
<Infill>
<infillPercentage value="20.0" /> <!-- [%] or [mm] -->
<outlineOverlapPercentage value="50.0" /> <!-- [%] or [mm] -->
<infillAngles value="45.0,-45.0" /> <!-- [°] ,区切り -->
</Infill>
<SkirtBrim>
<useSkirt value="0" /> <!-- [on/off] -->
<skirtLayers value="1" /> <!-- [層] or [mm] -->
<skirtOffset value="1.0" /> <!-- [mm] -->
<skirtOutlines value="5" /> <!-- [ループ] or [mm] -->
<BoundingBox value="1" /> <!-- [on/off] -->
</SkirtBrim>
<Raft>
<useRaft value="0" /> <!-- [on/off] -->
<raftLayers value="1" /> <!-- [層] -->
<raftOffset value="1.0" /> <!-- [mm] xy -->
<raftSeparationDistance value="0.05" /> <!-- [mm] z -->
<raftInfill value="95.0" /> <!-- [%] or [mm] -->
<!-- <raftSeparationDistance value="0.14" /> <!-- [mm] z -->
<!-- <raftInfill value="85.0" /> <!-- [%] or [mm] -->
<disableRaftBaseLayers value="0" /> <!-- [on/off] -->
<BoundingBox value="1" /> <!-- [on/off] -->
<finishWait value="5" /> <!-- [sec] -->
</Raft>
<Support>
<generateSupport value="0" /> <!-- [on/off] -->
<supportInfillPercentage value="30.0" /> <!-- [%] or [mm] -->
<denseSupportLayers value="3" /> <!-- [層] or [mm] -->
<denseSupportInfillPercentage value="70.0" /> <!-- [%] or [mm] -->
<supportUpperSeparationLayers value="1" /> <!-- [層] or [mm] -->
<supportLowerSeparationLayers value="1" /> <!-- [層] or [mm] -->
<maxOverhangAngle value="45.0" /> <!-- [°] -->
</Support>
<Speeds>
<defaultSpeed value="50.0" /> <!-- [mm/sec] -->
<FirstLayerSpeed value="30.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<OuterOutlineSpeed value="50.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<InnerOutlineSpeed value="80.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<SolidInfillSpeed value="80.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<InfillSpeed value="100.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<SkirtBrimSpeed value="50.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<RaftBaseSpeed value="25.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<RaftSpeed value="50.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<SupportSpeed value="100.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
<DenseSupportSpeed value="80.0%" /> <!-- [mm/sec] or [%]@defaultSpeed -->
</Speeds>
</profile>
2.5 Filament_ABS.xml
フィラメント特性を定義するパラメータファイルです。
Filament_ABS.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
フィラメント定義ファイル
[filament] : 材料(フィラメント)の定義をします。
[extrude] : 吐出(押出)率を定義します。
[toolheadTemperature] : ツールヘッドの温度を定義します。
[bedTemperature] : 加熱ベッドの温度を定義します。
[coolingFan] : 冷却ファンの定義をします。
[retract] : リトラクション(フィラメント吸込み/戻し)の定義をします。
-->
<profile name="ABS" version="2016-03-12 00:00:00" app="ISSlicer" type="filament">
<!-- diameter[mm] density[grams/cm^3] price[price/kg] -->
<filament maker="Plasil" brand="" kind="ABS" diameter="1.75" density="1.025" price="4300.0"/>
<extrude multiplier="100.0" /> <!-- [%] -->
<toolheadTemperature>
<setpoint layer="1" temperature="245" /> <!-- [層] [°] -->
<setpoint layer="2" temperature="240" /> <!-- [層] [°] -->
</toolheadTemperature>
<bedTemperature>
<setpoint layer="1" temperature="90" /> <!-- [層] [°] -->
<setpoint layer="2" temperature="80" /> <!-- [層] [°] -->
</bedTemperature>
<coolingFan>
<setpoint layer="1" speed="0.0" /> <!-- [層] [%] -->
</coolingFan>
<!-- flag[on/off] distance[mm] restart[mm] zlift[mm] speed[mm/sec] -->
<retract flag="1" distance="4.0" restart="0.0" zlift="0.0" speed="40.0" />
</profile>