diff --git a/EmbroideryCollection-Cleanup.ps1 b/EmbroideryCollection-Cleanup.ps1 index 52b36b5..4be056c 100644 --- a/EmbroideryCollection-Cleanup.ps1 +++ b/EmbroideryCollection-Cleanup.ps1 @@ -16,7 +16,7 @@ param [int32]$SetSize = 10, [Switch]$KeepAllTypes, # Keep all the different types of a file (duplicate name but different extensions) [Switch]$CleanCollection, # Cleanup the Collection Folder to only EmbroidDir files -# BUG in NoDirectory +# incomplete NoDirectory # [Switch]$NoDirectory, # Do not create directory structure in the upload from space # [Switch]$OneDirectory, #Limit the folders to one directly deep only [string]$EmbroidDir = "Embroidery", # You may want to change this directory name inside of the 'Collection ' Directory wihtin your 'Documents' directory @@ -42,8 +42,8 @@ $ECCVERSION = "v0.6.7" # $InformationPreference = "Continue" <# ******** CONFIGURATION ********#> -$preferredSewType = 'vp3', 'vip', 'pcs','dst', 'pes', 'hus' -$alltypes = 'hus', 'dst', 'exp', 'jef', 'pes', 'vip', 'vp3', 'xxx', 'sew', 'vp4', 'pcs', 'vf3', 'csd', 'zsk', 'emd' , 'ese', 'phc', 'art', 'ofm', 'shv', 'pxf', 'svg', 'dxf', 'pec', 'pcm', 'pxf', 'dem', 'phc', 'mhv', 'bmc' +$preferredSewType = 'vp4', 'vp3', 'pes', 'pcs','hus','dst' +$alltypes = 'hus', 'dst', 'exp', 'jef', 'pes', 'vip', 'vp3', 'xxx', 'sew', 'vp4', 'pcs', 'vf3', 'csd', 'zsk', 'emd' , 'ese', 'phc', 'art', 'ofm', 'shv', 'pxf', 'svg', 'dxf', 'pec', 'pcm', 'pxf', 'dem', 'phc', 'mhv', 'bmc', "jpx", "jef+" $foldupDir = 'images', 'sewing helps', 'Designs', 'Design Files', 'brother-babylock-pes', 'janome-jef', 'singer-xxx', 'husqvarna-viking-hus', 'commercial formats - dst-exp', 'artista-art' $goodInstructionTypes = ('pdf','doc', 'docx', 'txt','rtf', 'mp4', 'ppt', 'pptx', 'gif', 'jpg', 'png', 'bmp','mov', 'wmv', 'avi','mpg', 'm4v', 'htm', 'html' ) @@ -680,7 +680,7 @@ function CheckAndRemove { $fcr = $RemoveFiles.length if ($fcr -gt 0) { - write-host "Found ${fcr} files that $why and should be removed" -ForegroundColor Yellow + write-host "Found $fcr files that $why and should be removed" -ForegroundColor Yellow # $RemoveFiles|Select-Object Name, FullName, DirectoryName, Extension | Out-GridView -Title "Files that will be removed - $why (Close this Windows to continue)" $cont = MyPause 'Remove those files? (No to keep them)' -Choice $true -BoxMsg 'Click Yes to remove them' -ChoiceDefault $false @@ -752,8 +752,10 @@ Function TailRecursion { function ChecktoClearNewFilesDirectory { if ($Script:clearNewFiles) { if ((get-volume -filePath $NewFilesDir).DriveType -eq "Fixed") { + write-progress -Activity "Preparing working directory" Get-ChildItem -Path $("\\?\" + $NewFilesDir) -Recurse | Remove-Item -Force -Recurse write-verbose "CLEARED Copy File Space" + write-progress -Completed $true } $Script:clearNewFiles = $false } @@ -814,6 +816,9 @@ function Get-LatestGitHubTag { Function OpenForUpload { + if ($CloudAPI -or $UsingUSBDrive) { + return + } Write-Host "-----------------------------------------------------------------------------------------" -ForegroundColor Green if ($DragUpload) { @@ -1614,14 +1619,16 @@ function MoveFromDir ( } else { ChecktoClearNewFilesDirectory - if ($NoDirectory) { - Copy-Item -Path $_ -Destination $(Join-Path -Path $NewFilesDir -ChildPath $newfile) - } else { - $newpath = join-path -path $NewFilesDir -childpath $newdir - if (!(test-path ($newpath))) { - New-Item -Path ($newpath) -ItemType Directory | Out-Null + if (!($UsingUSBDrive) -or $isEmbrodery) { + if ($NoDirectory) { + Copy-Item -Path $_ -Destination $(Join-Path -Path $NewFilesDir -ChildPath $newfile) + } else { + $newpath = join-path -path $NewFilesDir -childpath $newdir + if (!(test-path ($newpath))) { + New-Item -Path ($newpath) -ItemType Directory | Out-Null + } + Copy-Item -Path $_ -Destination $(Join-Path -Path $newpath -ChildPath $newfile) } - Copy-Item -Path $_ -Destination $(Join-Path -Path $newpath -ChildPath $newfile) } LogAction $newfile -Action "++Added-MoveFrom" # BUG THIS IS THE LINE THAT ERRORS out wiht Directory Not Found @@ -1632,16 +1639,8 @@ function MoveFromDir ( Move-Item $_ -Destination $npath -force # -ErrorAction SilentlyContinue $newFileCount += 1 Write-Information "+++ Saving ${dtype}:'$_' to ${newdir} & ${newfiledir}" - <#if ($isEmbrodery) { - $Script:addsizecnt = $Script:addsizecnt + (Get-Item -Path $npath).Length - $Script:savecnt = $Script:savecnt + 1 - } - #> } } -# } else { -# Write-Verbose "Skipping ${_.Name}" -# } if ($loopy++ % 20 -eq 0) { ShowProgress -Area "Copying $($_.Name)" -Stat "Added ${Script:savecnt} files" @@ -1832,7 +1831,7 @@ function CheckUSBDrive ($USBPath) { } } elseif ($USBPath.tolower().contains("off")) { - $USBDrive = "" + $script:USBDrive = "" $failed = $false $driveletter = "" } else { @@ -1871,7 +1870,7 @@ function AddToSewList { [System.IO.FileInfo]$TmpPath = $null, [System.IO.FileInfo]$keepPath = $null ) - if ($nameIndex -eq "" -or $nameIndex -eq $null) { + if ($nameIndex -eq "" -or $null -eq $nameIndex) { write-Error "** BLANK NAME - '$NameIndex', '$Name', '$directory', '$lastWriteTime' " start-sleep -Milliseconds 100 @@ -1920,17 +1919,6 @@ function AddToSewList { $Directory = FoldupDirPath -directoryPath $Directory $fullName = join-path -Path $Directory -ChildPath $Name $fileinfo = New-Object System.IO.FileInfo($fullname) - <# if (!($RelativePath)) { - - $RelativePath = (Split-path -Path $fullName -parent) - if ($EmbroidDir.Length -lt $RelativePath.Length) { - $RelativePath = $RelativePath.substring($EmbroidDir.Length+1) - } else { - $RelativePath = "" - } - - } - #> $script:mysewingfiles += [PSCustomObject]@{ NameIndexed = $NameIndex @@ -1972,11 +1960,11 @@ function ExpandAZip { ) $resultTmpDir = (Join-Path $tmpdir -childpath $RelativePath).trim("\") # Check for long path names inside the zip file - write-progress "Expanding Zip Archive.. Please wait " -Status (split-path -path $zippath -leaf) + + write-progress -Activity "Expanding Zip Archive.. Please wait " -Status (split-path -path $zippath -leaf) $bigzip = (get-item $zippath).Length -gt $use7zipsize if (($bigzip -or $havewarning) -and (Test-Path "C:\Program Files\7-Zip\7z.exe")) { Set-Alias sevenz "C:\Program Files\7-Zip\7z.exe" - # write-host "`n`n`n`n`n" sevenz x $zippath -o"$resultTmpDir" -y } else { Expand-Archive -Path $zippath -DestinationPath $resultTmpDir -Force @@ -2051,7 +2039,14 @@ function ProcessZipContents { } else { $buildpath = $tmpdir } - $tempPath = get-item -path $(join-path -path $buildpath -childpath $fileInZip.FullName) + $buildpath = join-path -path $buildpath -childpath $fileInZip.FullName + if (test-path -Path $buildpath) { + $tempPath = get-item -path $buildpath + } else { + write-warning "Could not access: $(buildpath.substring($tmpdir.Length))" + $tempPath = $null + } + } else { $tempPath = $null } @@ -2202,6 +2197,8 @@ if ($null -eq $LastCheckedGithub -or ($(get-date) -gt $(get-date $LastCheckedGit if ($setup) { write-host " ".padright(70) -BackgroundColor Yellow -ForegroundColor Black + # Load the System.Windows.Forms assembly + Add-Type -AssemblyName System.Windows.Forms $Desktop = [Environment]::GetFolderPath("Desktop") $DesktopLink = $Desktop + "\Embroidery Organizer.lnk" $WshShell = New-Object -comObject WScript.Shell @@ -2239,18 +2236,22 @@ if ($setup) { LogAction -File $Desktop -Action "Created-Desktop-Shortcut" } ShowPreferences - # Load the System.Windows.Forms assembly - Add-Type -AssemblyName System.Windows.Forms - + # Instantiate a FolderBrowserDialog object $DirectoryBrowser = New-Object System.Windows.Forms.FolderBrowserDialog -Property @{ SelectedPath = $EmbroidDir Description = "Select the Directory for Embroidery Files" ShowNewFolderButton = $true } - + # Instantiate a FolderBrowserDialog object + $USBBrowser = New-Object System.Windows.Forms.FolderBrowserDialog -Property @{ + SelectedPath = $USBDrive + Description = "Select the USB device for Embroidery Files to be copied to" + ShowNewFolderButton = $false + rootFolder = 17 # MyComputer + } do { - write-host "In order to Setup you will be asked questions to configure this script".padright(70) -BackgroundColor Blue -ForegroundColor White + write-host "In order to Setup you will be answer questions to configure this script".padright(70) -BackgroundColor Blue -ForegroundColor White write-host $($paramstring['EmbroidDir']) "?" -NoNewline # Show the dialog box and store the selected folder path if ($DirectoryBrowser.ShowDialog() -eq "OK") { @@ -2261,8 +2262,14 @@ if ($setup) { write-host $EmbroidDir write-host "How do you want to transfer your files to your machine (USB, Mysewnet or neither)" if (myPause -Message "Are you using a USB Drive?" -Choice $true -ChoiceDefault ($USBDrive -ne "")) { + do { - $USBDrive = Read-Host -Prompt "Which Drive is the USB stick connected too?" + if ($USBBrowser.ShowDialog() -eq "OK") { + $USBDrive = $USBBrowser.SelectedPath + } else { + $USBDrive = "" + } + if ($USBDrive -eq "") { $notvalid = myPause -Message "Do you still want to use a USB Drive?" -Choice $true } else { @@ -2271,10 +2278,14 @@ if ($setup) { } } while ($notvalid) $CloudAPI = $false + if ($USBDrive) { + write-host "USB Drive Selected - $USBDrive" + } } else { $USBDrive = "" } if ($USBDrive -eq "") { + $UsingUSBDrive = $false if (myPause -Message "Are you using MySewnet Cloud" -Choice $true -ChoiceDefault $CloudAPI) { $CloudAPI = $true $USBDrive = "" @@ -2295,6 +2306,7 @@ if ($setup) { } else { $CloudAPI = $false $USBDrive = "" + $UsingUSBDrive = $false } } $dd = Read-Host "How many days back do you want to always look when checking the Download folder? (currently $DownloadDaysOld)" @@ -2337,6 +2349,7 @@ if ($setup) { $savep = mypause -Message "Do you want to save these settings?" -Choice $true $continuesetup = -not $savep } while ($continuesetup) + $FirstRun =$FirstRun -or $(Test-path -path $ConfigFile) SaveAllParams @@ -2362,7 +2375,7 @@ if ($setup) { } write-host "All Setup " -BackgroundColor Yellow -ForegroundColor Black - $FirstRun = mypause -Message "What you like the run the script and collect all your Embroidery that you have every downloaded? " -Choice $true + $FirstRun = mypause -Message "Would you like to run trigger the script to collect *ALL* your Embroidery files that you have every downloaded? " -Choice $true -ChoiceDefault $FirstRun if (-not $firstRun) { Return } @@ -2387,10 +2400,16 @@ $failed = $false if ("" -ne $USBDrive) { - $driveletter = CheckUSBDrive $USBDrive + do { + $driveletter = CheckUSBDrive $USBDrive + $needadrive = "" -eq $driveletter + if ($needadrive) { + $needadrive = MyPause "USB Drive $usbDrive is not ready, do you want to use your USB Stick (insert it now)" -choice $true + } + } while ($needadrive) if ("" -ne $driveletter) { - Write-Warning $driveletter - $NewFilesDir = $driveletter + ":\" + + $NewFilesDir = $USBDrive # Don't wipe someone's USB drive $Script:clearNewFiles = $False $DragUpload = $False @@ -2415,6 +2434,7 @@ if ($DragUpload) { if ($UsingUSBDrive) { Write-host "Saving to USB drive".padright($padder) ": $NewFilesDir" -ForegroundColor Yellow + } if ($Testing) { Write-Host "Testing Mode".padright($padder) + ": $Testing" -ForegroundColor Yellow @@ -2460,7 +2480,7 @@ if ($failed) { } -$cont = (MyPause 'Press Start to continue, any other key to stop (Auto starting in 3 seconds)' $true 'Click Yes to start' 10) +$cont = (MyPause 'Press Start to continue, any other key to stop (Auto starting in 10 seconds)' $true 'Click Yes to start' 10) if (!$cont) { Break @@ -2484,13 +2504,16 @@ $quickmysewfiles = BuildHashofMySewingFiles if ($FirstRun) { $DownloadDaysOld = 20*365 + $zipdepth = 50 +} else { + $zipdepth = 0 } # $mysewingfiles | ft $isNewInstruct = $false $havewarning = $false $afterdate = (Get-Date).AddDays(- $DownloadDaysOld ) -Get-ChildItem -Path $downloaddir -file -filter "*.zip" | Where-Object { (($_.CreationTime -gt $afterdate) -OR ($_.LastWriteTime -gt $afterdate)) -and ($_.gettype().Name -eq 'FileInfo')} | +Get-ChildItem -Path $downloaddir -file -filter "*.zip" -depth $zipdepth | Where-Object { (($_.CreationTime -gt $afterdate) -OR ($_.LastWriteTime -gt $afterdate)) -and ($_.gettype().Name -eq 'FileInfo')} | ForEach-Object { ShowProgress "Checking Zips - Looking at $($_.Name)" -stat "Added $Script:savecnt files" @@ -2499,13 +2522,13 @@ Get-ChildItem -Path $downloaddir -file -filter "*.zip" | Where-Object { (($_.Cr } # Look for Files which are not part of a ZIP file, just the selected file types that we are looking for that is in the download directory -$DownloadDaysOld = 365*10 # 10 years of downloads (when you download files, it keeps the old data) +$DownloadDaysOld = 365*20 # 20 years of downloads (when you download files, it keeps the old data) $ppp = 0 foreach ($thistype in $preferredSewType) { write-Information "Working on File type: *.$ts" - Get-ChildItem -Path $downloaddir -file -Depth 1 -Recurse| Where-Object { $_.Extension -like $thistype -and $_.CreationTime -gt (Get-Date).AddDays(- $DownloadDaysOld ) } | + Get-ChildItem -Path $downloaddir -file -Depth ($zipdepth + 1) -Recurse| Where-Object { $_.Extension -like ".$thistype" -and $_.CreationTime -gt (Get-Date).AddDays(- $DownloadDaysOld ) } | ForEach-Object { $thisfile = $_ $f = $_.Name @@ -2519,7 +2542,7 @@ foreach ($thistype in $preferredSewType) { $findfile = $fs } if ($findfile -in $mysewingfiles.NameIndexed) { - Write-verbose "Duplicate file '${findfile}'" + Write-verbose "Duplicate file '$($findfile)'" } else { if (test-path -path $fullname) { write-Information "checking on $fullname" @@ -2546,7 +2569,7 @@ foreach ($thistype in $preferredSewType) { $l = (split-path -Path $fullname -Parent).Substring($downloaddir.Length).trim('\') } $d = (join-path -path $EmbroidDir -childpath $l).Trim('\') - AddToSewList -NameIndex $findfile -Name $f -Directory $d -LastWriteTime $thisfile.LastWriteTime -keepPath $thisfile -RelativePath $l + AddToSewList -NameIndex $findfile -Name $f -Directory $d -LastWriteTime $thisfile.LastWriteTime -keepPath $thisfile -RelativePath $l | Out-Null } } @@ -2668,12 +2691,6 @@ if ($CloudAPI -and $CloudAuthAvailable) { write-Progress -Activity "Matching files to Cloud : $($thisfile.N)" -PercentComplete ($cm * 100 / $mysewingfiles.count) -Status "$cm of $($mysewingfiles.count)" } $thisfile.CloudRef = GetFileIDfromCloud $_.N - if ($EmbroidDir.Length -lt $thisfile.DirectoryName.length) { - $spl = $thisfile.DirectoryName.substring($EmbroidDir.Length) - } else { - $spl = "" - } - $thisfile.RelPath = $spl if ($thisfile.CloudRef) { $cf = $cf +1 @@ -2784,7 +2801,33 @@ if ($CloudAPI -and $CloudAuthAvailable) { } } } +elseif ($UsingUSBDrive) { + if ($sync) { + $cm = 0 + $MySewingfiles | ForEach-Object { + if ( $cm++ % 25 -eq 0) { + write-Progress -Activity "Matching files to USB : $($_.FileInfo.Name)" -PercentComplete ($cm * 100 / $mysewingfiles.count) -Status "$cm of $($mysewingfiles.count)" + } + $usbfile = join-path -path $USBDrive -ChildPath $_.relPath | join-path -ChildPath $_.fileinfo.Name + if (test-path ($usbfile)) { + $_.CloudRef = $usbfile + } + } + write-Progress -Completed $TRUE + $cm = 0 + $fileToSync = $mysewingfiles | where-object Cloudref -eq $null + if ($fileToSync) { + $fileToSync | foreach-object { + write-Progress -Activity "Copying missing files to USB : $($_.FileInfo.Name)" -PercentComplete ($cm++ * 100 / $fileToSync.count) -Status "$cm of $($fileToSync.count)" + $usbfile = New-Object System.IO.FileInfo($(join-path -path $USBDrive -ChildPath $_.relPath | join-path -ChildPath $_.fileinfo.Name)) + $usbfile.Directory.Create() + copy-item -path $_.fileinfo -Destination $usbfile -Force + } + } + + } + } write-host "Calculating size" @@ -2805,7 +2848,7 @@ if ($Script:savecnt -gt 0) { $byExt[$_.Extension] += $_.Length } } else { - if (-not $CloudAPI) { + if (-not $CloudAPI -and -not $UsingUSBDrive) { if (MyPause "Do you want to open the web page & directory to upload files from last time?" $true) { OpenForUpload } @@ -2821,7 +2864,7 @@ if ($Script:dircnt -gt 0 -or $filesToRemove.length -gt 0) { Write-Host "Cleaned up - Directories removed: '$Script:dircnt Files removed : '$filecnt' ($sizecntB)." -ForegroundColor Green } if ($Script:savecnt -gt 0) { - write-host "+++ Added files to Embriodery Collection: '${Script:savecnt}' files $(niceSize $Script:addsizecnt) " -ForegroundColor Green + write-host "+++ Added files to Embriodery Collection: '$($Script:savecnt)' files $(niceSize $Script:addsizecnt) " -ForegroundColor Green write-host "File size after All: $(niceSize $librarySizeAfter) - Embroidery files: $(niceSize $libraryEmbSizeAfter)" } diff --git a/README.md b/README.md index 813c2d3..2f0c795 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,13 @@ # EmbroideryCollection-Cleanup.ps1 ## Who is this for? -Anyone who has an Embroidery machine (Pfaff, Viking, Husqvarna, Janome, Brother, Baby Lock, Bernette and many others) and is -wanting to manage all the files that you have purchased and downloaded and get them onto your machine either by MySewnet or on a USB. +Anyone who has an Embroidery machine (`Pfaff`, `Viking`, `Husqvarna`, `Janome`, `Brother`, `Baby Lock`, `Bernette`, `Singer`, `Jana`, `Brother` and many others) and is +wanting to manage all the files that you have purchased and downloaded. It will work with 3 different resulting options: +- Put them on a USB stick +- Sent them to MySewnet Cloud +- Put the files into a directory to be dealt with (such as Send to Machine software). + +All while keeping the cache of patterns on your computer for reference along with the instructions. ## Make it work Once you have download your embroidery files click on the `icon for EmbroideryCollection-Cleanup` and it will look through the download folder and place any downloaded sewing files into the Embroidery folder on your computer. Depending on if you are using a USB to transfer the files or using MySewnet Cloud, the script will look at the recently @@ -27,24 +32,25 @@ Invoke-Expression $($ScriptFromGitHub.Content) ``` -I will say, this is generally a bad idea to run random code from the Internet, but in this case, it is hosted in public view on Github and can be checked for Security issues. -If you know a security guy, have them take a look. Then paste in the two lines and have this *package of care* installed. See below for the manual install steps. +I will say, this is *generally a bad idea to run random code* from the Internet, but in this case, it is hosted in public view on Github and can be checked for security issues. +If you know a IT security guy, have them take a look. Then paste in the two lines and have this *package of care* installed. See below for the manual install steps. + +After running the installation, you should have a desktop icon for the script. It will run a setup and ask you how you want to configure it, then it will use the selected folder to keep your 'Embroidery Collection' on your computer are kept and will be organized. By default, the script (and associated files) is installed in `c:\programdata\EmbroideryOrganize\` -After running the installation, you should have a desktop icon for the script. It will also create a folder in Document called 'Embroidery' where the embroidery files on your computer are kept and will be organized. By default, the script (and associated files) is installed in `c:\programdata\EmbroideryOrganize\` +![Img](docs/images/WindowsTerminal_2024-03-29.png) ## Why? -Why would I build a massive, long PowerShell to move a file a few files around? So, this was created to help my wife manage the many embroidery files that she downloads from online stores and move them on to her Pfaff sewing machine. +Why would I build a massive, long PowerShell to move a file a few files around? So, this was created to help my wife manage the many embroidery files that she downloads from online stores and move them on to her Pfaff Embroidery machine (creative icon ). So the sewing machine includes the capability to synchronize those files that you download from the cloud my MySewnet. When you buy embroidery files it usually comes with many different types plus the PDF of instructions all as part of a zip file. Now the challenge is that that zip file has a lot of junk in it that you don't need to be sent to MySewnet and it is limited to 100 megabytes unless you want to pay for the subscription service. -So unzip the files, find the ones that you really need to keep, separate the instruction files out from the embroidery files, transfer the right ones on to the cloud and therefore the sewing machine, easy peasy. I chose to use PowerShell so that people did not have to deal with downloading Python. Simplifying so that people can get up and running is in a minimal number of clicks .. easy peasy .. NOT so much for me.. *but hopefully for users*. +So unzip the files, find the ones that you really need to keep, separate the instruction files out from the embroidery files, transfer the right ones on to the cloud and therefore the sewing machine, easy peasy. I chose to use PowerShell so that people did not have to deal with downloading Python. Simplifying so that people can get up and running is in a minimal number of clicks .. *easy peasy* .. **NOT** so much for me.. *but hopefully for other users*. -That is what this is. Originally, she could only keep about 40 downloads on her 'storage space' on MySewnet. Lately it has gotten much harder with the bugs in the web interface and limit of uploading 5 files at a time. +That is what this is. Originally, she could only keep about 40 downloads on her 'storage space' on MySewnet. Add to that the bugs in the web interface and limit of uploading 5 files at a time. So it is easy for this script to have over a thousand files in the 100 MB space. -A PowerShell script to deal with the many different types of embroidery files, put the right format types in [mySewnet™](https://mysewnet.com/). If you take all the zip files when you purchase Embroidery patterns, it will come with many different types, along with PDF and Word docs examining how to use the pattern. That's all well and nice but only give you 100 megabytes to put all your files into, so why would you want to waste it with instructions. This script strips it down to the that are appropriate to sync onto my sewing net and get spread of a lot of the folder structure that comes along with it. It is great that the creator of file images produces so many variations, but you only need one type of make your machine work. +A PowerShell script to deal with the many different types of embroidery files, put the right format types in [mySewnet™](https://mysewnet.com/) or onto your USB stick. If you take look at the zip files you purchased full Embroidery patterns, it will come with many different types of files, along with PDF and JPG instructions. That's all well and nice but only give you 100 megabytes to put all your files into, so why would you want to waste it with instructions. This script strips it down to the that are appropriate to sync onto my sewing net and get rid of the spread of the folder structures that comes along with it. It is great that the creator of file images produces so many variations, but you only need one type of make your machine work. -Once it is set up with a shortcut you can simply download your patterns from online stores and then double-click the shortcut to copy the **right patterns** into your collection location and leave the instructions on your computer for reference later. +Once it is set up with a shortcut you can simply download your patterns from online stores and then double-click the shortcut to copy the **right patterns** into your collection location and leave the instructions, along with the right file on your computer for reference later. -![Img](docs/images/WindowsTerminal_2024-03-29.png) ## Getting started This is a self-contained single PowerShell script (See note below). It can be run by right clicking after downloading and select Run with PowerShell. Windows may prompt if you want to allow PowerShell to run. You may also have to `unblock` the downloaded file (`Right-click` properties of the file and at the bottom check the `unblock`. Once you have copy the script into a location (suggested `c:\ProgramData\EmbroideryOrganize`) (and unblocked), then you can run the script with -setup @@ -58,57 +64,53 @@ Once you have run it once, it will create a EmbroideryCollection.CFG file in the If you want to push your files into MySewnet, then you will need one additional module [`PSAutheClient`](https://github.com/alflokken/PSAuthClient) from [`alflokken`](https://github.com/alflokken) -## WIP All these have changed - Parameters -- `-Setup` Interactive setup of parameters, create the directories required, and create a shortcut on the Desktop Icon linked to this PowerShell script. -- `-EmbroidDir documents\Embroidery` The local cache of embroidery files and instructions. -- `-CleanCollection` This is two steps: 1) clean out non preferred embroidery files and duplicates from the the local cache. 2) look for duplicates regardless of if there they are in different directory structure if they have the same name and are created on the same day. It will show a list and promopt before deleting. The files are deleted to the **recycle bin** so they can be restored. (use `-HardDelete` to delete without recycling) -- `-DownloadDaysOld 7` ▫ determine how old of zip files to look for (in days) -- `-KeepAllTypes` ◊ Keep all of the preferred types of pattern files (rather than only the top preferred) -- `-SetSize 10` ▫ When this many files are found together, it will keep the files together in a directory using the zip file name -- `-KeepAllTypes` ◊ Keep all types of a file (duplicate name but different extensions), normally this will find your most preferred file type and only keep that one. See preferredSewType below. -- `-DragUpload` ◊ Use the web page instead of the plug in to drag and drop -- `-Testing` Run it without it doing actual copying of files or cleaning up. -- `-ShowExample` ◊ Show the example GIF on how to send files to the cloud (different image for Windows 10 vs Windows 11) -- `-USBDrive I:` ▫ Copy the new files to a specified USB drive (in the form of I: or H: or E:). To Disable USB use 'OFF' for the drive letter -- `-ConfigFile EmbroideryCollection.cfg` The name of the configuration file which is in the same directory as the script itself. The options selected are saved into the configuration file so the next time the script is run the same settings stay in effect. -- `-ConfigDefault` Reset the default settings and options to original default any of the ◊ or ▫ marked options -- `-SwitchDefault` Use to turn off the Switches you might have turned on - Any of the ◊ marked options (this is the only command-line way to reset the options because of the config file saving the settings state) -- `-CloudAPI` Use MySewNet Cloud to save file after they have been added to the local computer cache (Either USBDrive or CloudAPI but not both at the same time). Only preferred embroidery types will be uploaded to the cloud. -- `-Sync` Syncronize the files in the local `EmbroidDir` cache to the Mysewnet Cloud cache. This includes creating folders and removing files if they are removed from the local cache. This will only copy the preferred embroidery types to the cloud. +## Parameters +| Option | ◊ | Description +| ------ | ---|--------------- | +| `-Setup` | | Interactive setup of parameters, create the directories required, and create a shortcut on the Desktop Icon linked to this PowerShell script. +|`-EmbroidDir directory`| | The local cache of embroidery files and instructions. +|`-CleanCollection` | |This is two steps: 1) clean out non preferred embroidery files and duplicates from the the local cache. 2) look for duplicates regardless of if there they are in different directory structure if they have the same name and are created on the same day. It will show a list and promopt before deleting. The files are deleted to the **recycle bin** so they can be restored. (use `-HardDelete` to delete without recycling) +|`-DownloadDaysOld 7` | | determine how old of zip files to look for (in days) +| `-Sync` | | Syncronize the files in the local `EmbroidDir` cache to the USB Stick or Mysewnet Cloud cache (depending on selection above). This will only copy the preferred embroidery types to the cloud. This includes creating folders and removing files if they are removed from the local cache (for the Cloud option). +|`-KeepAllTypes` |◊ |Toggles the option to Keep all of the preferred types of pattern files (rather than only the top preferred) Keep all types of a file (duplicate name but different extensions), normally this will find your most preferred file type and only keep that one. See `preferredSewType` below. +|`-KeepEmptyDirectory` |◊ |Toggle option to keep/remove extra empty directories from Collection folders' +| `-USBDrive I:` | | Copy the new files to a specified USB drive (in the form of I: or H: or E:). To Disable USB use 'OFF' for the drive letter +| `-CloudAPI` |◊ |Use MySewNet Cloud to save file after they have been added to the local computer cache (Either USBDrive or CloudAPI but not both at the same time). Only preferred embroidery types will be uploaded to the cloud. +|`-DragUpload` |◊ | Toggle option Use the web page instead of the plug in to drag and drop +|`-ShowExample` |◊ | Toggle option Show the example GIF on how to send files to the cloud (different image for Windows 10 vs Windows 11) +| `-ConfigDefault` | |Reset the default settings and options to original default any of the ◊ or ▫ marked options +| `-SwitchDefault` | | Use to turn off the Switches you might have turned on - Any of the ◊ marked options (this is the only command-line way to reset the options because of the config file saving the settings state) +| `-ConfigFile` | | EmbroideryCollection.cfg` The name of the configuration file which is in the same directory as the script itself. The options selected are saved into the configuration file so the next time the script is run the same settings stay in effect. +|`-Testing` | | Run it without it doing actual copying of files or cleaning up. + ### Future - `-OneDirectory` Only put files one folder deep. - `-NoDirectory` Put files the root directory only. -- `-Sync` If using USB synchronized the files will copy to the local USB ## Functions Checks the download directory for the Embroidery files types of any age and all the zip files which have been downloaded in *DownloadDaysOld*. Any Embroidery files found are copied in to the Mysewing cloud folder under *EmbrodRootDirtop* directory (set below). Any zip files found are scanned to see if they have Embroidery file types that we are interested in. If they are files which do not yet exist in the -mysewingnet cloud, then extract that zip to a temporary location, pull out all the relevant files (formats we want) with the directory hierachy (adjusted). Also pull out any related documentation and put it into the *instructions* folder within the user documents on the computer with the directory hierarchy (adjusted). -**TODO** add a get other types of function +mysewingnet cloud, then extract that zip to a temporary location, pull out all the relevant files (formats we want) with the directory hierachy (adjusted). Also pull out any related documentation and put it with pattern files on the computer (not on the USB or Cloud). ### Directory Hierarchy (Adjusted) -When vendors build zip files and put them in all the different formats, it means digging for files. The adjusted version of this will get rid of sub folders if they exist above and there are only folders in folders. Example, if you have files in L3 inside of L2, inside of L1, then it will remove L1, L2, L3 and leave you the files. If you have folders along with instructions with different folders to hold instructions, then it will not flatten the directories. +When vendors build zip files and put them in all the different formats, it means digging for files. The adjusted version of this will get rid of sub folders if they exist above and there are only folders in folders. Example, if you have files in L3 inside of L2, inside of L1, then it will remove L1, L2, L3 and leave you the files. If you have folders along with instructions with different folders to hold instructions, then it will not flatten the directories. It used the parameter from the config file to remove unnessary files. For example if the creator has a folder for HUS, and a folder for DST, then it will remove that folder and move all the files from it up one directory level. ## Requirements -It was designed to work with [mySewnet™ Cloud](https://cloud.mysewnet.com/) which is a type of file share service for sewing machines. It can also be used. - -`$EmbrodRootDirtop = "Embroidery"` is the directory name within your MySewnet cloud that this program will put all the files and clean our file types that do not match the type you set. It must exist in in the root directory of the **mySewnet cloud folders**, order for the program to run. -`$instructions = "Embroidery Instructions"` this is where all the instructions are saved (outside of MySewnet). It must exist within the users **Documents** folder in order for the program to run. +It was designed to work with [mySewnet™ Cloud](https://cloud.mysewnet.com/) which is a type of file share service for sewing machines. It can also be used. The authentication model used for Mysewnet is used as normal, so you will see a login page (if it does not fully load, please login to mysewnet from a reguler web browser page first and then run the script again) Depending on the types Embroidery file extensions your machine uses, then you may what to change the sewing file types of for your machine. Order matters, if will find the first one in your list of types and try and keep files of that type over the other types. `$preferredSewType = ('vp3', 'vp4')` -## Action -![powershell running](docs/images/explorer_2022-12-26_17-32-05.gif) ### Nice to know -If you have 7zip installed on your computer, (that native version, not MS store version), then it will be used when working with large zip files as it is much faster. -If will create folder when there is a number of files `-aSetSizeis` that are in a given zip file using the name of the zip file. You most likely will want to rename it and give it a new name which reflects the folder. +If you have `7zip` installed on your computer, (the native version, not MS store version), then it will be used when working with large zip files as it is much faster. +It will create folders when there is a number of files `-SetSize` that are in a given zip file using the name of the zip file. You most likely will want to rename it and give it a new name which reflects the folder. + Ignore files which are terms and conditions (it does not mean you can ignore the laws, just don't save so many copies of the files. `$TandCs = @('TERMS-OF-USAGE.*', 'planetappliquetermsandconditions.*')` Edit your config (EmbroideryCollection.cfg) file to adjust these values. This are the directories (plus the if the directory name equals the format type) @@ -119,33 +121,32 @@ This are the directories (plus the if the directory name equals the format type) #### Seperating the files When it is comparing patterns it uses the file name to determine if they are the same name. It is case-sensitive and the files must be created on the same day. -`CleanCollection` will clean up files regardless of filename case if you run it, (it will prompt before deleting them) - -### Updated to remove Cloud Sync functionality -The myCloud interface is painful to use, as it has bugs such as sorting directories, and only allows you to upload or delete 5 folders/files at a time. Crazy. And now they are pushing customers to use the Vault function instead of the myCloud. Vault will only accept pattern files that it understands, so you cannot keep the instructions with the patterns. I suspect it is in response to the possible misuse of the cloud space they have created. - -They also make the Explorer Plug-in which appears as a right click in File Explorer. (**Great**, so obviously they have not tried this out in Windows 11, because W11 hides that in the classic functionality.) This is [MySewnet Embroidery Software](https://softwarehelp.mysewnet.com/MSW/140/Configure/#t=Topics%2FUsing_the_Explorer_Plugin.htm) Be aware that if you keep your repository in OneDrive the rendering of the pattern as an Icon does not work. +`CleanCollection` will clean up files regardless of filename case if you run it, (it will prompt before deleting them). **Use this option carefully, it is one of the few options that will remove files that it did not nessarily create.** -It appears that v1.5 is the current version (as of Mar 2024): https://www.mysewnet.com/en-us/embroidery/download-software. +### Other good to knows +They also make the Explorer Plug-in which appears as a right click in File Explorer. (**Great**, so obviously they have not tried this out in Windows 11, because W11 hides that in the classic functionality.) This is [MySewnet Embroidery Software](https://softwarehelp.mysewnet.com/MSW/140/Configure/#t=Topics%2FUsing_the_Explorer_Plugin.htm) Be aware that if you keep your repository in OneDrive the rendering of the pattern as an Icon does not work as of Apr 2024. It appears that v1.5 is the current version (as of Mar 2024): https://www.mysewnet.com/en-us/embroidery/download-software. -### back to the regularly scheduled instructions which are only partly applicable.... # Issues/Future - If is processed as a group of separate zip files which have the same file in different patterns, it will choose a different preferred type than desired - does not support onedirectory deep switch yet -- sync should work with USB as well as cloud - does not warn if cloud will exceed limits with the latest push - need more refactoring - some interactive setup options should have other choices before deciding. - Cloud push is depend on unique files names. - Should set the File Explorer Folder View when a new folder is created if the add-in in place to Large or Huge Icon view - Need to work on Duplicate files of the same name by different file types +- refactoring to use class to address some issues above # Releases +### 0.6.8 +- Added USB `-Sync` +- improved README ### 0.6.7 - changed the iteration and tracking of temporary files to speed up the process - support unicode file name by removing Diacritics - Shortcut will now using PWSH if it is present (`-setup` will trigger an upgrade) +- fixed auto-update ### 0.6.6 - fixed issues with starting with no files - working on performance @@ -213,4 +214,4 @@ It appears that v1.5 is the current version (as of Mar 2024): https://www.mysewn ### 0.0.2 - Fixed the script name, fixed error messages ### 0.0.1 -- It has been in use for over a year, good based, but only every been used by one person +- It has been in use for over a year, good base, but only every been used by one person diff --git a/docs/File-Types.md b/docs/File-Types.md index 46438e1..687b5a6 100644 --- a/docs/File-Types.md +++ b/docs/File-Types.md @@ -1,56 +1,161 @@ -## WIP +## File Types + +Depending on the machine you have it will support different file formats. Some format are much better quaility than others. Because of this you should be careful on which of the formats you choose as your preferred format. Below is a listing of different formats and the quality of the information in each format, which then drives a prefer (1 - best, 5 - last resort/worst). Format|Machine Type|Preferred|Preview|Comment| |----|---|---|---|---| +|10o| Toyota embroidery |1|N| 10O files are used by Toyota embroidery machines to store design information | |art| Bernina embroidery, NMeF | 3 |Y| ART files are native to Bernina embroidery software and contain information about colors, stitches, and objects. | |blf| Designer's Gallery Embroidery | |N| BLF files are used by Designer's Gallery software to store embroidery designs | |cop| Husqvarna embroidery | |N| COP files are used by Husqvarna embroidery machines to store design information | |csd| Singer Embroidery | |N| CSD files are used by Singer embroidery machines and software to store design information | +|dem| | |N|  | |dhv| Husqvarna embroidery | |N| DHV files are used by Husqvarna embroidery machines to store design information | -|dst| Tajima embroidery | 5 |Y| DST files are an old file format that most embroidery machines can read. They are even less complex than machine files and don’t contain thread color information | +|dsb| Tajima/Barudan embroidery | 1 |N| DSB files are an newer file format. +|dst| Tajima/Barudan embroidery | 5 |Y| DST files are an old file format that most embroidery machines can read. They are even less complex than machine files and don’t contain thread color information | |dsz| ZSK USA Embroidery | |N| DSZ files are used by ZSK embroidery machines to store design information. | -|exp| Melco Expanded embroidery | |N| EXP files are used by Melco embroidery machines and software to store design information | +|dxf| | NMeF|N|  | +|edr| Embird | |N| low | |emb| Wilcom embroidery, NMeF | |N| EMB files are native to Wilcom embroidery software and contain information about colors, stitches, and objects | |emd| Elna Embroidery | |N| EMD files are used by Elna embroidery machines and software to store design information | +|exp| Melco Expanded embroidery | 5|N| EXP files are used by Melco embroidery machines and software to store design information | |gnc| Great Notions Embroidery | |N| GNC files are used by Great Notions embroidery software to store design information | |gpf| Gunold Pfaff Embroidery | |N| GPF files are used by Gunold Pfaff embroidery software to store design information | |hqf| Handi Quilter | |N| HQF files are used by Handi Quilter machines and software to store quilting patterns | |hus| Husqvarna, Viking embroidery |4|Y| HUS files are used by Husqvarna and Viking embroidery machines and software to store design information | -|jef| Janome embroidery | 1 |Y| JEF files are used by Janome embroidery machines and software to store design information. Includes Hoop Information | |iqp| IntelliQuilter | |N| IQP files are used by IntelliQuilter machines and software to store quilting patterns | +|jan| Janome embroidery, NMeF| +|jef| Janome embroidery | 1 |Y| JEF files are used by Janome embroidery machines and software to store design information. Includes Hoop Information | +|jef+| Janome embroidery | 1 |N| JEF+ files are used by Janome embroidery machines and software to store design information.  | +|jpx| Janome embroidery | 1 |N| JPX files are used by Janome embroidery machines and software to store design information.  | |ksm| Pfaff Embroidery | |N| KSM files are used by Pfaff embroidery machines and software to store design information | |ldf| Lectra Embroidery | |N| LDF files are used by Lectra embroidery software to store design information | |max| Pfaff Embroidery | |N| MAX files are used by Pfaff embroidery machines and software to store design information | +|mhv| Husqvarna Viking Embroidery| |N| MHV Husqvarna Viking Embroidery | +|pcm| | |N|  | |pcs| Pfaff embroidery | 1 |Y| PCS files are used by Pfaff embroidery machines and software to store design information. Includes Hoop Information | +|pec| | |N|  | |pec| Brother, Babylock, Bernina embroidery | 3 |Y| PEC files are used by Brother, Babylock, and Bernina embroidery machines and software to store design information | -|pes| Brother, Babylock, Bernina embroidery | 3 |Y| PES files are used by Brother, Babylock, and Bernina embroidery machines and software to store design information. Includes Hoop Information | +|pes| Brother, Babylock, Bernina embroidery | 1 |Y| PES files are used by Brother, Babylock, and Bernina embroidery machines and software to store design information. Includes Hoop Information | +|phc| | |N|  | +|phc| Brother | 3 |N| PEC files are used by Brother embroidery machines and software to store design information | +|pxf| | |N|  | +|pxf| | |N|  | |qcc| QuiltCAD | |N| QCC files are used by QuiltCAD software to store quilting patterns | |sew| Janome embroidery |1| Y| SEW files are used by Janome embroidery machines and software to store design information | |shv| Husqvarna embroidery | |N| SHV files are used by Husqvarna embroidery machines and software to store design information | |ssd| Sunstar Embroidery | |N| SSD files are used by Sunstar embroidery machines and software to store design information | -|stx| Data Stitch Embroidery | |N| STX files are used by Data Stitch embroidery software to store design information | |sst| Sunstar Embroidery | |N| SST files are used by Sunstar embroidery machines and software to store design information | -|vip| Husqvarna, Viking, Pfaff embroidery |3|Y| VIP files are used by Husqvarna, Viking, and Pfaff embroidery machines and software to store design information. Newer version of HUS | +|stx| Data Stitch Embroidery | |N| STX files are used by Data Stitch embroidery software to store design information | +|svg| | NMeF |N|  | +|vip| Husqvarna, Viking, Pfaff embroidery |4|n| VIP files are used by Husqvarna, Viking, and Pfaff embroidery machines and software to store design information. Newer version of HUS | |vp3| Pfaff Embroidery |2|Y| VP3 files are used by Pfaff embroidery machines and software to store design information. Includes Hoop Information and thread colors, thread vendors | |vp4| Pfaff Embroidery |1|Y| VP4 files are used by Pfaff embroidery machines and software to store design information | |xxx| Singer Compucon PSW embroidery|4|Y| XXX files are used by Singer Compucon PSW embroidery machines and software to store design information | |zsk| ZSK USA Embroidery | |N| ZSK files are used by ZSK embroidery machines to store design information | -|10o| Toyota embroidery |1|N| 10O files are used by Toyota embroidery machines to store design information | -|mhv| Husqvarna Viking Embroidery| |N| MHV Husqvarna Viking Embroidery | -|pxf| | |N| | -|svg| | NMeF |N| | -|dxf| | NMeF|N| | -|pec| | |N| | -|pcm| | |N| | -|pxf| | |N| | -|dem| | |N| | -|phc| | |N| | -|jan| Janome embroidery, NMeF| + - 'Preview' with MySewnet Explorer Plug-in - 'Preferred' lower preferred number is a better format - 'NMeF' - Non-Machine embroidery Format - include much more detail and the orginal picture - See https://romneyridgefarm.com/embroidery-machine-file-formats/ + +# Machines +|Make | Model | Format/Transfer Systems/Software |Limitations & Sewing Areas| +| --- | --- | --- | --- | +Babylock| Accent / BL60E|    .PES on a Babylock/Bernina/Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 4.33" high x 4.33" wide (110mm x 110mm), maximum size. Requires designs with more than 50,000 stitches to split into two files. +Babylock| Ellageo 3| .PES, .DST, .PEC on a Babylock/Bernina/Brother compatible design card, Palette Software, floppy disk drive, Ultimate Box Plus or Ultimate Box 2, card 1| 6.25" high x 10.25" wide (159mm x 260mm), maximum size. +Babylock|Ellegante| .PES on a Babylock/Bernina/Brother compatible design card, PC Connection, optional USB floppy or USB flash card, Ultimate Box Plus or Ultimate Box 2, card 1| 7.00" high x 11.75" wide (largest hoop), maximum size. +Babylock| Ellure|    .PES on a Babylock/Bernina/Brother compatible design card, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1| 5.00" high x 6.97" wide, maximum size. Requires designs with more than 50,000 stitches to split into two files. +Babylock| EMP6|  .PES, .PEC, .DST, .PHC on regular computer floppy disk, Flash Memory card, Babylock/Bernina/Brother compatible design card, USB port to computer, Ultimate Box Plus or Ultimate Box 2, card 1| 7" high x 11.75" wide (largest hoop), maximum size. +Babylock| Esante|    .PES, .PEC on a Babylock/Bernina/Brother compatible design card, Palette Software, Ultimate Box Plus or Ultimate Box 2, card 1| 5.00" high x 6.97" wide, maximum size. Requires designs with more than 50,000 stitches to split into two files. +Babylock| Espree (similar to Brother 150)|   .PES on a Babylock/Bernina/Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 4" high x 4" wide (100mm x 100mm), maximum size. Requires designs with more than 50,000 stitches to split into two files. +Barudan||    .DST on regular computer floppy disk    Earlier Barudans may require .FMC on FMC compatible floppy disk, or even paper tape or cassette format. +Bernita| 535| .EXP, .DST, .PES, .PEC, .JEF, .PCS, .SEW, .XXX +Bernina| 770 QE| .dst, .exp, .jef, .pcs, .pec, .pes, .sew, .xxx| +Bernina| Artista 165E (Heritage Edition)|    .ART on Babylock/Bernina/Brother compatible design card, Computer cable transfer (ARTlink software)| 6" high x 8" wide (155mm x 200mm), maximum size. +Bernina|Artista 170E / 180E|    .ART on Babylock/Bernina/Brother compatible design card or by computer cable transfer.| 7.90" high x 6.10" wide, maximum size. +Bernina| Artista 185 QEE|    .ART on Babylock/Bernina/Brother compatible design card or Editor software| 5.70" high x 10" wide (145mm x 255mm), maximum size. +Bernina| Artista 200E|   .ART on Babylock/Bernina/Brother compatible design card, computer cable transfer, Ultimate Box 2, card 3.| 7.90" high x 6.10" wide, maximum size. +Bernina| Artista 430E / 440 QEE| .ART, .PES, .HUS, .PCS Bernina compatible reader/writer, Editor Lite or CD-Rom by computer cable transfer.| 5.70" high x 10" wide (145mm x 255mm), maximum size. +Bernina| Artista 630E / 640E|    .EXP USB connection, Bernina USB Stick or Bernina Personal Design Stick or Editor Lite| 5.70" high x 10" wide (145mm x 255mm), maximum size. +Bernina| Artista 730E|   .EXP, .ART USB connection, Bernina USB Stick or Bernina Personal Design Stick or Editor Lite| 5.70" high x 10" wide (145mm x 255mm), maximum size. +Bernina| Deco 330|   .PES, .ART, .EXP Reader/writer software, Magic Box and Blue #2 Card, Ultimate Box, card 3| 5.50" high x 7.90" wide, maximum size. +Bernina| Deco 500|   .PES on Babylock/Bernina/Brother compatible design card, Deco Wizard, Amazing Box, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1| 3.74" high x 3.74" wide, maximum size. +Bernina| Deco 600|   .PES on Babylock/Bernina/Brother compatible design card, Deco Wizard, Amazing Box, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1| 3.94" high x 3.94" wide, maximum size. +Bernina| Deco 650|   .PES on Babylock/Bernina/Brother compatible design card, Deco Wizard, Amazing Box, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1| 4.94" high x 4.94" wide, maximum size. +Brother| (commercial models)|    .DST on regular computer floppy disk     +Brother| Innovis 1000|   .PES on Brother compatible design card, PE Design card, Ultimate Box Plus or Ultimate Box 2, card 1.| 4" high x 7.50" wide (103mm x 190mm), maximum size. +Brother| Innovis 1500D|  .PES on Brother compatible design card, PE Design card, USB port, Ultimate Box Plus or Ultimate Box 2, card 1.| 6.25" high x 10.25" wide (160mm x 260mm), maximum size. +Brother| Innovis 2500D|  .PES on Brother compatible design card, PE Design card, USB port, Ultimate Box Plus or Ultimate Box 2, card 1.| 6" high x 10" wide (120mm x 210mm), maximum size. +Brother| Innovis 4000D|  .PES on Brother compatible design card, PE Design card, Dual USB port, Ultimate Box Plus or Ultimate Box 2, card 1.| 7" high x 12" wide, maximum size. +Brother| PC 6500|    .PES on Brother compatible design card, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1| 5.10" high x 7.10" wide (130mm x 180mm), maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PC 7500|    .PES on Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1.| 5.00" high x 7.00" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PC 8200 / 8500| .PES Reader/writer box, PE Design card, Ultimate Box Plus or Ultimate Box 2, card 1| 5.00" high x 7.00" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PE 100 / 150 / 200| .PES on Brother compatible design card, Magic Box, Ultimate Box Plus or Ultimate Box 2, card 1.| 3.94" high x 3.94" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PE 170D / 270D / 400D|  .PES on Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 4" high x 4" wide (100mm x 100mm), maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PE 180D|.PES, .PEC on Brother compatible design card, PE Design, Ultimate Box Plus or Ultimate Box 2, card 1.| 4.25" high x 4.25" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PE 700| .PES on Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 5" high x 7" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| PR 600C / 600 II|   .PES on Brother compatible design card, floppy disk, CD-Rom, flash card, Ultimate Box Plus or Ultimate Box 2, card 1| 12" high x 8" wide, maximum size. +Brother| SE-400 Enthusiast|  .PES, .DST using a USB cable with one side Type A and the other Type B, Ultimate Box Basic or Ultimate Box Plus, card 1 | 3.94" high x 3.94" wide, maximum size. +Brother| SE625| .PES | 100mm (3.94") x 100mm (3.94") +Brother| SE630| .PES | 101mm (3.98") x 101mm (3.98") +Brother| Ultima 2002|    .PES, .PHC, .DST on floppy disk or Brother compatible design card, PE Design card Ultimate Box Plus or Ultimate Box 2, icard 1  | 10.25" high x 6.25" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Brother| Ultra 2001 / 2003D| .PES on floppy disk or Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1.| 10.25" high x 6.25" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Elna| Envision 8006| .SEW on Janome compatible design card, Magic Box| 3.50" high x 4.80" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Elna| Envision 8007| .SEW on Janome compatible design card, Magic Box, Dream Vision| 3.54" high x 5" wide (90mm x 127mm), maximum size. Requires designs with more than 12 color stops to split into two files. +Elna| Envision 9006| .SEW on Janome compatible design card, Magic Box| 2.75" high x 4.80" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Elna| Envision CE20| .SEW on Janome compatible design card, Magic Box, Dream Vision| 3.5" high x 4.90" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Elna| Xplore 8600 / Xperience 8200|  .JEF ATA card (smart/flash card).| 5.51" high x 7.87" wide (140mm x 200mm), maximum size. +Elna| Xquisit II|    .ESE (a sizable format) on Janome Xquisit compatible design card, serial port to computer, Xpressive Software to read and write multiple formats including .SEW and .JEF.| 5.51" high x 9.45" wide (140mm x 240mm), maximum size. +Elna| Xquisit|   .EMD Smart Media card and PC hookup, Xpress Way Box, Xpressive Software to read and write multiple formats including .SEW| 6" high x 10" wide, maximum size. +Happy||  .DST on regular computer floppy disk    | Earlier models may require paper tape or cassette format. +Husqvarna| Viking 1+ / Rose / Iris|  .HUS file on Husqvarna compatible design card, Customizer, Ultimate Box Plus or Ultimate Box 2, card 1| 3.94" high x 3.94" wide, maximum size. +Husqvarna| Viking Brother White 3300|    .PES file on Memory card, Ultimate Box Plus or Ultimate Box 2, card 1| 3.94" high x 3.95" wide +Husqvarna| Viking Brother White 4400|    .DST file on Embroidery card, USB cable or PC cable| 4" high x 4" wide +Husqvarna| Viking Designer 1|    .SHV file on Designer 1 compatible floppy disk, Customizing Plus (This format is not Downloadable)| 6.89" high x 8.9" wide (Customizer requires a 6.2" x 8.5" sewing area. If sizing, size to 5% less), maximum size. +Husqvarna| Viking Designer 2|    .HUS file on Husqvarna Viking D-Card.| 6" x 14.2" (largest hoop) +Husqvarna| Viking Designer SE|   .HUS, .SHV, .DHV, .VIP, .VP3, .PES, .PCS, .JEF, .SEW, .XXX, .DST, .EXP USB Cable, USB embroidery stick or optional CD or floppy disk drives.| 5" high x 7" wide (w/Husqvarna/Viking updates) +Husqvarna| Viking Designer Topaz 50|  .SHV, .SH7 .DHV, .VP3, .VIP, .HUS, .PEC, .PES, .XXX, .SEW, .JEF, .EXP, .10*, .DST .VF3 USB stick | 360x200mm (14¼" x 8") +Husqvarna| Viking Platinum 950E| .VIP file on Embroidery d-card, reader/writer.| 9" high x 6" wide, maximum size. +Husqvarna| Viking Scandinavia 300 / 400| .HUS file on Husqvarna compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 4" high x 4" wide (100mm x 100mm), maximum size. +Janome |Memory Craft 10000|  .JEF on Janome compatible design card, computer cable transfer, or Compact Flash card.| 7.87" high x 5.51" wide (200mm x 140mm), maximum size. Requires designs with more than 12 color stops or 30,000 stitches to split into two files. +Janome |Memory Craft 10001|  .JEF ATA PC card (Type II flash memory card), USB port, RS232C port| 7.90" high x 5.50" wide (200mm x 140mm), maximum size. Requires designs with more than 12 color stops or 30,000 stitches to split into two files. +Janome |Memory Craft 11000|  .JEF, .JEF Plus Direct PC connection, ATA PC card (Type II flash memory card) optional CD-Rom drive, USB memory stick, wireless connection.| 8" high x 8" wide, maximum size. +Janome |Memory Craft 300E|   .JEF PC Design card, ATA PC card (Type II flash memory card) or Compact Flash card.| 7.87" high x 5.51" wide, maximum size. Requires designs with more than 12 color stops or 30,000 stitches to split into two files. +Janome |Memory Craft 5000 / 5700 / 8000| .SEW on Janome compatible design card, 8-bit cards, Magic Box.| 3.5" high x 4.90" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Janome |Memory Craft 9000|   .SEW on Janome compatible design card, Magic Box (ersonalizer or Scansoft PC).| 3.25" high x 4.75" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Janome |Memory Craft 9500|   .JEF, .SEW on Janome compatible design card, ATA PC card (Type II flash memory card), Compact flash memory card.| 7.90" high x 5.50" wide (200mm x 140mm), maximum size. Requires designs with more than 12 color stops to split into two files. +Janome |Memory Craft 9700|   .JEF Customizer 10000 Plus, ATA PC card (Type II flash memory card)| 7.90" high x 5.50" wide (200mm x 140mm), maximum size. Requires designs with more than 12 color stops to split into two files. +Kenmore| 19000 / 19001|  .SEW on Janome compatible design card, Kenmore reader/writer Software (Reader 19000) .| 3.5" high x 4.90" wide, maximum size. Requires designs with more than 12 color stops to split into two files. +Kenmore| Elite 19005|    .JEF ATA PC card (Type II flash memory card).| 4" high x 5" wide (100mm x 127mm), maximum size. Requires designs with more than 12 color stops to split into two files. +Kenmore| Elite Ergo 19010|   .JEF (or .SEW if using a card) ATA PC card, Kenmore reader/writer Software.| 4.3" high x 5" wide (109mm x 127mm), maximum size. Requires designs with more than 12 color stops to split into two files. +Melco| EP1B| .EXP on regular computer floppy disk     +Melco||  .EXP on regular computer floppy disk    | Earlier models may require paper tape or cassette format. +Pfaff| Creative 2124|    .PCS (.PCM for Pfaff Mac) Smart Card & Creative Smart Card Station II (not Ultimate Box compatible)| 5.50" high x 9.00" wide, maximum size. +Pfaff| Creative 2134|    .VIP, .VP3, Mac format Smart Card & Creative Smart Card Station II (not Ultimate Box compatible)| 6.00" high x 9.00" wide (140mm x 225mm), maximum size. +Pfaff| Creative 2140 / 2144| .PCS, .VIP, (.PCM if using Macintosh software) file on Pfaff Compatible design card, computer cable transfer, Ultimate Box 2, card 3| 5" high x 9" wide (127mm x 225mm), maximum size +Pfaff| Creative 2170|    .VIP, .VP3, Mac format file Assistant| 6" high x 9" wide (140mm x 225mm), maximum size +Pfaff| Creative 7560|    .PCS, (.PCM if using Macintosh software) file on Pfaff Compatible design card, Ultimate Box 2, card 3| 4.53" high x 4.72" wide, maximum size. Requires designs with more than 14 color stops or 14,000 stitches to split into two files. +Pfaff| Creative 7570|    .PCS, (.PCM if using Macintosh software) file on Pfaff Compatible design card (PC Designer), Ultimate Box 2, card 3| 3.94" high x 4.72" wide, maximum size. Requires designs with more than 14 color stops or 14,000 stitches to split into two files. +Pfaff| Creative Icon| .VP3, .PES, .HUS, .DST, VIP | 310mm (12.20") x 140mm (5.51") +Pfaff| Performance Icon | .VP3, .PES, .HUS, .DST, VIP | 310mm (12.20") x 140mm (5.51") +Ricoma|| .DST by ethernet or USB   +Simplicity| SE1| .PES Memory card, Ultimate Box Plus or Ultimate Box 2, card 1| 4" high x 4" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Simplicity| SE3| .PES on floppy disk or Brother compatible design card, Ultimate Box Plus or Ultimate Box 2, card 1| 3.94" high x 3.95" wide, maximum size. Requires designs with more than 120,000 stitches to split into two files. +Singer| EU / Poem / Huskygram|   .CSD file on Singer Compatible design card or Magic Box| 3.90" high x 3.90" wide, maximum size. Requires designs with more than 14 color stops to split into two files. +Singer| Futura CE 100 / 200| .CSD, .XXX, .HUS, .DST, .EXP, .PCS (accepts most popular formats USB to computer cable, floppy disk or CD, Auto-Digitizing software (Futura)| 4.50" high x 6.75" wide, maximum size. +Singer| Quantum XL-1000| .XXX, .DST, .EXP file on Singer Compatible design card, PSW package (Professional Sew Ware 2.0) or Magic Box| 5.50" high x 9.5" wide, maximum size. Requires designs with more than 15 color stops to split into two files. +Singer| Quantum XL-150|  .XXX file on Memory card.| 6" high x 10" wide, maximum size. +Singer| Quantum XL-5000| .XXX, .DST, .EXP, .PES, .PCS, .SEW, .PSW, .ZSK file on Singer Compatible design card, Smart Media Cards, PSW package| 5" high x 7" wide, maximum size. Requires designs with more than 15 color stops to split into two files. +Singer| Quantum XL-6000| .XXX file on Singer Compatible design card, Cable to computer connection| 6.50" high x 9.50" wide, maximum size. +Stellar||    .EXP on regular computer floppy disk|  Earlier models may require paper tape or cassette format. +SWF||    .DST on regular computer floppy disk    | Earlier models may require paper tape or cassette format. +Tajima|| .DST on regular computer floppy disk    | Earlier models may require paper tape or cassette format. +Toyota|| .DST on regular computer floppy disk    | Earlier models may require paper tape or cassette format. +ZSK||    .DST on regular computer floppy disk    | Earlier models may require paper tape or cassette format. + + ## Software Free Tools for converting formats: @@ -64,3 +169,7 @@ See Wikipedia: GitHub: - [Embroidermodder - Table of Formats](https://github.com/Embroidermodder/libembroidery/tree/49e48dd0d9739440faf0875deb6e9eaf71ac1d2f#table-of-format-support-levels) +https://www.embroidery.com/machine-embroidery-formats + + + diff --git a/docs/wpooho13a.zip b/docs/wpooho13a.zip new file mode 100644 index 0000000..98ef2d5 Binary files /dev/null and b/docs/wpooho13a.zip differ