Draw fill patterns - fast
Draw an grid - more efficient
Set-StrictMode -Version 2
$ErrorActionPreference = "Stop"
$numcols = [double] 6
$cellsep = [double] 1.0
$cellwidth = [double] 1.5
Stop-Process -Name "Visio" -ErrorAction Ignore
Import-Module Visio
New-VisioApplication
New-VisioDocument
$basic_u = Open-VisioDocument "basic_u.vss"
$rect_master = Get-VisioMaster "Rectangle" $basic_u
$patterns_masters = New-Object System.Collections.ArrayList
$patterns_xys = New-Object System.Collections.ArrayList
$patterns_shapecells = New-Object System.Collections.ArrayList
$d = $cellwidth + $cellsep
for ($i=0;$i -le 40;$i++)
{
$x = [double] $i % $numcols
$y = [math]::floor($i / $numcols )
$left = $x*$d
$bottom = $y*$d
$right = $left + $cellwidth
$top = $bottom + $cellwidth
$pinx = $left + ($cellwidth/2.0)
$piny = $bottom + ($cellwidth/2.0)
$patterns_masters.Add( $rect_master ) | Out-Null
$patterns_xys.Add( $pinx ) | Out-Null
$patterns_xys.Add( $piny ) | Out-Null
$shape1_cells = New-VisioShapeCells
$shape1_cells.FillForeground = "rgb(0,128,195)"
$shape1_cells.FillBackground = "rgb(255,255,255)"
$shape1_cells.FillPattern = $i
$shape1_cells.CharSize = "32pt"
$shape1_cells.LineWeight = "2pt"
$patterns_shapecells.Add( $shape1_cells ) | Out-Null
}
$patterns_shapes = New-VisioShape -Masters $patterns_masters -Points $patterns_xys
for ($i=0;$i -le 40;$i++)
{
Set-VisioText -Shapes $patterns_shapes[$i] -Text $i
}
Set-VisioShapeCells -Shapes $patterns_shapes -Cells $patterns_shapecells
Format-VisioPage -BorderWidth 1.0 -BorderHeight 1.0 -FitContents
Last updated