@@ -25,7 +25,9 @@ public RepRapAssembler(GCodeBuilder useBuilder, SingleMaterialFFFSettings settin
2525OmitDuplicateZ = true ;
2626OmitDuplicateF = true ;
2727OmitDuplicateE = true ;
28- }
28+
29+ HomeSequenceF = StandardHomeSequence ;
30+ }
2931
3032
3133//public override void BeginRetract(Vector3d pos, double feedRate, double extrudeDist, string comment = null) {
@@ -56,8 +58,13 @@ public override void DisableFan() {
5658}
5759
5860
61+ /// <summary>
62+ /// Replace this to run your own home sequence
63+ /// </summary>
64+ public Action < GCodeBuilder > HomeSequenceF ;
5965
60- public enum HeaderState
66+
67+ public enum HeaderState
6168{
6269AfterComments ,
6370AfterTemperature ,
@@ -75,9 +82,17 @@ public override void AppendHeader() {
7582void AppendHeader_StandardRepRap ( ) {
7683
7784 base . AddStandardHeader ( Settings ) ;
78- Builder . AddCommentLine ( "; Model: " + Settings . Machine . ManufacturerName + " " + Settings . Machine . ModelIdentifier ) ;
7985
80- HeaderCustomizerF ( HeaderState . AfterComments , Builder ) ;
86+ DisableFan ( ) ;
87+
88+ HeaderCustomizerF ( HeaderState . AfterComments , Builder ) ;
89+
90+ /*
91+ * Configure temperatures
92+ */
93+
94+ // do this first so it happens while bed heats
95+ SetExtruderTargetTemp ( Settings . ExtruderTempC ) ;
8196
8297 // M190
8398 if ( Settings . Machine . HasHeatedBed ) {
@@ -90,23 +105,19 @@ void AppendHeader_StandardRepRap() {
90105 // M109
91106 SetExtruderTargetTempAndWait ( Settings . ExtruderTempC ) ;
92107
108+
93109 HeaderCustomizerF ( HeaderState . AfterTemperature , Builder ) ;
94110
95111Builder . BeginGLine ( 21 , "units=mm" ) ;
96112Builder . BeginGLine ( 90 , "absolute positions" ) ;
97113Builder . BeginMLine ( 82 , "absolute extruder position" ) ;
98114
99- DisableFan ( ) ;
100-
101115HeaderCustomizerF ( HeaderState . BeforeHome , Builder ) ;
102116
103- Builder . BeginGLine ( 28 , "home x/y" ) . AppendI ( "X" , 0 ) . AppendI ( "Y" , 0 ) ;
104- currentPos . x = currentPos . y = 0 ;
105- PositionShift = 0.5 * new Vector2d ( Settings . Machine . BedSizeXMM , Settings . Machine . BedSizeYMM ) ;
106-
107- Builder . BeginGLine ( 28 , "home z" ) . AppendI ( "Z" , 0 ) ;
108- currentPos . z = 0 ;
117+ HomeSequenceF ( Builder ) ;
109118
119+ PositionShift = 0.5 * new Vector2d ( Settings . Machine . BedSizeXMM , Settings . Machine . BedSizeYMM ) ;
120+ currentPos = Vector3d . Zero ;
110121
111122HeaderCustomizerF ( HeaderState . BeforePrime , Builder ) ;
112123
@@ -166,6 +177,16 @@ void AppendFooter_StandardRepRap() {
166177Builder . EndLine ( ) ; // need to force this
167178}
168179
180+
181+
182+
183+ public virtual void StandardHomeSequence ( GCodeBuilder builder )
184+ {
185+ Builder . BeginGLine ( 28 , "home x/y" ) . AppendI ( "X" , 0 ) . AppendI ( "Y" , 0 ) ;
186+ Builder . BeginGLine ( 28 , "home z" ) . AppendI ( "Z" , 0 ) ;
187+ }
188+
189+
169190}
170191
171192
0 commit comments