From 112661f5b969b1c07407b1245cfc6f2af0ac3c15 Mon Sep 17 00:00:00 2001 From: larsbrubaker Date: Wed, 5 Feb 2014 12:04:05 -0800 Subject: [PATCH] putting in support for circular beds (and bed shapes) changing SeeMeCNC to have circular beds white listing RoBo 3D --- PartPreviewWindow/PartPreviewMainWindow.cs | 2 +- PartPreviewWindow/View3DTransfromPart.cs | 4 ++-- SliceConfiguration/ActiveSliceSettings.cs | 19 +++++++++++++++++++ SliceConfiguration/CuraEnginMappings.cs | 1 + .../OEMSettings/PrinterSettingsWhitelist.txt | 2 +- .../SeeMeCNC/Orion ABS/config.ini | 1 + .../SeeMeCNC/Orion PLA/config.ini | 1 + .../SeeMeCNC/RostockMAX/config.ini | 2 +- StaticData/PrinterSettings/config.ini | 1 + StaticData/SliceSettings/Layouts.txt | 1 + StaticData/SliceSettings/Properties.txt | 1 + 11 files changed, 30 insertions(+), 5 deletions(-) diff --git a/PartPreviewWindow/PartPreviewMainWindow.cs b/PartPreviewWindow/PartPreviewMainWindow.cs index a37f519f0..82388097c 100644 --- a/PartPreviewWindow/PartPreviewMainWindow.cs +++ b/PartPreviewWindow/PartPreviewMainWindow.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow string part3DViewLblBeg = ("3D"); string part3DViewLblEnd = new LocalizedString ("View").Translated; string part3DViewLblFull = string.Format("{0} {1} ", part3DViewLblBeg, part3DViewLblEnd); - part3DView = new View3DTransformPart(printItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight)); + part3DView = new View3DTransformPart(printItem, new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight), ActiveSliceSettings.Instance.BedShape); TabPage partPreview3DView = new TabPage(part3DView, part3DViewLblFull); partGcodeView = new GcodeViewBasic(printItem, ActiveSliceSettings.Instance.GetBedSize, ActiveSliceSettings.Instance.GetBedCenter); diff --git a/PartPreviewWindow/View3DTransfromPart.cs b/PartPreviewWindow/View3DTransfromPart.cs index 7e0ad6552..297bd4b8a 100644 --- a/PartPreviewWindow/View3DTransfromPart.cs +++ b/PartPreviewWindow/View3DTransfromPart.cs @@ -264,7 +264,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow base.OnMouseUp(mouseEvent); } - public View3DTransformPart(PrintItemWrapper printItemWrapper, Vector3 viewerVolume) + public View3DTransformPart(PrintItemWrapper printItemWrapper, Vector3 viewerVolume, MeshViewerWidget.BedShape bedShape) { MeshExtraData = new List(); MeshExtraData.Add(new PlatingMeshData()); @@ -281,7 +281,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow GuiWidget viewArea = new GuiWidget(); viewArea.AnchorAll(); { - meshViewerWidget = new MeshViewerWidget(viewerVolume, 1); + meshViewerWidget = new MeshViewerWidget(viewerVolume, 1, bedShape); SetMeshViewerDisplayTheme(); meshViewerWidget.AnchorAll(); } diff --git a/SliceConfiguration/ActiveSliceSettings.cs b/SliceConfiguration/ActiveSliceSettings.cs index dbc71e650..2a9e06b65 100644 --- a/SliceConfiguration/ActiveSliceSettings.cs +++ b/SliceConfiguration/ActiveSliceSettings.cs @@ -195,6 +195,7 @@ namespace MatterHackers.MatterControl { return BedSize; } + public Vector2 BedSize { get @@ -203,6 +204,24 @@ namespace MatterHackers.MatterControl } } + public MeshVisualizer.MeshViewerWidget.BedShape BedShape + { + get + { + switch(GetActiveValue("bed_shape")) + { + case "rectangular": + return MeshVisualizer.MeshViewerWidget.BedShape.Rectangular; + + case "circular": + return MeshVisualizer.MeshViewerWidget.BedShape.Circular; + + default: + throw new NotImplementedException(string.Format("'{0}' is not a known bed_shape.", GetActiveValue("bed_shape"))); + } + } + } + public Vector2 GetBedCenter() { return BedCenter; diff --git a/SliceConfiguration/CuraEnginMappings.cs b/SliceConfiguration/CuraEnginMappings.cs index d17ed2d65..154fd31a5 100644 --- a/SliceConfiguration/CuraEnginMappings.cs +++ b/SliceConfiguration/CuraEnginMappings.cs @@ -36,6 +36,7 @@ namespace MatterHackers.MatterControl new NotPassedItem("", "temperature"), new NotPassedItem("", "bed_temperature"), + new NotPassedItem("", "bed_shape"), new MapItem("insetCount", "perimeters"), diff --git a/StaticData/OEMSettings/PrinterSettingsWhitelist.txt b/StaticData/OEMSettings/PrinterSettingsWhitelist.txt index 5bafbafd9..b5db89e90 100644 --- a/StaticData/OEMSettings/PrinterSettingsWhitelist.txt +++ b/StaticData/OEMSettings/PrinterSettingsWhitelist.txt @@ -5,4 +5,4 @@ SeeMeCNC Printrbot Deezmaker Blue Eagle Labs -Robo 3D \ No newline at end of file +RoBo 3D \ No newline at end of file diff --git a/StaticData/PrinterSettings/SeeMeCNC/Orion ABS/config.ini b/StaticData/PrinterSettings/SeeMeCNC/Orion ABS/config.ini index 50627b8bc..9ed21c5b6 100644 --- a/StaticData/PrinterSettings/SeeMeCNC/Orion ABS/config.ini +++ b/StaticData/PrinterSettings/SeeMeCNC/Orion ABS/config.ini @@ -1,4 +1,5 @@ avoid_crossing_perimeters = 1 +bed_shape = circular bed_size = 260,260 bed_temperature = 70 bottom_solid_layers = 5 diff --git a/StaticData/PrinterSettings/SeeMeCNC/Orion PLA/config.ini b/StaticData/PrinterSettings/SeeMeCNC/Orion PLA/config.ini index 50627b8bc..9ed21c5b6 100644 --- a/StaticData/PrinterSettings/SeeMeCNC/Orion PLA/config.ini +++ b/StaticData/PrinterSettings/SeeMeCNC/Orion PLA/config.ini @@ -1,4 +1,5 @@ avoid_crossing_perimeters = 1 +bed_shape = circular bed_size = 260,260 bed_temperature = 70 bottom_solid_layers = 5 diff --git a/StaticData/PrinterSettings/SeeMeCNC/RostockMAX/config.ini b/StaticData/PrinterSettings/SeeMeCNC/RostockMAX/config.ini index 27c103488..a58f951a7 100644 --- a/StaticData/PrinterSettings/SeeMeCNC/RostockMAX/config.ini +++ b/StaticData/PrinterSettings/SeeMeCNC/RostockMAX/config.ini @@ -1,6 +1,6 @@ -# generated by Slic3r 0.9.9 on Tue May 14 10:04:09 2013 avoid_crossing_perimeters = 1 bed_size = 280,280 +bed_shape = circular bed_temperature = 80 bottom_solid_layers = 3 bridge_acceleration = 0 diff --git a/StaticData/PrinterSettings/config.ini b/StaticData/PrinterSettings/config.ini index cca3b8fbf..82c9b7d41 100644 --- a/StaticData/PrinterSettings/config.ini +++ b/StaticData/PrinterSettings/config.ini @@ -1,4 +1,5 @@ avoid_crossing_perimeters = 0 +bed_shape = rectangular bed_size = 200,200 bed_temperature = 70 bottom_solid_layers = 3 diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index 8484c7bc9..8b72dcf0a 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -179,6 +179,7 @@ Advanced print_center build_height z_offset + bed_shape Firmware gcode_flavor use_relative_e_distances diff --git a/StaticData/SliceSettings/Properties.txt b/StaticData/SliceSettings/Properties.txt index 887926a3e..7fe563121 100644 --- a/StaticData/SliceSettings/Properties.txt +++ b/StaticData/SliceSettings/Properties.txt @@ -1,4 +1,5 @@ avoid_crossing_perimeters|Avoid Crossing Perimeters|CHECK_BOX||Attempts to minimize the number of perimeter crossing. This can help with oozing or strings. +bed_shape|Bed Shape|LIST|rectangular,circular|The shape of the physical print bed. bed_size|Bed Size|VECTOR2|mm|The size of the print bed. bed_temperature|Bed Other Layers|POSITVE_DOUBLE|degrees|The temperature to set the bed to after the first layer has been printed. Set to 0 to eliminate bed temperature commands. bottom_solid_layers|Number of Solid Layers\n on the Bottom:|INT||How many layers will be solid filled on the bottom surfaces of the object.