Já temos definido todos os valores de parâmetros necessários para que o modelo calcule os números de peça. A última regra que é inserida passa os números de peça e outros valores de parâmetros associados com este arquivo a uma folha de cálculo Excel. Alguns destes números de peça são localizados em iParts e esta regra gera o número de peça do parafuso.
A update_excel_spreadsheet_rule utiliza um conjunto de funções disponíveis na categoria Vínculos de dados de Excel, na área Fragmentos da caixa de diálogo Editar regra.
Esta regra é colocada nas células apropriadas segundo o estado do modelo. Na folha de cálculo, todas as células que passam dados foram nomeadas para corresponder com a informação que é salva nelas.
GoExcel.CellValue("part_number.xls", "Sheet1", "Block_Type") = component_type GoExcel.CurrentCellValue("Block_Style") = block GoExcel.CurrentCellValue("Block_Part_Number") = iProperties.Value("manifold_block:1", "Project", "Part Number")
Nesta seção é feita referência ao arquivo de folha de cálculo part_number.xls, incluído neste projeto de tutorial. A seguir, serão definidos os valores das células Block_Type, Block_Stylee Block_Part_Number. Os dois primeiros valores são definidos a partir de parâmetros de montagem; o último valor é definido a partir da iProperty Número de peça do bloco.
GoExcel.CurrentCellValue("port_a_size") = port_a_size If block = "tee" Then GoExcel.CurrentCellValue("port_b_size") = port_b_size Else GoExcel.CurrentCellValue("port_b_size") = "N/A" End If GoExcel.CurrentCellValue("port_c_size") = port_c_size
Observe que um valor de marcador N/D é utilizado para um bloco múltiplo com estilo de cotovelo.
GoExcel.CurrentCellValue("block_depth") = Parameter("manifold_block:1", "block_depth") GoExcel.CurrentCellValue("block_width") = Parameter("manifold_block:1", "block_width") GoExcel.CurrentCellValue("block_height") = Parameter("manifold_block:1", "block_height")
Observe a referência ao componente manifold_block:1 nesta seção.
GoExcel.CurrentCellValue("port_a_union_cap") = port_a_union_part_number GoExcel.CurrentCellValue("port_a_screw_kit") = port_a_screw_part_number If block = "tee" Then GoExcel.CurrentCellValue("port_b_union_cap") = port_b_union_part_number GoExcel.CurrentCellValue("port_b_screw_kit") = port_b_screw_part_number Else GoExcel.CurrentCellValue("port_b_union_cap") = "N/A" GoExcel.CurrentCellValue("port_b_screw_kit") = "N/A" End If GoExcel.CurrentCellValue("port_c_union_cap") = port_c_union_part_number GoExcel.CurrentCellValue("port_c_screw_kit") = port_c_screw_part_number
Assim como ocorre em port_b_size, em uma seção anterior da regra, observe o controle condicional dos valores relativos à Porta B.
GoExcel.Save