Kihasználhatja a Vault számozási sémák alkalmazása, ha a felhasználó létrehoz egy új adatszabványfájl.
A telepített mintában a Számozási séma legördülő lista jeleníti meg az összes aktivált számozási sémát. Az XAML-fájlban a legördülő lista egy GetNumSchms
nevű PowerShell-függvényhez van kötve.
A GetNumSchms
függvény segítségével egyszerűen szabályozhatja, hogy mely sémák jelenjenek meg a felhasználó számára.
Számozási sémák szűrése az Inventor alkalmazásban fájltípus alapján
Az Adatszabvány nélkül a felhasználó az összes aktivált Vault számozási séma közül válogathat. A GetNumSchms
következő implementációja révén különböző sémák érhetők el részegységek (IPT, IAM) és rajzok (IDW, IPN és DWG) esetén. Ahhoz, hogy a minta működjön, a „COMP” vagy „DRAWING” szavakkal kezdődő számozási sémákat meg kell határozni a Vault alkalmazásban:
C:\ProgramData\Autodesk\<Vault-verzió>\Extensions\DataStandard\CAD\addinVault\Default.ps1
...
function GetNumSchms
{
try
{
$numSchems = $vault.DocumentService.GetNumberingSchemesByType('activated')
}
catch [System.Exception]
{
#[System.Windows.MessageBox]::Show($error)
}
$filename = $Prop["DocNumber"].Value
$fileExt = [System.IO.Path]::GetExtension($filename)
$ret = @()
foreach ($item-in-$numschems)
{
if (($fileExt -eq ".iam" -or $fileExt -eq ".ipt") -and $item.Name.StartsWith("COMP"))
{
$ret += $item.Name
}
elseif (($fileExt -eq ".idw" -or $fileExt -eq ".ipn" -or $fileExt -eq ".dwg") -and $item.Name.StartsWith("DRAWING"))
{
$ret += $item.Name
}
}
return $ret
}
...
Tegyük fel, hogy rendelkezik egy számozási sémával, melynek neve TestScheme.
Szeretne egy rögzített szöveget helyezni a fájlnév elé a kiválasztott dokumentumtípus alapján:
ENG-
: Inventor-összeállítások és -alkatrészek esetén (pl. „ENG-A-00004.ipt”)ENGDOC-
: AutoCAD/Inventor-rajzok és Inventor-bemutatók esetén (pl. „ENGDOC-B-00001.idw”).OFF-
: minden egyéb fájl esetén (pl. „OFF-C-00002.docx”)Amikor az OK gombra kattint a Fájl létrehozása párbeszédpanelen („Új szabványfájl”), a rendszer behívja a GetNewFileName
PowerShell-függvényt, mielőtt hozzáadja a fájlt a Vault tárhoz. Itt lehetősége van módosítani a fájl nevét és bevonni más tulajdonságokból származó információkat.
C:\ProgramData\Autodesk\<Vault-verzió>\Extensions\DataStandard\Vault\addinVault\Default.ps1
...
function GetNewFileName
{
$prefix = ""
if($dswindow.findname("NUMSCHEME").IsEnabled -eq $false)
{
$filename = $dswindow.findname("filename").Text
}
else{
$filename = $Prop["_GeneratedNumber"].Value
if (($Prop["_FileExt"].Value -eq ".ipt") -or ($Prop["_FileExt"].Value -eq ".iam"))
{
$prefix = "ENG-"
}
elseif (($Prop["_FileExt"].Value -eq ".dwg") -or ($Prop["_FileExt"].Value -eq ".idw") -or ($Prop["_FileExt"].Value -eq ".ipn"))
{
$prefix = "ENGDOC-"
}
else
{
$prefix = "OFF-"
}
}
$newfileName = $prefix + $filename + $Prop["_FileExt"].Value
return $newfileName
}
Az Inventor és AutoCAD alkalmazásokhoz készült Adatszabvány funkció segítségével tulajdonságértékek kombinációját és egy generált számot állíthat be a fájlnevekhez.
Tegyük fel például, hogy szeretne automatikusan generált egyedi fájlneveket létrehozni a következő formátumban: N-<Cím>-####.ipt, ahol az N- mindig szerepel, a <Cím> értéke a felhasználó által bevitt Cím tulajdonság, a #### egy automatikusan generált szám, az .ipt pedig a kiterjesztés.
Ezt a <FileNameDefinition>
elem módosításával teheti meg az Inventor.cfg vagy az AutoCAD.cfg fájlokban.
C:\ProgramData\Autodesk\<Vault-verzió>\Extensions\DataStandard\CAD\Inventor.cfg
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<PathDefinition>{Workspace}\{Prop[Folder].Value}</PathDefinition>
<FileNameDefinition>N-{Prop[Title].Value}-{Prop[DocNumber].Value}</FileNameDefinition>
<PropertyDefinitions>
<PropertyDefinition PropertyName="DocNumber" DataType="Text" InitialValue="{PathAndFileNameHandler.FileName}" />
...
A DocNumber
tulajdonság tartalmazza a generált számot, mert ezt határozza meg a GeneratedNumberProperty="DocNumber"
attribútum az Inventor.xaml fájl DSNumSchemeCtrl
vezérlőjében.
Ha eltávolítja az alapértelmezett File.xaml fájlból a DSNumSchemeCtrl
vezérlőt és a NumSchms
legördülő listát, a felhasználó a továbbiakban nem választhat számozási sémát.
A GetNewFileName
alábbi mintaimplementációja a fenti „TestScheme” számozási sémát és a „Cím” paraméternél megadott értéket használja a számozási sémához.
C:\ProgramData\Autodesk\<Vault-verzió>\Extensions\DataStandard\Vault\addinVault\Default.ps1
...
function GetNewFileName
{
$numSchemes = $vault.DocumentService.GetNumberingSchemesByType([Autodesk.Connectivity.WebServices.NumSchmType]::Activated)
$testNumScheme = $numSchemes | Where-Object { $_.Name.Equals("testscheme") }
$NumGenArgs = @()
$NumGenArgs += $Prop["Title"].Value
$genNum = $vault.DocumentService.GenerateFileNumber($testnumscheme.schmid,-$numgenargs)
return $genNum + $Prop["_FileExt"].Value
}
...
Az Inventor és AutoCAD alkalmazásban a fentihez hasonló implementáció érvényes. De fájlnév visszaadása helyett aDocNumber
tulajdonságot egy generált számmal kell kitölteni. Ezt követően ez a tulajdonság használatos az aktuális fájl nevének beállításához:
C:\ProgramData\Autodesk\<Vault-verzió>\Extensions\DataStandard\CAD\addinVault\Default.ps1
...
function OnPostCloseDialog
{
if ($Prop["_CreateMode"].Value)
{
$numSchemes = $vault.DocumentService.GetNumberingSchemesByType([Autodesk.Connectivity.WebServices.NumSchmType]::Activated)
$testNumScheme = $numSchemes | Where-Object { $_.Name.Equals("testscheme") }
$NumGenArgs = @()
$NumGenArgs += $Prop["Title"].Value
$genNum = $vault.DocumentService.GenerateFileNumber($testnumscheme.schmid,-$numgenargs)
$Prop["DocNumber"].Value = $genNum
}
}
...