'******************************************************************** '******************************************************************** '**** VBSCRIPT MACRO FOR THE GENERATION OF A **** '**** HTML TOOL LIST DOCUMENTATION **** '******************************************************************** '******************************************************************** '******************************************************************** '**** Notes **** '**** **** '**** La fonction CreateHtmlFilesRoot est dependante du systeme **** '******************************************************************** Dim Language As String Language = "VBSCRIPT" '=============== USER DEFINED VARIABLES ================== '========================================================= ' Put here the path to your HTML editor '========================================================= Dim DefaultHTMLEditor As String '========================================================= ' Default tool list documentation directory '========================================================= Dim DefaultHtmlAppliName As String '============ END OF USER DEFINED VARIABLES ============== '============ SYSTEM DEPENDANT VARIABLES ================= Dim EOL As String ' Fin de ligne pour les fichiers textes Dim CRLF As String '========================================================= '====================== ' Test cession flag '====================== Dim IsaTest As Boolean Dim StdComponentsDir As String Dim DefaultDocTarget, HtmlDefaultDocDir, HtmlFilesPath, CATIAComponentPath, HtmlFilesRoot As String Dim ExistLogoDS As Boolean Dim IgnoredParameters() Dim NbIgnoredParameters As Integer Dim theLogMode as Boolean Dim theLogFile As File Dim theLogStream As TextStream Sub CATMain() '------------------------------------------------------------------ ' test Macro Atelier ' creation Juillet2000 : (kbb) ' lecture d'un modele '------------------------------------------------------------------ dim EnvVar,BidVar as String Dim AdlOdtTmp, AdlOdtTmpPath, AdlOdtOut, AdlOdtOutPath, Slash As String EnvVar = CATIA.SystemService.Environ("ADL_ODT_IN") CATIA.SystemService.Print "ADL_ODT_IN =" & EnvVar if (len(EnvVar)<10) then BidVar = EnvVar else BidVar = Mid(EnvVar,1,10) end if If (BidVar <> "ADL_ODT_IN") Then CATIA.SystemService.Print "IN MKODT" IsaTest = True '------------------------------------------------------------------ CATIA.SystemService.Print "Lire le modele" AdlOdtTmp = CATIA.SystemService.Environ("ADL_ODT_TMP") CATIA.SystemService.Print "AdlOdtTmp=" & AdlOdtTmp CATIA.SystemService.Print "Repertoire cible" AdlOdtOut = CATIA.SystemService.Environ("ADL_ODT_OUT") CATIA.SystemService.Print "AdlOdtOut=" & AdlOdtOut Slash = CATIA.SystemService.Environ("ADL_ODT_SLASH") CATIA.SystemService.Print "Slash=" & Slash AdlOdtTmpPath = AdlOdtTmp & Slash CATIA.SystemService.Print "Path=" & AdlOdtTmpPath AdlOdtOutPath = AdlOdtOut & Slash CATIA.SystemService.Print "Generation Path=" & AdlOdtOutPath '------------------------------------------------------------------ CATIA.SystemService.Print "Lire le modele" Dim Document1 As AnyObject Set Document1 = CATIA.Documents.Open(AdlOdtTmpPath & "ToolList.CATProcess") '------------------------------------------------------------------ Else IsaTest = False End If Dim aPath As String HtmlFilesRoot = CreateHtmlFilesRoot If (Not IsaTest) Then DefaultDocTarget = HtmlFilesRoot 'Pourrait etre initialise autrement DefaultHtmlAppliName = "ToolList" HtmlDefaultDocDir = DefaultDocTarget & DefaultHtmlAppliName aPath = InputBox("Tool List directory", "Define Directory", HtmlDefaultDocDir) Else aPath = AdlOdtOutPath End If If (aPath = "") Then If (Not IsaTest) Then MsgBox "Document creation canceled", 4096 Else CATIA.SystemService.Print "Document creation canceled" End If Exit Sub End If Dim RootActivityName As String RootActivityName = "Process" '========================================================= ' Default tool list documentation name '========================================================= Dim DefaultHTMLFileName As String DefaultHTMLFileName = "MfgTool-List" 'pdu*** 'on error resume next CATDocument RootActivityName, DefaultHTMLFileName, aPath If (IsaTest) Then Document1.Close CATIA.Quit End If End Sub '--------------------------------------------------------------- ' Initialisation des variables dependantes du systeme ' --------------------------------------------------- '--------------------------------------------------------------- Sub CreateSystemVariables() theLogMode = False 'Definition des parametres qui seront ignores lors de 'l'affichage du tableau d'une resource NbIgnoredParameters = 3 ReDim IgnoredParameters(NbIgnoredParameters) IgnoredParameters(1) = "MFG_CONE_DIAMETER_2" IgnoredParameters(2) = "MFG_CONE_DIAMETER_1" IgnoredParameters(3) = "MFG_CONE_LENGTH" On Error Resume Next EOL = Chr(10) CRLF = Chr(13) & Chr(10) StdComponentsDir = "Images" ExistLogoDS = False DefaultHTMLEditor = "IEXPLORE.EXE" On Error GoTo 0 'pdu*** End Sub '--------------------------------------------------------------- ' Initialisation de la variable HtmlFilesRoot ' ------------------------------------------- '--------------------------------------------------------------- Function CreateHtmlFilesRoot() Dim result As String result = GetPath("CATStartupPath", "Manufacturing") If (result = "") Then result = GetPath("TEMP", "") If (result <> "") Then If (Mid(result, Len(result), 1) <> "\" And Mid(result, Len(result), 1) <> "/") Then result = result & "/" End If CreateHtmlFilesRoot = result End Function '------------------------------------------------------- ' Ecriture d'une dans un CATIATextStrean '------------------------------------------------------- Sub WriteLine(aTextStream, aLine) aTextStream.Write aLine & EOL End Sub ' ------------------------------------------------------ ' Correspondance Parameter -> valeur NLS ' ------------------------------------------------------ Function ToNLS(anObj, aParameterName) Dim erreur as Integer Dim NLSresult As String On Error Resume Next NLSresult = anObj.GetAttributeNLSName(aParameterName) erreur = Err.Number Err.Clear If (erreur <> 0 Or NLSresult = "") Then NLSresult = aParameterName On Error GoTo 0 ToNLS = NLSresult End Function ' ------------------------------------------------------ ' Copie d'un fichier ' Retourne : 0 -> pas d'erreur ' 1 -> source absent ' 2 -> destination existe et overwrite=False ' 3 -> autre erreur ' ------------------------------------------------------ Function FileCopy(source, destination, overwrite) Dim ReturnedVal As Integer Dim fso As FileSystem Set fso = CATIA.FileSystem If (Not (fso.FileExists(source))) Then ReturnedVal = 1 Else If (fso.FileExists(destination) And (Not overwrite)) Then ReturnedVal = 2 Else On Error Resume Next fso.CopyFile source, destination, overwrite Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur <> 0) Then ReturnedVal = 3 On Error GoTo 0 End If End If FileCopy = ReturnedVal End Function '-------------------------------------------------------------------- ' Main Procedure '-------------------------------------------------------------------- Sub CATDocument(RootActivityName, HtmlFilesName, FilesPath) dim EnvVar,BidVar as String EnvVar = CATIA.SystemService.Environ("ADL_ODT_IN") CATIA.SystemService.Print "ADL_ODT_IN =" & EnvVar if (len(EnvVar)<10) then BidVar = EnvVar else BidVar = Mid(EnvVar,1,10) end if IsaTest = (BidVar <> "ADL_ODT_IN") CreateSystemVariables HtmlFilesPath = FilesPath Dim L As Integer L = Len(HtmlFilesPath) If (Mid(HtmlFilesPath, L, 1) <> "\" And Mid(HtmlFilesPath, L, 1) <> "/") Then HtmlFilesPath = HtmlFilesPath & "/" HtmlFilesPath = HtmlFilesPath & HtmlFilesName L = Len(HtmlFilesPath) If (Mid(HtmlFilesPath, L, 1) = "\" Or Mid(HtmlFilesPath, L, 1) = "/") Then HtmlFilesPath = Mid(HtmlFilesPath, 1, L - 1) Dim fso As FileSystem Set fso = CATIA.FileSystem If (fso.FolderExists(HtmlFilesPath)) Then If (Not IsaTest) Then Dim repcont As Boolean repcont = ContinueIfExistingFolder(HtmlFilesPath) If (Not repcont) Then MsgBox "Document creation canceled", 4096 '(vbSystemModal) On Error GoTo 0 Err.Raise 1 End If Else Dim deldir As Integer deldir = RemoveDirectory(HtmlFilesPath) End If End If On Error Resume Next If (Not fso.FolderExists(HtmlFilesPath)) Then Dim CreatedFolder As Folder Set CreatedFolder = fso.CreateFolder(HtmlFilesPath) Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur <> 0) Then If (Not IsaTest) Then MsgBox HtmlFilesPath & CRLF & CRLF & "Error creating folder", 4144 Else CATIA.SystemService.Print HtmlFilesPath & " : Error creating folder" End If Err.Raise erreur End If End If On Error GoTo 0 HtmlFilesPath = HtmlFilesPath & "/" OpenLogFile Dim OutIndex As String OutIndex = HtmlFilesName & ".html" CATIAComponentPath = CreateHtmlFilesRoot & StdComponentsDir & "/" CreateHtmlFile OutIndex Dim OpenDocNow As Integer Dim EndOfGenerationTxt As String CloseLogFile If (Not IsaTest) Then EndOfGenerationTxt = "Tool List : " & OutIndex & CRLF & "Created In " & HtmlFilesPath & CRLF & "Open the document now?" OpenDocNow = MsgBox(EndOfGenerationTxt, 4100) If (OpenDocNow = 6) Then Dim CmdLine As String CmdLine = DefaultHTMLEditor & " " & HtmlFilesPath & OutIndex Dim aCmdResult As Long On Error Resume Next aCmdResult = CATIA.SystemService.ExecuteBackgroundProcessus(CmdLine) Dim cmderreur As Integer cmderreur = Err.Number Err.Clear If (cmderreur <> 0) Then MsgBox "Error while opening HTML editor", 4096 On Error GoTo 0 End If Else CATIA.SystemService.Print "Tool List : " & OutIndex & " " & "Created In " & HtmlFilesPath End If End Sub '--------------------------------------------------------------- ' Creation de la liste de tous les outils '--------------------------------------------------------------- Sub CreateHtmlFile(OutIndex) Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem Dim theHTMLFile As File Dim aTextStream As TextStream UpdateLogFile "Tool list documentation file : " & HtmlFilesPath & OutIndex Set theHTMLFile = aFileSyst.CreateFile(HtmlFilesPath & OutIndex, True) Set aTextStream = theHTMLFile.OpenAsTextStream("ForWriting") '--------------------------------------------------------------- ' Retrieve the active document '--------------------------------------------------------------- Dim MfgDoc1 As Document Set MfgDoc1 = CATIA.ActiveDocument WriteLine aTextStream, "<html>" WriteLine aTextStream, "<head>" WriteLine aTextStream, " <title>Tools List Documentation</title>" WriteLine aTextStream, "</head>" WriteLine aTextStream, "<body>" WriteLine aTextStream, "<table CELLSPACING=0 CELLPADDING=5>" WriteLine aTextStream, "<tr>" rep = FileCopy(CATIAComponentPath & "navlogocat.gif", HtmlFilesPath & "navlogocat.gif", True) If (rep = 0) Then WriteLine aTextStream, "<td><img SRC=""navlogocat.gif"" BORDER=0></td>" ExistLogoDS = True End If WriteLine aTextStream, "<td BGCOLOR=""#000099""><b><font color=""#FFFFFF"" size=+2>" WriteLine aTextStream, "TOOL LIST" WriteLine aTextStream, "</font></b></td>" WriteLine aTextStream, "</tr>" WriteLine aTextStream, "<tr>" If (rep = 0) Then WriteLine aTextStream, "<td></td>" WriteLine aTextStream, "<td><b><font color=""#000099"" size=+3>" & MfgDoc1.Name & "</font></b></td>" WriteLine aTextStream, "</tr>" WriteLine aTextStream, "</table>" WriteLine aTextStream, "<br>" WriteLine aTextStream, "<i><p>Generation : " & Date & " at " & Time & "</i></p>" Dim ProgramList As MfgActivities Dim ActivityList As MfgActivities Dim NumberOfProgram As Integer Dim NumberOfActivity As Integer Dim i As Integer Dim J As Integer Dim K As Integer Dim ActivityName As String Dim CurrentSetup As Activity Dim CurrentProgram As ManufacturingActivity Dim CurrentActivity As ManufacturingActivity Dim CurrentTool As ManufacturingTool Dim CurrentAssembly As ManufacturingToolAssembly Dim AssemblyNumber as Integer Dim ActivityType As String Dim childs As Activities Dim quantity As Integer Dim aProcess As AnyObject Dim ToolNumber As Integer Dim ToolName As String Dim erreur As Integer '--------------------------------------------------------------- ' Retrieve the current Process '--------------------------------------------------------------- Set aProcess = MfgDoc1.GetItem("Process") '--------------------------------------------------------------- ' Scan the Process and print tools '--------------------------------------------------------------- quantity = 0 If (aProcess.IsSubTypeOf("PhysicalActivity")) Then Set childs = aProcess.ChildrenActivities quantity = childs.Count If quantity <= 0 Then Exit Sub End If Dim TabTool() Dim TabToolName() Dim TabToolStatus() 'outil utilise ou non dans un assembly Dim MaxToolNb As Integer MaxToolNb = 32 ReDim TabTool(MaxToolNb) ReDim TabToolName(MaxToolNb) Dim TabAssembly() Dim TabAssemblyName() Dim MaxAssemblyNb As Integer MaxAssemblyNb = 32 ReDim TabAssembly(MaxToolNb) ReDim TabAssemblyName(MaxToolNb) WriteLine aTextStream, "<font size=+1><a href=""#ProcessList"">Process List...</a></font></p>" WriteLine aTextStream, "<a href=""#ToolList"">" For i = 1 To quantity Set CurrentSetup = childs.Item(i) If (CurrentSetup.IsSubTypeOf("ManufacturingSetup")) Then '--------------------------------------------------------------- ' Read the Programs of the current Setup '--------------------------------------------------------------- Set ProgramList = CurrentSetup.Programs NumberOfProgram = ProgramList.Count For J = 1 To NumberOfProgram Set CurrentProgram = ProgramList.GetElement(J) '--------------------------------------------------------------- ' Read the Activities of the current Program '--------------------------------------------------------------- Set ActivityList = CurrentProgram.Activities NumberOfActivity = ActivityList.Count For K = 1 To NumberOfActivity Set CurrentActivity = ActivityList.GetElement(K) ActivityName = CurrentActivity.Name ActivityType = CurrentActivity.Type '--------------------------------------------------------------- ' Read the Activity Type ' If the Activity is a tool Change -> Add to the document '--------------------------------------------------------------- UpdateLogFile "Activity : " & ActivityName & EOL & "Type : " & ActivityType If (ActivityType = "ToolChange" Or ActivityType = "ToolChangeLathe") Then 'Traitement si presence d'un tool assembly 'On procede comme pour l'outil On Error Resume Next set CurrentAssembly = NOTHING AssemblyNumber = -1 Err.Clear Set CurrentAssembly = CurrentActivity.ToolAssembly AssemblyNumber = CurrentAssembly.Number erreur = Err.Number Err.Clear If (erreur = 0) Then Dim Attribut As Parameter Set Attribut = CurrentAssembly.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then AssemblyName = Attribut.Value If (AssemblyNumber > MaxAssemblyNb) Then MaxAssemblyNb = AssemblyNumber ReDim Preserve TabAssembly(MaxAssemblyNb) ReDim Preserve TabAssemblyName(MaxAssemblyNb) Set TabAssembly(AssemblyNumber) = CurrentAssembly TabAssemblyName(AssemblyNumber) = AssemblyName Else If (TabAssemblyName(AssemblyNumber) <> AssemblyName) Then Set TabAssembly(AssemblyNumber) = CurrentAssembly TabAssemblyName(AssemblyNumber) = AssemblyName End If End If Else UpdateLogFile "No assembly (erreur=" & erreur & ")" End If Set CurrentTool = CurrentActivity.Tool ToolNumber = CurrentTool.Number ToolName = CurrentTool.Name If (ToolNumber > MaxToolNb) Then MaxToolNb = ToolNumber ReDim Preserve TabTool(MaxToolNb) ReDim Preserve TabToolName(MaxToolNb) Set TabTool(ToolNumber) = CurrentTool TabToolName(ToolNumber) = ToolName Else If (TabToolName(ToolNumber) <> ToolName) Then Set TabTool(ToolNumber) = CurrentTool TabToolName(ToolNumber) = ToolName End If End If End If Next Next End If Next UpdateLogFile "Nombre d'assemblies : " & MaxAssemblyNb UpdateLogFile "Nombre d'outils : " & MaxToolNb ReDim TabToolStatus(MaxToolNb) For i = 0 To MaxToolNb TabToolStatus(i) = 0 Next 'Ajout des tool-assembly dans le document For i = 0 To MaxAssemblyNb If (TabAssemblyName(i) <> "") Then Dim anAssembly As ManufacturingToolAssembly Set anAssembly = TabAssembly(i) WriteAssembly anAssembly, aTextStream CreateOneAssemblySheet anAssembly, MfgDoc1.Name Dim UsedTool As ManufacturingTool Set UsedTool = anAssembly.Tool UsedToolNb = UsedTool.Number TabToolStatus(UsedToolNb) = 1 End If Next 'Ajout des outils dans le document For i = 0 To MaxToolNb If (TabToolName(i) <> "") Then Dim aTool As ManufacturingTool Set aTool = TabTool(i) Dim aToolNb As Integer aToolNb = aTool.Number If (TabToolStatus(aToolNb) = 0) Then WriteTool aTool, aTextStream CreateOneToolSheet aTool, MfgDoc1.Name End If End If Next WriteLine aTextStream, "<p><hr></p>" '--------------------------------------------------------------- ' List of involved part operations, programs and cycles '--------------------------------------------------------------- WriteLine aTextStream, "<p><a NAME=""ProcessList""></a>" WriteProcessStructure aProcess, aTextStream End If WriteLine aTextStream, "</body>" WriteLine aTextStream, "</html>" aTextStream.Close Set theHTMLFile = Nothing Set aTextStream = Nothing UpdateLogFile "End of creation." End Sub '--------------------------------------------------------------- ' Ajout d'un outil dans la liste '--------------------------------------------------------------- Sub WriteTool(aTool, aStream) Dim ToolNumber As Variant Dim ToolName, ToolType As String ToolNumber = aTool.Number ToolName = aTool.Name ToolType = aTool.ToolType WriteLine aStream, "<a NAME=""T" & ToolNumber & """></a>" WriteLine aStream, "<center><table BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH=""80%"">" WriteLine aStream, "<tr VALIGN=""MIDDLE"">" WriteLine aStream, "<td WIDTH=""50%"" BGCOLOR=""#C6C6FF""><b><font size=+1><a href=""Tool" & ToolNumber & ".html"">Tool " & ToolNumber & " : " & ToolName & "</a></font></b></td>" Dim ImgName As String ImgName = GetToolImage(aTool, True) If (ImgName <> "") Then WriteLine aStream, "<td ALIGN=""CENTER"" WIDTH=""100"">" WriteLine aStream, "<img SRC=""" & ImgName & """>" WriteLine aStream, "</td>" End If WriteLine aStream, "<td>" WriteLine aStream, "Type : " & ToNLS(aTool, ToolType) & "<br>" Dim DiameterId As String If (ToolType = "MfgAPTTool") Then DiameterId = "MFG_APT_DIAMETER" Else DiameterId = "MFG_NOMINAL_DIAM" End If On Error Resume Next Set DiameterAttribut = aTool.getAttribute(DiameterId) Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur = 0) Then ToolDiameter = DiameterAttribut.Value erreur = Err.Number Err.Clear If (erreur = 0) Then WriteLine aStream, "Diameter : " & ToolDiameter End If End If On Error GoTo 0 WriteLine aStream, "</td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" WriteLine aStream, "<br>" End Sub '--------------------------------------------------------------- ' Liste des activites utilisant les outils (scan du process) '--------------------------------------------------------------- Sub WriteProcessStructure(aProcess, aStream) Dim erreur as Integer Dim ProcessActivities As Activities Dim anActivity As Activity Dim CurrentSetup As ManufacturingActivity Dim SetupName As String Dim ProgramList As MfgActivities Dim CurrentProgram As ManufacturingActivity Dim ProgramName As String Dim ActivityType As String Dim anInsert As ManufacturingInsert Dim InsertName As String Dim AssemblyName As String If (aProcess.IsSubTypeOf("PhysicalActivity")) Then Set ProcessActivities = aProcess.ChildrenActivities quantity = ProcessActivities.Count If (quantity <= 0) Then Exit Sub End If WriteLine aStream, "<p><b><font size=+1>Process List :</font></b>" WriteLine aStream, "<ul>" 'liste des P.O. For i = 1 To quantity Set anActivity = ProcessActivities.Item(i) If (anActivity.IsSubTypeOf("ManufacturingSetup")) Then SetupName = anActivity.Name Set ProgramList = anActivity.Programs NumberOfProgram = ProgramList.Count If (NumberOfProgram <= 0) Then Exit Sub End If WriteLine aStream, "<p><li>Part Operation : <b>" & SetupName & "</b></li></p>" WriteLine aStream, "<ul>" 'liste des programmes For J = 1 To NumberOfProgram Set CurrentProgram = ProgramList.GetElement(J) ProgramName = CurrentProgram.Name WriteLine aStream, "<p><li>Program : <b>" & ProgramName & "</b></li></p>" Set ProgActivityList = CurrentProgram.Activities NumberOfActivity = ProgActivityList.Count WriteLine aStream, "<ul>" 'liste des cycles For K = 1 To NumberOfActivity Set CurrentActivity = ProgActivityList.GetElement(K) ActivityName = CurrentActivity.Name ActivityType = CurrentActivity.Type If (ActivityType = "ToolChange" Or ActivityType = "ToolChangeLathe") Then Dim Attribut As Parameter Dim CurrentTool As ManufacturingTool Dim ToolName As String Dim ToolNumber As Integer Dim CurrentAssembly As ManufacturingToolAssembly Dim AssemblyNumber As Integer Set CurrentTool = CurrentActivity.Tool ToolNumber = CurrentTool.Number ToolName = CurrentTool.Name InsertName = "" AssemblyName = "" On Error Resume Next set CurrentAssembly = NOTHING AssemblyNumber = 0 Set CurrentAssembly = CurrentActivity.ToolAssembly AssemblyNumber = CurrentAssembly.Number erreur = Err.Number Err.Clear If (erreur = 0) Then Dim AssemblyType As String AssemblyNumber = CurrentAssembly.Number Set Attribut = CurrentAssembly.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then AssemblyName = Attribut.Value AssemblyType = CurrentAssembly.AssemblyType If (AssemblyType = "MfgLatheToolAssembly") Then Set anInsert = CurrentAssembly.Insert Set Attribut = anInsert.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then InsertName = Attribut.Value End If End If Dim ActivityLine As String ActivityLine = "<li>" & ActivityName & " (" & ToNLS(CurrentActivity, ActivityType) & " : " If (AssemblyName <> "") Then ActivityLine = ActivityLine & "<a href=""Assembly" & AssemblyNumber & ".html"">" & AssemblyName & "</a> , " ActivityLine = ActivityLine & "<a href=""Assembly" & AssemblyNumber & ".html#Tool"">" & ToolName & "</a>" If (InsertName <> "") Then ActivityLine = ActivityLine & " , <a href=""Assembly" & AssemblyNumber & ".html#Insert"">" & InsertName & "</a>" Else ActivityLine = ActivityLine & "<a href=""Tool" & ToolNumber & ".html"">" & ToolName & "</a>" End If ActivityLine = ActivityLine & ")</li>" WriteLine aStream, ActivityLine Else WriteLine aStream, "<li>" & ActivityName & " (" & ToNLS(CurrentActivity, ActivityType) & ")</li>" End If Next WriteLine aStream, "</ul>" 'liste des cycles Next WriteLine aStream, "</ul>" 'liste des programmes WriteLine aStream, "<br>" End If Next WriteLine aStream, "</ul>" 'liste des P.O. End If End Sub ' -------------------------- ' Creation d'une fiche outil ' -------------------------- Sub CreateOneToolSheet(aTool, aProcessName) Dim Attribut as Parameter Dim ToolNumber As Variant Dim ToolName, ToolType, ToolComment As String Dim ToolDiameter, ToolCornerRadius, ToolTotalLength, ToolCuttingLength, ToolLength, ToolBodyDiameter As Variant ToolType = aTool.ToolType ToolNumber = aTool.Number On Error Resume Next Set Attribut = aTool.getAttribute("MFG_NAME") Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur = 0) Then ToolName = Attribut.Value Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem Dim theToolFile As File Dim aStream As TextStream Dim FileName As String FileName = "Tool" & ToolNumber & ".html" Set theHTMLFile = aFileSyst.CreateFile(HtmlFilesPath & FileName, True) Set aStream = theHTMLFile.OpenAsTextStream("ForWriting") 'Debut de la page WriteLine aStream, "<html>" WriteLine aStream, "<head>" WriteLine aStream, "<title>Tool " & ToolNumber & " : " & ToolName & "</title>" WriteLine aStream, "</head>" 'Ecriture de l'entete WriteLine aStream, "<table CELLSPACING=0 CELLPADDING=5><tr>" If (ExistLogoDS) Then WriteLine aStream, "<td ALIGN=CENTER><img SRC=""navlogocat.gif"" BORDER=0></td>" End If WriteLine aStream, "<td BGCOLOR=""#000099"">" WriteLine aStream, "<b><font color=""#FFFFFF"" size=+2>" WriteLine aStream, "TOOL LIST<br>" WriteLine aStream, aProcessName WriteLine aStream, "</font></b></td>" WriteLine aStream, "</tr></table>" WriteLine aStream, "<br><br>" WriteLine aStream, "<table BORDER=0 CELLSPACING=0 CELLPADDING=5 WIDTH=""100%"" BGCOLOR=""#3366FF"">" WriteLine aStream, "<tr>" WriteLine aStream, "<td><b><font color=""#FFFFFF"" size=+3>Tool " & ToolNumber & " : " & ToolName & "</font></b></td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table>" 'Fin de l'ecriture de l'entete WriteLine aStream, "<br><br>" WriteToolTable aTool, aStream, False WriteLine aStream, "</body>" WriteLine aStream, "</html>" aStream.Close Set theHTMLFile = Nothing Set aStream = Nothing On Error GoTo 0 'pdu*** End Sub '----------------------------------------------- ' Ecriture du tableau de description d'un outil ' Parametres + Image + commentaire + correcteurs '----------------------------------------------- Sub WriteToolTable(aTool, aStream, writecaption) Dim ToolName, ToolType As String ToolName = aTool.Name ToolType = aTool.ToolType If (writecaption) Then WriteLine aStream, "<p><center><b><font color=""#3333FF"" size=+2>" & ToolName & "</font></b></center></p>" WriteLine aStream, "<center><table BORDER=0 CELLSPACING=5>" WriteLine aStream, "<tr>" WriteLine aStream, "<td ALIGN=LEFT>" AddResourceParameters aTool, aStream WriteLine aStream, "</td>" Dim ImgName As String ImgName = GetToolImage(aTool, False) If (ImgName <> "") Then WriteLine aStream, "<td ALIGN=RIGHT>" WriteLine aStream, "<center><img BORDER=0 SRC=""" & ImgName & """>" WriteLine aStream, "<br>Type : " & ToNLS(aTool, ToolType) & "</center>" WriteLine aStream, "</td>" Else WriteLine aStream, "<br>" WriteLine aStream, "<center>Type : <b>" & ToNLS(aTool, ToolType) & "</b></center>" End If WriteLine aStream, "</tr>" ' Commentaire '------------ ToolComment = aTool.Comment If (ToolComment <> "") Then WriteLine aStream, "<tr>" WriteLine aStream, "<td COLSPAN=""2"">" WriteLine aStream, "<center><table BORDER CELLSPACING=0 CELLPADDING=5 WIDTH=""75%"" BGCOLOR=""#FFFFFF"">" WriteLine aStream, "<tr>" WriteLine aStream, "<td>" & ToolComment & "</td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" WriteLine aStream, "</td>" WriteLine aStream, "</tr>" End If WriteLine aStream, "</table></center>" If (ToolType <> "MfgAPTTool") Then WriteLine aStream, "<center><hr WIDTH=""60%""></center>" ' Correcteurs '------------ WriteLine aStream, "<center><table CELLSPACING=10 CELLPADDING=5 WIDTH=""75%"">" WriteLine aStream, "<tr VALIGN=""TOP"">" WriteLine aStream, "<td>" WriteLine aStream, "<p><center><b><font color=""#3333FF"" size=+1>Tool Compensation</font></b></center></p>" WriteLine aStream, "<table CELLSPACING=3 CELLPADDING=3 BGCOLOR=""#C5C5E2"" WIDTH=""100%"">" WriteLine aStream, "<tr><font size=-1>" WriteLine aStream, "<td><center><b>Compensation Type</b></center></td>" WriteLine aStream, "<td><center><b>Corrector Number</b></center></td>" WriteLine aStream, "<td><center><b>Length Number</b></center></td>" WriteLine aStream, "<td><center><b>Tool Diameter</b></center></td>" WriteLine aStream, "</font></tr>" Dim NbCorr, corr As Integer Dim aCorr As ManufacturingToolCorrector NbCorr = aTool.CorrectorCount Dim CorrPoint As String Dim CorrNumber, CorrLengthNumber As Integer Dim CorrDiameter As Variant For corr = 1 To NbCorr CorrPoint = "" CorrNumber = 0 CorrLengthNumber = 0 CorrDiameter = 0 Set aCorr = aTool.GetCorrector(corr) CorrPoint = aCorr.Point CorrNumber = aCorr.Number CorrLengthNumber = aCorr.LengthNumber CorrDiameter = aCorr.Diameter If (CorrPoint <> "") Then WriteLine aStream, "<tr>" WriteLine aStream, "<td><center>" & aCorr.Point & "</center></td>" WriteLine aStream, "<td><center>" & aCorr.Number & "</center></td>" WriteLine aStream, "<td><center>" & aCorr.LengthNumber & "</center></td>" WriteLine aStream, "<td><center>" & aCorr.Diameter & "</center></td>" WriteLine aStream, "</tr>" End If Next WriteLine aStream, "</table>" WriteLine aStream, "</td>" Dim ImageCorr As String ImageCorr = CompensationImageFromTool(aTool) If (ImageCorr <> "") Then WriteLine aStream, "<td><img BORDER=0 SRC=""" & ImageCorr & """></td>" End If WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" End If End Sub '---------------------------------------------- ' Recherche du fichier image associe a un outil '---------------------------------------------- Function GetToolImage(aTool, IsSmall) Dim erreur as Integer Dim ToolPictureName, foldername, FileName As String FileName = "" foldername = "" On Error Resume Next If (Not IsSmall) Then ToolPictureName = aTool.Picture erreur = Err.Number Err.Clear If (erreur <> 0) Then ToolPictureName = "" Else ToolPictureName = Trim(ToolPictureName) End If End If If (ToolPictureName <> "") Then If (fso.FileExists(ToolPictureName)) Then Dim namelength, posdernierslash, i As Integer posdernierslash = 0 namelength = Len(ToolPictureName) For i = 1 To namelength If (Mid(ToolPictureName, i, 1) = "\" Or Mid(ToolPictureName, i, 1) = "/") Then posdernierslash = i Next If (posdernierslash = 0) Then FileName = ToolPictureName Else foldername = Mid(ToolPictureName, 1, posdernierslash) FileName = Mid(ToolPictureName, posdernierslash + 1, namelength - posdernierslash) End If End If End If If (FileName = "") Then FileName = GetToolStdImage(aTool, IsSmall) foldername = CATIAComponentPath End If If (FileName <> "") Then Dim target As String target = HtmlFilesPath & FileName If (Not (fso.FileExists(target))) Then Dim rep As Integer rep = FileCopy(foldername & FileName, target, True) If (rep <> 0) Then FileName = "" End If End If On Error GoTo 0 'pdu*** GetToolImage = FileName End Function Function GetToolStdImage(aTool, IsSmall) Dim ToolType, FileName As String ToolType = aTool.ToolType Select Case ToolType 'Milling tools Case "MfgDrillTool" FileName = "ncdrills" Case "MfgTapTool" FileName = "nctaps" Case "MfgCountersinkTool" FileName = "nccounte" Case "MfgReamerTool" FileName = "ncreamer" Case "MfgSpotDrillTool" FileName = "ncspodri" Case "MfgCenterDrillTool" FileName = "nccenter" Case "MfgMultiDiamDrillTool" FileName = "ncmddrls" Case "MfgBoringAndChamferingTool" FileName = "ncbochmf" Case "MfgTwoSidesChamferingTool" FileName = "nctschmf" Case "MfgBoringBarTool" FileName = "ncborbar" Case "MfgEndMillTool" FileName = "ncendmil" Case "MfgFaceMillTool" FileName = "ncfacmil" Case "MfgConicalMillTool" FileName = "ncconmil" Case "MfgTSlotterTool" FileName = "nctslott" Case "MfgAPTTool" FileName = "ncapt" Case "MfgThreadMillTool" FileName = "ncthrmil" 'Lathe Tools Case "MfgExternalTool" FileName = "nlexttl" Case "MfgInternalTool" FileName = "nlinttl" Case "MfgGrooveExternalTool" FileName = "nlextgrv" Case "MfgGrooveInternalTool" FileName = "nlintgrv" Case "MfgGrooveFrontalTool" FileName = "nlgrvfrl" Case "MfgThreadExternalTool" FileName = "nlextthd" Case "MfgThreadInternalTool" FileName = "nlintthd" Case Else FileName = "" End Select If (FileName <> "") Then If (IsSmall) Then FileName = FileName & "-small" FileName = FileName & ".gif" End If GetToolStdImage = FileName End Function '---------------------------------------------- ' Recherche du fichier image associe aux ' correcteurs d'un outil '---------------------------------------------- Function CompensationImageFromTool(aTool) Dim ToolType, FileName As String ToolType = aTool.ToolType Select Case ToolType Case "MfgDrillTool" FileName = "ncdrillscomp.gif" Case "MfgTapTool" FileName = "nctapscomp.gif" Case "MfgCountersinkTool" FileName = "nccountecomp.gif" Case "MfgReamerTool" FileName = "ncreamercomp.gif" Case "MfgSpotDrillTool" FileName = "ncspodricomp.gif" Case "MfgCenterDrillTool" FileName = "nccentercomp.gif" Case "MfgMultiDiamDrillTool" FileName = "ncmddrlscomp.gif" Case "MfgBoringAndChamferingTool" FileName = "ncbochmfcomp.gif" Case "MfgTwoSidesChamferingTool" FileName = "nctschmfcomp.gif" Case "MfgBoringBarTool" FileName = "ncborbarcomp.gif" Case "MfgEndMillTool" FileName = "ncendmilcomp.gif" Case "MfgFaceMillTool" FileName = "ncfacmilcomp.gif" Case "MfgConicalMillTool" FileName = "ncconmilcomp.gif" Case "MfgTSlotterTool" FileName = "nctslottcomp.gif" Case "MfgThreadMillTool" FileName = "ncthrmilcomp" Case Else FileName = "" End Select If (FileName <> "") Then Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem If (Not (aFileSyst.FileExists(HtmlFilesPath & FileName))) Then Dim rep As Integer rep = FileCopy(CATIAComponentPath & FileName, HtmlFilesPath & FileName, True) If (rep <> 0) Then FileName = "" End If End If CompensationImageFromTool = FileName End Function Function GetToolAssemblyImage(anAssembly, IsSmall) Dim FileName As String AssemblyType = anAssembly.AssemblyType If (AssemblyType = "MfgLatheToolAssembly") Then FileName = "nclathetoolassembly" Else FileName = "ncmillingtoolassembly" End If If (IsSmall) Then FileName = FileName & "-small" FileName = FileName & ".gif" Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem If (Not (aFileSyst.FileExists(HtmlFilesPath & FileName))) Then Dim rep As Integer rep = FileCopy(CATIAComponentPath & FileName, HtmlFilesPath & FileName, True) If (rep <> 0) Then FileName = "" End If GetToolAssemblyImage = FileName End Function '---------------------------------------------- ' Ajout d'une ligne dans un tableau 2 colonnes ' NOM_DU_PARAMETRE - VALEUR_DU_PARAMETRE '---------------------------------------------- Sub AddParameterToArray(anObj, aParam, aStream, AcceptComment) If (Not AcceptComment And aParam = "MFG_COMMENT") Then Exit Sub Dim anAttribut As AnyObject Dim AttrVal As String On Error Resume Next Set anAttribut = anObj.getAttribute(aParam) Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur = 0) Then AttrVal = anAttribut.ValueAsString erreur = Err.Number Err.Clear If (erreur = 0 And AttrVal <> "") Then WriteLine aStream, "<tr><td><font size=-1><b>" & ToNLS(anObj, aParam) & "</b></font></td><td><font size=-1>" & ToNLS(anObj,AttrVal) & "</font></td></tr>" End If End If On Error GoTo 0 End Sub '---------------------------------------------------------------------- ' Destruction d'un repertoire ' RemoveDirectory = 0 : Ok ' 1 : erreur de lecture du repertoire foldername ' 2 : erreur suppression de fichier ou de repertoire '---------------------------------------------------------------------- Function RemoveDirectory(foldername) Dim fso As FileSystem Set fso = CATIA.FileSystem Dim result As Integer Dim aFolder As Folder result = 0 On Error Resume Next Set aFolder = fso.GetFolder(foldername) Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur <> 0) Then Set aFolder = Nothing RemoveDirectory = 1 Exit Function End If Dim thefiles As Files Dim nbfiles As Integer Dim FilePath As String Set thefiles = aFolder.Files nbfiles = thefiles.Count For index = nbfiles To 1 Step -1 FilePath = thefiles.Item(index).Path fso.DeleteFile FilePath erreur = Err.Number Err.Clear If (erreur <> 0) Then Set thefiles = Nothing Set aFolder = Nothing RemoveDirectory = 2 Exit Function End If Next Set thefiles = Nothing Dim theFolders As Folders Dim nbfolders As Integer Dim FolderPath As String Set theFolders = aFolder.SubFolders nbfolders = theFolders.Count For index = nbfolders To 1 Step -1 Dim delfolder As Integer FolderPath = theFolders.Item(index).Path delfolder = RemoveDirectory(FolderPath) If (delfolder <> 0) Then Set theFolders = Nothing Set aFolder = Nothing RemoveDirectory = delfolder Exit Function End If Next Set theFolders = Nothing Set aFolder = Nothing fso.DeleteFolder foldername erreur = Err.Number Err.Clear If (erreur <> 0) Then result = 2 On Error GoTo 0 RemoveDirectory = result End Function Function ContinueIfExistingFolder(aPath) Dim fso As FileSystem Set fso = CATIA.FileSystem Dim reponse As Boolean reponse = False EmptyFolder = False On Error Resume Next Dim aFolder As Folder Dim subdir As Folders Dim thefiles As Files If (fso.FolderExists(aPath)) Then Set aFolder = fso.GetFolder(aPath) Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur = 0) Then Set subdir = aFolder.SubFolders Dim subdircount As Integer subdircount = subdir.Count If (subdircount = 0) Then Set thefiles = aFolder.Files Dim filecount As Integer filecount = thefiles.Count If (filecount = 0) Then reponse = True 'Ok si repertoire vide Set thefiles = Nothing End If Set subdir = Nothing End If Set aFolder = Nothing End If If (reponse) Then ContinueIfExistingFolder = True Exit Function End If DeleteDirPrompt = "Existing directory : " & aPath & Chr(13) & "Delete it?" Dim deldir As Integer deldir = MsgBox(DeleteDirPrompt, 4385, "Delete directory?") 'boite modale If (deldir = 1) Then deldir = RemoveDirectory(aPath) If (reponse <> 0) Then Set fso = CATIA.FileSystem If (fso.FolderExists(aPath)) Then Set aFolder = fso.GetFolder(aPath) erreur = Err.Number Err.Clear If (erreur = 0) Then Set subdir = aFolder.SubFolders subdircount = subdir.Count If (subdircount = 0) Then Set thefiles = aFolder.Files filecount = thefiles.Count If (filecount = 0) Then reponse = True Set thefiles = Nothing End If Set subdir = Nothing End If Set aFolder = Nothing End If Else reponse = True End If End If On Error GoTo 0 'pdu*** ContinueIfExistingFolder = reponse End Function '---------------------------------------------------------------------- ' Lecture d'un chemin defini par une variable d'environnement. ' Possibilite d'ajouter un sous repertoire de ce chemin. '---------------------------------------------------------------------- Function GetPath(anEnvVar, aSubDir) If (anEnvVar = "") Then GetPath = "" Exit Function End If Dim EnvValue As String Dim ErrVal As Integer On Error Resume Next EnvValue = CATIA.SystemService.Environ(anEnvVar) ErrVal = Err.Number Err.Clear If (ErrVal <> 0) Then GetPath = "" Exit Function End If Dim strlength As Integer strlength = Len(EnvValue) If (strlength < 1) Then GetPath = "" Exit Function End If Dim bidstr as String For i = 1 To strlength if(Mid(EnvValue, i, 1) = ":") then bidstr = bidstr & ";" else bidstr = bidstr & Mid(EnvValue, i, 1) end if Next EnvValue = bidstr Dim aFileSystem As FileSystem Dim issemicolon As Boolean Dim i, prevpos As Integer Dim aPath As String Set aFileSystem = CATIA.FileSystem If (Mid(EnvValue, strlength, 1) <> ";") Then EnvValue = EnvValue & ";" strlength = strlength + 1 End If If (aSubDir <> "") Then If (Mid(aSubDir, Len(aSubDir), 1) <> "/" And Mid(aSubDir, Len(aSubDir), 1) <> "\") Then aSubDir = aSubDir & "/" End If prevpos = 0 For i = 1 To strlength issemicolon = (Mid(EnvValue, i, 1) = ";") If (prevpos <> 0) Then If (issemicolon) Then aPath = Mid(EnvValue, prevpos, i - prevpos) If (Mid(aPath, Len(aPath), 1) <> "/" And Mid(aPath, Len(aPath), 1) <> "\") Then aPath = aPath & "/" aPath = aPath & aSubDir If (aFileSystem.FolderExists(aPath)) Then GetPath = aPath Exit Function End If prevpos = 0 End If Else If (Not issemicolon) Then prevpos = i End If Next aFileSystem = Nothing On Error GoTo 0 'pdu*** GetPath = "" 'Pas trouve de chemin End Function '------------------------------------------------ ' Teste si un parametre est dans la liste de ceux ' qui ne doivent pas etre traites '------------------------------------------------ Function ParameterIsIgnored(aParam) For i = 1 To NbIgnoredParameters If (aParam = IgnoredParameters(i)) Then ParameterIsIgnored = True Exit Function End If Next ParameterIsIgnored = False End Function '------------------------------------------------ ' Ajout du tableau des parametres d'une resource '------------------------------------------------ Sub AddResourceParameters(aResource, aStream) Dim TabAtt() Dim att As Integer Dim nbatt As Integer nbatt = aResource.NumberOfAttributes If (nbatt = 0) Then Exit Sub ReDim TabAtt(nbatt) aResource.GetListOfAttributes TabAtt WriteLine aStream, "<center><table BORDER=0 CELLSPACING=3 CELLPADDING=3 BGCOLOR=""#C5C5E2"">" For att = 0 To nbatt - 1 If (Not ParameterIsIgnored(TabAtt(att))) Then AddParameterToArray aResource, TabAtt(att), aStream, False End If Next WriteLine aStream, "</table></center>" End Sub '--------------------------------------------------------------- ' Tool assembly '--------------------------------------------------------------- '--------------------------------------------------------------- ' Ajout d'un assembly dans la liste '--------------------------------------------------------------- Sub WriteAssembly(anAssembly, aStream) Dim erreur As Integer Dim AssemblyNumber As Integer Dim aName, AssemblyType As String AssemblyNumber = anAssembly.Number AssemblyType = anAssembly.AssemblyType On Error Resume Next Set Attribut = anAssembly.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then aName = Attribut.Value On Error GoTo 0 WriteLine aStream, "<a NAME=""A" & AssemblyNumber & """></a>" WriteLine aStream, "<center><table BORDER=1 CELLSPACING=2 CELLPADDING=5 WIDTH=""80%"">" WriteLine aStream, "<tr VALIGN=""MIDDLE"">" WriteLine aStream, "<td WIDTH=""50%"" BGCOLOR=""#C6C6FF""><b><font size=+1><a href=""Assembly" & AssemblyNumber & ".html"">Assembly " & AssemblyNumber & " : " & aName & "</a></font></b></td>" aName = GetToolAssemblyImage(anAssembly, True) If (aName <> "") Then WriteLine aStream, "<td ALIGN=""CENTER"" WIDTH=""100"">" WriteLine aStream, "<img SRC=""" & aName & """>" WriteLine aStream, "</td>" End If WriteLine aStream, "<td>" WriteLine aStream, "Type : " & ToNLS(anAssembly,AssemblyType) & "<br>" Dim AssTool As ManufacturingTool Set AssTool = anAssembly.Tool On Error Resume Next Set Attribut = AssTool.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then aName = Attribut.Value If (aName <> "") Then WriteLine aStream, "Tool : <a href=""Assembly" & AssemblyNumber & ".html#Tool"">" & aName & "</a><br>" If (AssemblyType = "MfgLatheToolAssembly") Then Dim anInsert As ManufacturingInsert Set anInsert = anAssembly.Insert Set Attribut = anInsert.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then aName = Attribut.Value If (aName <> "") Then WriteLine aStream, "Insert : <a href=""Assembly" & AssemblyNumber & ".html#Insert"">" & aName & "</a><br>" End If End If WriteLine aStream, "</td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" WriteLine aStream, "<br>" End Sub '--------------------------------------------------------------- ' Page relative a un tool assembly '--------------------------------------------------------------- Sub CreateOneAssemblySheet(anAssembly, aProcessName) Dim erreur As Integer Dim AssemblyNumber As Variant Dim AssemblyName, AssemblyType As String AssemblyType = anAssembly.AssemblyType AssemblyNumber = anAssembly.Number On Error Resume Next Set Attribut = anAssembly.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then AssemblyName = Attribut.Value Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem Dim theAssemblyFile As File Dim aStream As TextStream Dim FileName As String FileName = "Assembly" & AssemblyNumber & ".html" Set theHTMLFile = aFileSyst.CreateFile(HtmlFilesPath & FileName, True) Set aStream = theHTMLFile.OpenAsTextStream("ForWriting") 'Debut de la page WriteLine aStream, "<html>" WriteLine aStream, "<head>" WriteLine aStream, "<title>Assembly " & AssemblyNumber & " : " & AssemblyName & "</title>" WriteLine aStream, "</head>" 'Ecriture de l'entete WriteLine aStream, "<table CELLSPACING=0 CELLPADDING=5><tr>" If (ExistLogoDS) Then WriteLine aStream, "<td ALIGN=CENTER><img SRC=""navlogocat.gif"" BORDER=0></td>" End If WriteLine aStream, "<td BGCOLOR=""#000099"">" WriteLine aStream, "<b><font color=""#FFFFFF"" size=+2>" WriteLine aStream, "TOOL LIST<br>" WriteLine aStream, aProcessName WriteLine aStream, "</font></b></td>" WriteLine aStream, "</tr></table>" WriteLine aStream, "<br><br>" WriteLine aStream, "<table BORDER=0 CELLSPACING=0 CELLPADDING=5 WIDTH=""100%"" BGCOLOR=""#3366FF"">" WriteLine aStream, "<tr VALIGN=""TOP"" ALIGN=""LEFT"">" WriteLine aStream, "<td><b><font color=""#FFFFFF"" size=+3>Assembly " & AssemblyNumber & " : </td></font></b>" WriteLine aStream, "<td><b><font color=""#FFFFFF"" size=+3>" & AssemblyName & "</font>" Dim AssToolName As String Dim AssTool As ManufacturingTool Set AssTool = anAssembly.Tool Set Attribut = AssTool.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then AssToolName = Attribut.Value WriteLine aStream, "<br>" WriteLine aStream, "<font color=""#FFFFFF"" size=+2>Tool : " & AssToolName If (AssemblyType = "MfgLatheToolAssembly") Then Dim anInsert As ManufacturingInsert Dim InsertName As String Set anInsert = anAssembly.Insert Set Attribut = anInsert.getAttribute("MFG_NAME") erreur = Err.Number Err.Clear If (erreur = 0) Then InsertName = Attribut.Value WriteLine aStream, "<br>" WriteLine aStream, "Insert : " & InsertName End If End If WriteLine aStream, "</font>" End If WriteLine aStream, "</b></td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table>" 'Fin de l'ecriture de l'entete WriteLine aStream, "<br><br>" WriteAssemblyTable anAssembly, aStream, False WriteLine aStream, "<p><hr WIDTH=""60%""></p>" Dim UsedTool As ManufacturingTool Set UsedTool = anAssembly.Tool WriteLine aStream, "<p><a NAME=""Tool""></a></p>" WriteToolTable UsedTool, aStream, True If (AssemblyType = "MfgLatheToolAssembly") Then Dim UsedInsert As ManufacturingInsert Dim theType As String Set UsedInsert = anAssembly.Insert theType = UsedInsert.InsertType erreur = Err.Number Err.Clear If (erreur = 0) Then WriteLine aStream, "<p><a NAME=""Insert""></a></p>" WriteLine aStream, "<p><hr WIDTH=""60%""></p>" WriteInsertTable UsedInsert, aStream, True End If End If WriteLine aStream, "</body>" WriteLine aStream, "</html>" aStream.Close Set theHTMLFile = Nothing Set aStream = Nothing On Error GoTo 0 'pdu*** End Sub Sub WriteAssemblyTable(anAssembly, aStream, writecaption) Dim AssemblyName, AssemblyType, AssemblyComment As String AssemblyName = anAssembly.Name AssemblyType = anAssembly.AssemblyType If (writecaption) Then WriteLine aStream, "<p><center><b><font color=""#3333FF"" size=+2>" & AssemblyName & "</font></b></center></p>" WriteLine aStream, "<center><table BORDER=0 CELLSPACING=5>" WriteLine aStream, "<tr>" WriteLine aStream, "<td ALIGN=LEFT>" AddResourceParameters anAssembly, aStream WriteLine aStream, "</td>" Dim ImgName As String ImgName = GetToolAssemblyImage(anAssembly, False) If (ImgName <> "") Then WriteLine aStream, "<td ALIGN=RIGHT>" WriteLine aStream, "<center><img BORDER=0 SRC=""" & ImgName & """>" WriteLine aStream, "<br>Type : " & ToNLS(anAssembly,AssemblyType) & "</center>" WriteLine aStream, "</td>" Else WriteLine aStream, "<br>" WriteLine aStream, "<center>Type : <b>" & ToNLS(anAssembly,AssemblyType) & "</b></center>" End If WriteLine aStream, "</tr>" ' Commentaire '------------ AssemblyComment = anAssembly.Comment If (AssemblyComment <> "") Then WriteLine aStream, "<tr>" WriteLine aStream, "<td COLSPAN=""2"">" WriteLine aStream, "<center><table BORDER=1 CELLSPACING=0 CELLPADDING=5 WIDTH=""75%"" BGCOLOR=""#FFFFFF"">" WriteLine aStream, "<tr>" WriteLine aStream, "<td>" & AssemblyComment & "</td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" WriteLine aStream, "</td>" WriteLine aStream, "</tr>" End If WriteLine aStream, "</table></center>" End Sub Sub WriteInsertTable(anInsert, aStream, writecaption) Dim InsertName, aType As String On Error Resume Next Set Attribut = anInsert.getAttribute("MFG_NAME") Dim erreur As Integer erreur = Err.Number Err.Clear If (erreur = 0) Then InsertName = Attribut.Value aType = anInsert.InsertType If (writecaption) Then WriteLine aStream, "<p><center><b><font color=""#3333FF"" size=+2>" & InsertName & "</font></b></center></p>" WriteLine aStream, "<center><table BORDER=0 CELLSPACING=5>" WriteLine aStream, "<tr>" WriteLine aStream, "<td ALIGN=LEFT>" AddResourceParameters anInsert, aStream WriteLine aStream, "</td>" Dim ImgName As String ImgName = GetInsertImage(anInsert, False) If (ImgName <> "") Then WriteLine aStream, "<td ALIGN=RIGHT>" WriteLine aStream, "<center><img BORDER=0 SRC=""" & ImgName & """>" WriteLine aStream, "<br>Type : " & ToNLS(anInsert,aType) & "</center>" WriteLine aStream, "</td>" Else WriteLine aStream, "<br>" WriteLine aStream, "<center>Type : <b>" & ToNLS(anInsert,aType) & "</b></center>" End If WriteLine aStream, "</tr>" ' Commentaire '------------ Dim InsertComment As String InsertComment = anInsert.Comment If (InsertComment <> "") Then WriteLine aStream, "<tr>" WriteLine aStream, "<td COLSPAN=""2"">" WriteLine aStream, "<center><table BORDER CELLSPACING=0 CELLPADDING=5 WIDTH=""75%"" BGCOLOR=""#FFFFFF"">" WriteLine aStream, "<tr>" WriteLine aStream, "<td>" & InsertComment & "</td>" WriteLine aStream, "</tr>" WriteLine aStream, "</table></center>" WriteLine aStream, "</td>" WriteLine aStream, "</tr>" End If WriteLine aStream, "</table></center>" End Sub Function GetInsertImage(anInsert, IsSmall) Dim fso As FileSystem Set fso = CATIA.FileSystem Dim aType, FileName As String aType = anInsert.InsertType Select Case aType Case "MfgDiamondInsert" FileName = "nldiamnd" Case "MfgSquareInsert" FileName = "nlsquare" Case "MfgTriangularInsert" FileName = "nltriang" Case "MfgRoundInsert" FileName = "nlround" Case "MfgTrigonInsert" FileName = "nltrigon" Case "MfgGrooveInsert" FileName = "nlgroove" Case "MfgThreadInsert" FileName = "nlthread" Case Else FileName = "" End Select If (FileName <> "") Then If (IsSmall) Then FileName = FileName & "-small" FileName = FileName & ".gif" End If If (FileName <> "") Then Dim target As String target = HtmlFilesPath & FileName If (Not (fso.FileExists(target))) Then Dim rep As Integer rep = FileCopy(CATIAComponentPath & FileName, target, True) If (rep <> 0) Then FileName = "" End If End If GetInsertImage = FileName End Function '------------------------------------------------------------- ' Gestion du fichier log '------------------------------------------------------------- Sub OpenLogFile if(theLogMode) then dim theLogName as String Dim aFileSyst As FileSystem Set aFileSyst = CATIA.FileSystem theLogName = HtmlFilesPath & "ToolList.log" Set theLogFile = aFileSyst.CreateFile(theLogName,True) Set theLogStream = theLogFile.OpenAsTextStream("ForWriting") End If End Sub Sub CloseLogFile if(theLogMode) then theLogStream.Close Set theLogFile = Nothing Set theLogStream = Nothing End If End Sub Sub UpdateLogFile (aString) if(theLogMode) then WriteLine theLogStream, aString WriteLine theLogStream, "--------------------------------------------------------------------------------" End If End Sub