Módulo TQSGRID
O TQSGrid é uma ferramenta para confecção de tabelas (ou planilhas) em desenho DWG. Ele permite que o programador crie tabelas formatando células com atributos, em vez de calcular coordenadas e separar linhas e colunas. A tabela abaixo é gerada pelo programa TSTGRID.py distribuído como exemplo.
Este módulo permite também que as tabelas sejam salvas em formato HTML para visualização em browser, e em formato LST com delimitador, que pode ser importado por planilhas.
Modo de funcionamento
O elemento básico da planilha são as células; elas são distribuídas em linhas e colunas numeradas a partir de zero. As células recebem atributos, que podem ser definidos por célula, coluna, linha ou para a tabela inteira. Os atributos assumidos por uma célula dependem donde foram definidos atributos, com a pesquisa também nesta ordem. Você pode misturar a forma de definir atributos, de maneira que o programa assumirá aquele que achar primeiro.
Você cria uma tabela com uma chamada como:
from TQS import TQSGrid
griddwg = TQSGrid.GridDwg ()
Depois dimensiona o número de linhas e colunas, e cria atributos para as células, como em:
griddwg.format.columns= numcolunas
griddwg.format.lines = numlinhas
atrib = TQSGrid.GridDwgAttrib (griddwg)
griddwg.attrib.SetAttribGrid (attrib)
O preenchimento das células será feito com chamadas como:
griddwg.format.SetCell (0, 1, "Pos")
E finalmente você salva o DWG ou outros formatos:
griddwg.file.SaveAsDwg (nomdwg)
griddwg.file.SaveAsLst (nomlst)
griddwg.file.SaveAsHtml (nomhtm)
griddwg.file.SaveAsPdf (nompdf)
Atributos de uma célula
Os atributos de uma célula são definidos por um objeto tipo GridDwgAttrib:
atrib = TQSGrid.GridDwgAttrib (griddwg)
TQSGrid.GridDwgAttrib (griddwg)
Cria um objeto tipo GridDwgAttrib, para ser usado como atributo de tabela
Retorna: o objeto GridDwgAttrib criado.
level
Nível de desenho
hText
Altura de texto, cm. A escala padrão do desenho é criado é 1:1.
iHorizontalAlignment
Alinhamento de texto GridDwgAttrib.ALIN_Hxxxx, definidos a seguir:
GridDwgAttrib.ALIN_HINVAL
Alinhamento inválido
GridDwgAttrib.ALIN_HESQ
Alinhamento horizontal à esquerda
GridDwgAttrib.ALIN_HCEN
Alinhamento horizontal central
GridDwgAttrib.ALIN_HDIR
Alinhamento horizontal à direita
iVerticalAlignment
Alinhamento de texto GridDwgAttrib.ALIN_Vxxxx, definidos a seguir:
GridDwgAttrib.ALIN_VINVAL
Alinhamento inválido
GridDwgAttrib.ALIN_VINF
Alinhamento vertical inferior
GridDwgAttrib.ALIN_VCEN
Alinhamento vertical central
GridDwgAttrib.ALIN_VSUP
Alinhamento vertical superior
cellHeight
Altura da célula, cm
cellWidth
Largura da célula, cm
cellFormat
Formato da célula, na convenção da linguagem C, família de rotinas tipo printf. Tem que bater o tipo usado. Ex: “%7.2f” para um número real, “%05d” para um número inteiro. Se não definido, um padrão será usado. A definição de um formato inválido poderá causar invasão de memória.
Atributos das células com TQSGrid.attrib
Atributos podem ser associados às células, colunas, linhas ou tabela inteira, sendo que o programa usa por célula o primeiro atributo que achar, nesta ordem. Os atributos são fornecidos como um objeto GridDwgAttrib.
attrib.SetAttribGrid (attrgrid)
Define os atributos gerais do grid
attrib.SetAttribLine (line, attrgrid)
Define os atributos da linha com line= 0..lines-1
attrib.SetAttribColumn (column, attrgrid)
Define os atributos da coluna com column= 0..columns-1
attrib.SetAttribCell (line, column, attrgrid)
Define os atributos da célula com a linha line= 0..lines-1 e a coluna column= 0..columns-1
Formatação e preenchimento com TQSGrid.Format
Estas rotinas definem o tamanho do grid e permitem mesclar linhas e colunas, assim como definir o valor das células.
Propriedades de dimensionamento da tabela
Podem ser lidos ou gravados, definem o tamanho da tabela.
format.columns
Número de colunas do grid.
format.lines
Número de linhas do grid.
Métodos de formatação e preenchimento
São as rotinas que permitem juntar colunas dentro de linhas, ou linhas dentro de colunas, e o de definição de valores de células.
format.MergeLine(line, startColumn, endColumn)
Mistura as colunas startColumn a endColumn inclusive da linha line.
As linhas misturadas não têm linha divisória.
format.MergeColumn(column, startLine, endLine)
Mistura as linhas startLine a endLine inclusive, da coluna column.
As colunas misturadas não têm linha divisória.
format.SetCell(line, column, val)
Valor de uma célula. Pode ser inteiro, real ou texto.
Salvamento do grid
O grid gerado pode ser salvo em 4 formatos.
file.SaveAsDwg (nomdwg)
Salva o grid em formato DWG TQS
file.SaveAsLst (nomlst)
Salva o arquivo em formato delimitado por vírgulas, que pode ser importado pela planilha Excel®.
file.SaveAsHtml (nomhtm)
Formato HTM, que pode ser lidos por browsers
file.SaveAsPdf (nompdf)
Salvamento em formato PDF. O sistema de plotagem é usado para fazer este salvamento, utilizando os parâmetros de plotagem e tabela de plotagem correspondente. Por isto, é possível que uma assinatura com o nome do cliente seja gerada do lado esquerdo do desenho, e um número de revisão seja somado ao nome do arquivo.
Programa TSTGRID.py para teste do TQSGrid
Este programa gera o desenho mostrado no início do capítulo. Ele gera 3 arquivos de saída:
TSTDWGGRID.DWG | Tabela em DWG, para leitura pelos editores EAG. |
TSTDWGGRID.HTM | Tabela em HTML, para leitura por browsers. |
TSTDWGGRID.LST | Tabela em listagem, delimitada, para leitura por planilhas. |
Note que atualmente os browsers têm dificuldade para interpretar tabelas com mesclagem de linhas ou colunas. Para ver corretamente o arquivo HTML em um browser, é necessário tirar toda a mesclagem dos programas. Alternativamente o programa NTQSHTM.EXE distribuído com o TQS visualiza corretamente este arquivo.