diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-05 12:34:58 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-05 12:34:58 +0200 |
| commit | 628819a1787290f84c22ecc7cb747f649fd54468 (patch) | |
| tree | abc7aa70a02818bc0549e36f82564d278ec247c6 /Software | |
| parent | 4a9f241ed8230586242621795f76aa0add9f6008 (diff) | |
| download | Tango-628819a1787290f84c22ecc7cb747f649fd54468.tar.gz Tango-628819a1787290f84c22ecc7cb747f649fd54468.zip | |
Added dynamic factoring for embroidery import thread length.
Diffstat (limited to 'Software')
20 files changed, 456 insertions, 13 deletions
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf Binary files differindex 2a2bb2670..eb37646b5 100644 --- a/Software/DB/Tango.mdf +++ b/Software/DB/Tango.mdf diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf Binary files differindex fb985a544..cb71621e6 100644 --- a/Software/DB/Tango_log.ldf +++ b/Software/DB/Tango_log.ldf diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/EmbroideryMaterialsHelper.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/EmbroideryMaterialsHelper.cs new file mode 100644 index 000000000..86704a2fd --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/EmbroideryMaterialsHelper.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI +{ + public static class EmbroideryMaterialsHelper + { + public static List<IEmbroideryMaterial> GetAvailableEmbroideryMaterials() + { + List<IEmbroideryMaterial> materials = new List<IEmbroideryMaterial>(); + + foreach (var type in typeof(IEmbroideryMaterial).Assembly.GetTypes().Where(x => typeof(IEmbroideryMaterial).IsAssignableFrom(x) && !x.IsAbstract)) + { + materials.Add(Activator.CreateInstance(type) as IEmbroideryMaterial); + } + + return materials; + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/IEmbroideryMaterial.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/IEmbroideryMaterial.cs new file mode 100644 index 000000000..e1d304086 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/IEmbroideryMaterial.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI +{ + public interface IEmbroideryMaterial + { + double Coefficient { get; } + + String Name { get; } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Jersey.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Jersey.cs new file mode 100644 index 000000000..004a67940 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Jersey.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Jersey : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Jersey"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Leather.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Leather.cs new file mode 100644 index 000000000..5cf26d890 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Leather.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Leather : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Leather"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Linen.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Linen.cs new file mode 100644 index 000000000..db7f2fcaa --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Linen.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Linen : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Linen"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Lycra.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Lycra.cs new file mode 100644 index 000000000..1e020d3f2 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Lycra.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Lycra : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Lycra"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Mesh.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Mesh.cs new file mode 100644 index 000000000..e99dd4823 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Mesh.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Mesh : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Mesh"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/MicroFiber.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/MicroFiber.cs new file mode 100644 index 000000000..51b16afe7 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/MicroFiber.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class MicroFiber : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Micro Fiber"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Nylon.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Nylon.cs new file mode 100644 index 000000000..9cf33d1ee --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Nylon.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Nylon : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Nylon"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Pique.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Pique.cs new file mode 100644 index 000000000..1263b23d2 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Pique.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Pique : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Pique"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PolyCotton.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PolyCotton.cs new file mode 100644 index 000000000..7dacaa945 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PolyCotton.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class PolyCotton : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Poly Cotton"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Polyester.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Polyester.cs new file mode 100644 index 000000000..7c915f138 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Polyester.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Polyester : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Polyester"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PureCotton.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PureCotton.cs new file mode 100644 index 000000000..270756af2 --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/PureCotton.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class PureCotton : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Pure Cotton"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Rayon.cs b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Rayon.cs new file mode 100644 index 000000000..e71258aba --- /dev/null +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Materials/Rayon.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.EmbroideryUI.Materials +{ + public class Rayon : IEmbroideryMaterial + { + public double Coefficient + { + get + { + return 1; + } + } + + public string Name + { + get + { + return "Rayon"; + } + } + } +} diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj index 9ef098618..11b779275 100644 --- a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj @@ -60,7 +60,21 @@ <Compile Include="EmbroideryFileEditor.xaml.cs"> <DependentUpon>EmbroideryFileEditor.xaml</DependentUpon> </Compile> + <Compile Include="EmbroideryMaterialsHelper.cs" /> + <Compile Include="IEmbroideryMaterial.cs" /> <Compile Include="EmbroideryPath.cs" /> + <Compile Include="Materials\Jersey.cs" /> + <Compile Include="Materials\Leather.cs" /> + <Compile Include="Materials\Linen.cs" /> + <Compile Include="Materials\Lycra.cs" /> + <Compile Include="Materials\Mesh.cs" /> + <Compile Include="Materials\MicroFiber.cs" /> + <Compile Include="Materials\Nylon.cs" /> + <Compile Include="Materials\Pique.cs" /> + <Compile Include="Materials\PolyCotton.cs" /> + <Compile Include="Materials\Polyester.cs" /> + <Compile Include="Materials\PureCotton.cs" /> + <Compile Include="Materials\Rayon.cs" /> <Compile Include="Properties\AssemblyInfo.cs"> <SubType>Code</SubType> </Compile> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/EmbroideryImportViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/EmbroideryImportViewVM.cs index 530893535..eaffab9e5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/EmbroideryImportViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/EmbroideryImportViewVM.cs @@ -27,17 +27,50 @@ namespace Tango.MachineStudio.Developer.ViewModels public ObservableCollection<EmbroideryPath> Paths { get; set; } - private int _stitchLength; + public List<IEmbroideryMaterial> EmbroideryMaterials { get; set; } - public int StitchLength + private IEmbroideryMaterial _selectedEmbroideryMaterial; + public IEmbroideryMaterial SelectedEmbroideryMaterial { - get { return _stitchLength; } - set { _stitchLength = value; RaisePropertyChangedAuto(); } + get { return _selectedEmbroideryMaterial; } + set { _selectedEmbroideryMaterial = value; RaisePropertyChangedAuto(); } + } + + private IEmbroideryMaterial _selectedStabilizer; + public IEmbroideryMaterial SelectedStabilizer + { + get { return _selectedStabilizer; } + set { _selectedStabilizer = value; RaisePropertyChangedAuto(); } + } + + private double _embroideryMaterialThickness; + public double EmbroideryMaterialThickness + { + get { return _embroideryMaterialThickness; } + set { _embroideryMaterialThickness = value; RaisePropertyChangedAuto(); } + } + + private double _stabilizerThickness; + public double StabilizerThickness + { + get { return _stabilizerThickness; } + set { _stabilizerThickness = value; RaisePropertyChangedAuto(); } + } + + private bool _hasStabilizer; + public bool HasStabilizer + { + get { return _hasStabilizer; } + set { _hasStabilizer = value; RaisePropertyChangedAuto(); } } public EmbroideryImportViewVM() : base() { - StitchLength = 6; + EmbroideryMaterials = EmbroideryMaterialsHelper.GetAvailableEmbroideryMaterials(); + SelectedEmbroideryMaterial = EmbroideryMaterials.FirstOrDefault(); + SelectedStabilizer = EmbroideryMaterials.FirstOrDefault(); + EmbroideryMaterialThickness = 1; + StabilizerThickness = 1; ImportCommand = new RelayCommand(Import); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 218733819..566dc7a16 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -1639,7 +1639,7 @@ namespace Tango.MachineStudio.Developer.ViewModels if (jobName != null) { - AddJobFromEmbroideryFile(jobName, vm.Paths.ToList(), vm.StitchLength, vm.EmbroideryFile, dlg.FileName, view.EmbroideryImageBytes); + AddJobFromEmbroideryFile(jobName, vm, dlg.FileName, view.EmbroideryImageBytes); } }, () => @@ -1649,7 +1649,7 @@ namespace Tango.MachineStudio.Developer.ViewModels } } - private async void AddJobFromEmbroideryFile(String jobName, List<EmbroideryPath> paths, int stitchLength, EmbroideryFile embroideryFile, String fileName, byte[] imageBytes) + private async void AddJobFromEmbroideryFile(String jobName, EmbroideryImportViewVM vm, String fileName, byte[] imageBytes) { LogManager.Log(String.Format("Adding new job from embroidery file {0}...", jobName)); @@ -1668,12 +1668,23 @@ namespace Tango.MachineStudio.Developer.ViewModels job.EmbroideryJpeg = imageBytes; job.HasEmbroideryFile = true; - foreach (var path in paths.Skip(1)) + foreach (var path in vm.Paths.Skip(1)) { Segment segment = new Segment(); - segment.Length = (path.Length / 1000d) * 2d; + + double baseLength = path.Length / 1000d; + double embThicknessLength = (vm.EmbroideryMaterialThickness * path.StitchCount) / 1000d; + double stabilizerThicknessLength = (vm.StabilizerThickness * path.StitchCount) / 1000d; + double totalLength = (baseLength + embThicknessLength) * vm.SelectedEmbroideryMaterial.Coefficient; + + if (vm.HasStabilizer) + { + totalLength += (stabilizerThicknessLength * vm.SelectedStabilizer.Coefficient); + } + + segment.Length = totalLength; segment.Name = "Embroidery Segment"; - segment.SegmentIndex = paths.IndexOf(path) + 2; + segment.SegmentIndex = vm.Paths.IndexOf(path) + 2; if (path.Brush is SolidColorBrush) { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml index 17a5a5b8c..42d0bb106 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml @@ -45,10 +45,33 @@ <Grid Grid.Column="1" Grid.Row="1"> <StackPanel> <TextBlock Margin="5">Region Brush</TextBlock> - <brushPicker:BrushPicker Margin="0 10 0 0" Background="White" BorderThickness="0" Brush="{Binding ElementName=editor,Path=SelectedPath.Brush,Mode=TwoWay}" /> + <Border Margin="5" BorderThickness="1" BorderBrush="Silver"> + <brushPicker:BrushPicker Background="White" BorderThickness="0" Brush="{Binding ElementName=editor,Path=SelectedPath.Brush,Mode=TwoWay}" /> + </Border> - <TextBlock Text="Stitch Length" Margin="5"></TextBlock> - <mahApps:NumericUpDown Margin="5" Minimum="1" Maximum="20" StringFormat="# mm" Value="{Binding StitchLength}" HasDecimals="False" HorizontalContentAlignment="Center" /> + <Border BorderThickness="1" BorderBrush="Silver" Padding="5 0 5 5" Margin="5"> + <Border.Resources> + <Style TargetType="TextBlock"> + <Setter Property="Margin" Value="0 10 0 5"></Setter> + </Style> + </Border.Resources> + <StackPanel> + <TextBlock Text="Material"></TextBlock> + <ComboBox ItemsSource="{Binding EmbroideryMaterials}" SelectedItem="{Binding SelectedEmbroideryMaterial}" DisplayMemberPath="Name" Margin="5 0"></ComboBox> + + <TextBlock Text="Material Thickness"></TextBlock> + <mahApps:NumericUpDown Minimum="0" Maximum="100" StringFormat="# mm" Value="{Binding EmbroideryMaterialThickness}" HasDecimals="False" HorizontalContentAlignment="Center" /> + + <Grid Margin="0 20 0 5"> + <TextBlock Text="Stabilizer" Margin="0" HorizontalAlignment="Left"></TextBlock> + <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding HasStabilizer}"></ToggleButton> + </Grid> + <ComboBox IsEnabled="{Binding HasStabilizer}" ItemsSource="{Binding EmbroideryMaterials}" SelectedItem="{Binding SelectedStabilizer}" DisplayMemberPath="Name" Margin="5 0"></ComboBox> + + <TextBlock Text="Stabilizer Thickness"></TextBlock> + <mahApps:NumericUpDown IsEnabled="{Binding HasStabilizer}" Minimum="1" Maximum="100" StringFormat="# mm" Value="{Binding StabilizerThickness}" HasDecimals="False" HorizontalContentAlignment="Center" /> + </StackPanel> + </Border> </StackPanel> <Rectangle HorizontalAlignment="Left" Stroke="Silver" /> |
