Trabalhando com a Linguagem de Consulta
Altium Essentials: PCB Global Editing and List Panel
This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.
O que é uma Query?
Talvez o maior desafio ao trabalhar num projeto eletrónico complexo seja gerir um grande número de objetos de projeto. Desde os componentes, etiquetas de rede e cadeias de texto nas folhas esquemáticas até às centenas de componentes e trilhas que constituem o encaminhamento na PCB, precisa de conseguir aceder, rever e editar esses objetos. Tal como na maioria das aplicações Windows, pode fazer duplo clique num objeto e editar as respetivas propriedades. Isto é adequado para um único objeto, mas não é algo que queira fazer se precisar de editar mais de 300 cadeias de designadores de componentes ou alterar todas as vias na PCB. Para este tipo de atualizações, precisa de aceder a múltiplos objetos em simultâneo.
Na base dos editores de esquemático e PCB do Altium Designer está um poderoso motor de queries. Ao introduzir queries neste motor, pode filtrar para encontrar e editar com precisão os objetos de que necessita.
O poderoso sistema de filtragem e edição de dados no Altium Designer permite-lhe instruir o software a devolver um conjunto especificado de objetos. Esta instrução é introduzida sob a forma de uma query. Uma query é uma cadeia que introduz utilizando palavras-chave e sintaxe específicas, que devolverá os objetos pretendidos. O que faz com esses objetos depende de si. Talvez queira destacá-los e esbater todos os outros objetos, ou talvez queira procurar ou ordenar as respetivas propriedades e modificar atributos específicos que todos partilham.
Existem vários locais onde pode aplicar uma query, mas o centro de comando são os Filter painéis mostrados nas imagens abaixo. Prima F12 para mostrar/ocultar o painel Filter .
Os painéis PCB Filter e SCH Filter com queries

Os painéis PCBLIB Filter e SCHLIB Filter com queries
Os controlos no painel são usados para definir a que objetos a query será aplicada e como tratar os objetos que passam na query, bem como aqueles que falham.
SCH Filter Panel

Localize e destaque rapidamente objetos utilizando queries lógicas no painel SCH Filter.
Resumo
O painel SCH Filter permite-lhe construir filtros através da criação de queries lógicas. Um filtro definido pode depois ser aplicado ao documento esquemático ativo ou a todos os documentos esquemáticos abertos, permitindo selecionar e editar múltiplos objetos com maior precisão e eficiência.
Acesso ao painel
É possível aceder ao painel das seguintes formas:
- Clique no botão Panels no canto inferior direito do editor quando o editor SCH estiver ativo e, em seguida, selecione SCH Filter no menu instantâneo.
- Clique em View » Panels » SCH Filter.
- Clique na tecla de atalho F12.
Definir o âmbito do filtro
A primeira região do painel contém controlos para definir o âmbito do filtro:
A área Limit search to disponibiliza controlos para refinar ainda mais o âmbito do filtro:
- All Objects - aplicar o filtro a todos os objetos de projeto.
- Selected Objects - aplicar o filtro apenas aos objetos de projeto que estão atualmente selecionados.
- Non Selected Objects - aplicar o filtro apenas aos objetos de projeto que não estão atualmente selecionados.
O campo pendente Consider objects in permite-lhe controlar onde o filtro é aplicado. Escolha entre as seguintes opções:
- Current Document - aplicar a filtragem apenas ao documento esquemático ativo (predefinição).
- Open Documents - aplicar a filtragem a todos os documentos esquemáticos abertos.
- Project Documents - aplicar a filtragem a todos os documentos esquemáticos abertos que sejam documentos de origem do mesmo projeto principal.
Definir queries de filtro
A região central do painel permite-lhe construir filtros através da introdução de queries lógicas. Pode escrever uma query diretamente no campo. À medida que escreve, surgirá uma lista de sugestões de possíveis palavras-chave para o ajudar.
O Query Helper está disponível para ajudar na criação de queries. Esta funcionalidade pode ser muito útil se não tiver a certeza da sintaxe de uma query ou das possíveis palavras-chave que poderá querer utilizar. Para usar o Query Helper, clique no botão Helper para abrir a caixa de diálogo Query Helper. O motor de queries subjacente analisa o documento e lista todos os objetos disponíveis juntamente com palavras-chave genéricas para utilização em queries.
Utilize a secção superior da caixa de diálogo para compor uma expressão de query, usando os SCH Functions e System Functions disponíveis. A secção intermédia da caixa de diálogo disponibiliza um conjunto de operadores para usar ao construir uma expressão. Utilize o botão Check Syntax para verificar se uma expressão está sintaticamente correta.
Quando a expressão da query estiver definida conforme necessário, ao clicar em OK a região central do painel SCH Filter será preenchida com a query, pronta para aplicar o filtro.
Definir o realce do filtro
Antes de aplicar a query, é aconselhável definir como pretende que o resultado da filtragem apareça visualmente no espaço de trabalho do projeto. As regiões Objects passing/not passing the filter do painel disponibilizam várias opções que, em conjunto, formam os controlos de realce para filtragem permanente.
As opções disponíveis na área Objects passing the filter permitem-lhe controlar a apresentação visual no espaço de trabalho de todos os objetos que se enquadram no âmbito e correspondem à expressão de query específica do filtro:
- Select - quando ativado (predefinição), os objetos filtrados serão selecionados no espaço de trabalho.
- Zoom - quando ativado (predefinição), os objetos filtrados terão zoom aplicado e serão centrados (sempre que possível) na janela do editor de projeto.
As opções disponíveis na área Objects not passing the filter permitem-lhe controlar a apresentação visual no espaço de trabalho de todos os objetos que não se enquadram no âmbito e/ou não correspondem à expressão de query específica do filtro:
- Deselect - quando ativado (predefinição), todos os objetos que não se enquadram no âmbito do filtro serão desmarcados no espaço de trabalho.
- Mask out - quando ativado (predefinição), os objetos filtrados surgirão totalmente visíveis na janela do editor de projeto e todos os restantes objetos ficarão esbatidos. Com a máscara aplicada, todos os objetos fora do âmbito do filtro ficarão indisponíveis para seleção/edição.
Qualquer combinação destas opções pode ser ativada. Por exemplo, poderá querer que todos os objetos filtrados que se enquadram no âmbito da sua query sejam ampliados, centrados e selecionados na janela do editor de projeto, aplicando também uma máscara para eliminar a desordem de outros objetos de projeto.
Aplicar e limpar o filtro
Depois de ter definido a sua query e configurado as opções no painel conforme necessário, o filtro pode ser aplicado - quer clicando no botão Apply quer premindo Enter.
Para limpar o filtro atualmente aplicado a partir do painel, limpe a entrada da expressão de query no painel e depois clique no botão Apply ou prima Enter. Todos os objetos no espaço de trabalho do projeto ficarão totalmente visíveis e disponíveis para seleção/edição.
Menus do botão direito
Ao clicar com o botão direito no painel SCH Filter, obtém acesso a opções e comandos adicionais através de um menu instantâneo.
O menu disponibiliza os seguintes comandos:
- Add to Favorites - adicionar a expressão de query atualmente apresentada no painel à lista de queries favoritas. A query surgirá como uma nova entrada no separador Favorites da caixa de diálogo Expression Manager. À medida que uma query é adicionada à lista de queries favoritas, será apresentada no topo do menu do botão direito. As dez queries adicionadas mais recentemente à lista de favoritos serão apresentadas no menu (a mais recente no topo), permitindo-lhe aceder rapidamente e reutilizar as suas expressões de query favoritas.
- Organize Favorites - utilize este comando para aceder ao separador Favorites da caixa de diálogo Expression Manager, na qual pode organizar (renomear, eliminar) entradas na lista de queries favoritas conforme necessário.
- Examples - clique para aceder a um submenu de filtros de exemplo predefinidos. Ao escolher um filtro de exemplo, a expressão de query subjacente associada será carregada na região central do painel.
- History - clique para aceder a um submenu com as nove expressões de query utilizadas mais recentemente retiradas da lista do histórico de queries do painel. Clique na entrada More para aceder ao separador History da caixa de diálogo Expression Manager, na qual pode percorrer e aplicar uma query a partir da lista completa de queries históricas e também limpar a lista do histórico conforme necessário.
- Show Scope Options - utilize este comando para alternar a apresentação da região de âmbito do filtro do painel.
- Show Masking Options - utilize este comando para alternar a apresentação da região de realce do filtro do painel.
Notas
Geral
- Premir a tecla F12 alterna a visibilidade do painel no espaço de trabalho.
- Ao utilizar a caixa de diálogo Query Helper para construir uma consulta, clicar dentro de uma palavra-chave introduzida ou sobre uma palavra-chave numa das listas disponíveis e premir F1 irá abrir a ajuda para essa palavra‑chave específica. Um acesso semelhante à ajuda ao nível da palavra‑chave está disponível ao clicar numa palavra‑chave na região central do painel SCH Filter e depois premir F1.
- Dependendo da forma e do tamanho do painel, o conteúdo será organizado dinamicamente na horizontal ou na vertical.
Ao criar expressões de consulta
- É altamente aconselhável utilizar parênteses sempre que exista qualquer possibilidade de a consulta não ser corretamente interpretada.
-
Os parênteses têm a precedência mais elevada dentro de uma ordem de precedência definida para os vários operadores fornecidos e que determina a forma como as consultas são interpretadas pelo software (sempre que não tiver fornecido parênteses). A sequência desta ordem é a seguinte:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Esta ordem de precedência é semelhante à utilizada em linguagens do tipo Pascal; uma utilização generosa de parênteses elimina dúvidas e torna as consultas resultantes mais fáceis de ler por outras pessoas. - As ambiguidades são resolvidas trabalhando da esquerda para a direita.
- Os parênteses são avaliados de dentro para fora e os níveis iguais são processados da esquerda para a direita.
- Como as opções de visualização para objetos que passam e que não passam no filtro aplicado estão separadas, pode efetivamente aplicar novas consultas de filtro para desenvolver os resultados de filtragens anteriores.
- A filtragem aplicada ao utilizar Queries a partir do painel SCH Filter é permanente. Ao ocultar os objetos de design que não passam no filtro, a extensão da ocultação é controlada pela barra deslizante na parte inferior do painel.
- Um filtro permanente tem de ser limpo aplicando uma consulta vazia a partir do painel SCH Filter.
SCHLIB Filter Panel
Localize e destaque rapidamente objetos da Biblioteca Esquemática utilizando consultas lógicas no painel SCHLIB Filter.
Resumo
O painel SCHLIB Filter permite-lhe construir filtros através da criação de consultas lógicas. Um filtro definido pode depois ser aplicado ao componente ativo da biblioteca esquemática ou a todos os componentes da biblioteca esquemática ativa, o que lhe permite selecionar e editar vários objetos com maior precisão e eficiência. A apresentação visual dos objetos pode ser especificada com base nos que correspondem aos critérios de pesquisa do filtro e nos que não correspondem.
Acesso ao painel
O painel pode ser acedido das seguintes formas:
- Clique no botão Panels no canto inferior direito do espaço de trabalho e depois selecione SCHLIB Filter.
- Clique em View » Panels » SCHLIB Filter nos menus principais.
- Utilize a tecla de atalho F12.
Definir o âmbito do filtro
A região à esquerda do painel SCHLIB Filter contém controlos para definir (limitar) o âmbito do filtro.
As opções de âmbito são:
- All Objects - aplicar o filtro a todos os objetos de design.
- Selected Objects - aplicar o filtro apenas aos objetos de design que estão atualmente selecionados.
- Non Selected Objects - aplicar o filtro apenas aos objetos de design que não estão atualmente selecionados.
- Whole Library - controlar se a filtragem é aplicada apenas ao componente ativo (opção desativada) ou a todos os componentes do documento da biblioteca esquemática ativa (opção ativada).
Definir consultas de filtro
A região central do painel SCHLIB Filter permite-lhe construir filtros através da introdução de consultas lógicas.
Pode escrever uma consulta diretamente no campo e, à medida que escreve, será apresentada uma lista de sugestões com possíveis palavras‑chave como ajuda.
Query Helper
Juntamente com a lista de sugestões, o painel também oferece a funcionalidade Query Helper para ajudar na criação de consultas. Esta funcionalidade pode ser muito útil se não tiver a certeza da sintaxe de uma consulta ou das possíveis palavras‑chave que poderá querer utilizar. Para utilizar o Query Helper, clique no botão Helper para abrir a caixa de diálogo Query Helper. O Query Engine subjacente analisa o documento e lista todos os objetos disponíveis, juntamente com palavras‑chave genéricas para utilização em consultas.
Utilize a secção superior da caixa de diálogo para compor uma expressão de consulta utilizando os SCH Functions e System Functions disponíveis. A região central da caixa de diálogo fornece um conjunto de operadores para utilizar ao construir uma expressão. Utilize o botão Check Syntax para verificar se uma expressão está sintaticamente correta.
Quando a expressão da consulta tiver sido definida conforme necessário, clique em OK para carregar a consulta na região central do painel SCHLIB Filter. Aplique o filtro utilizando o botão Apply.
Quando aplicado a toda a biblioteca, os pinos que satisfazem o filtro serão destacados para todos os outros componentes.
Para mais informações sobre a aplicação de filtros, consulte a secção Applying and Clearing a Filter abaixo.
Definir o destaque do filtro
Antes de aplicar a consulta no painel SCHLIB Filter, é melhor definir como pretende que o resultado da filtragem apareça visualmente no espaço de trabalho do editor de design. A região à direita do painel disponibiliza várias opções que, em conjunto, formam os controlos de destaque para a filtragem permanente.
As opções Objects passing the filter permitem-lhe controlar como todos os objetos que se enquadram no âmbito e correspondem à expressão de consulta específica do filtro serão apresentados visualmente no espaço de trabalho.
- Select - quando ativada (predefinição), os objetos filtrados serão selecionados no espaço de trabalho.
- Zoom - quando ativada (predefinição), os objetos filtrados serão ampliados e centrados (sempre que possível) na janela do editor da biblioteca. A ação de zoom pode ser determinada pelas opções Zoom Library Components definidas na página Schematic - Library AutoZoom da caixa de diálogo Preferences.
Por outro lado, as opções Objects not passing the filter permitem-lhe controlar como todos os objetos que do not não se enquadram no âmbito e/ou não correspondem à expressão de consulta específica do filtro serão apresentados visualmente no espaço de trabalho.
- Deselect - quando ativada (predefinição), todos os objetos que não se enquadram no âmbito do filtro serão desmarcados no espaço de trabalho.
- Mask out - quando ativada (predefinição), todos os objetos que não se enquadram no âmbito do filtro serão mascarados na janela do editor da biblioteca. Utilize o cursor para definir o nível da máscara.
Aplicar e limpar um filtro
Depois de definir uma consulta e configurar as opções no painel conforme necessário, o filtro pode ser aplicado clicando no botão Apply do painel ou premindo Enter.
Para limpar o filtro atualmente aplicado a partir do painel, limpe (selecione e elimine) a expressão de consulta na região central do painel e depois clique no botão Apply ou prima Enter. Todos os objetos no espaço de trabalho de design serão repostos com visibilidade total e ficarão disponíveis para seleção/edição.
Para limpar a filtragem no espaço de trabalho e deixar a expressão de consulta carregada na região central do painel, utilize o botão Clear Current Filter na barra de ferramentas Sch Lib Standard (atalho Shift+C).
Menu de contexto
Clicar com o botão direito dentro do painel SCHLIB Filter dá acesso a opções e comandos adicionais através de um menu de contexto.
O menu fornece os seguintes comandos:
- Add to Favorites - utilizar para adicionar a expressão de consulta atualmente apresentada na região central do painel à lista de consultas favoritas. A consulta aparecerá como uma nova entrada no separador Favorites da caixa de diálogo Expression Manager. À medida que uma consulta é adicionada à lista de consultas favoritas, será apresentada no topo do menu de contexto. As dez consultas adicionadas mais recentemente à lista de favoritos serão apresentadas no menu (a mais recente no topo), permitindo-lhe aceder rapidamente e reutilizar as suas expressões de consulta favoritas.
- Organize Favorites - utilizar para aceder ao separador Favorites da caixa de diálogo Expression Manager, no qual pode organizar (mudar o nome, eliminar) entradas na lista de consultas favoritas.
- Examples - clique para aceder a um submenu de filtros de exemplo predefinidos. Ao escolher um filtro de exemplo, a respetiva expressão de consulta subjacente será carregada na região central do painel.
- History - clique para aceder a um submenu que contém as nove expressões de consulta utilizadas mais recentemente retiradas da lista do histórico de consultas do painel. Clique na entrada More para aceder ao separador History da caixa de diálogo Expression Manager, no qual pode percorrer e aplicar uma consulta a partir da lista completa de consultas históricas e também limpar a lista do histórico conforme necessário.
- Show Scope Options - utilizar para alternar a apresentação da região do âmbito do filtro do painel.
- Show Masking Options - utilizar para alternar a apresentação da região de destaque do filtro do painel.
Notas
Geral
- Premir a tecla F12 irá alternar a visibilidade do painel no espaço de trabalho.
- A filtragem aplicada ao utilizar Queries a partir do painel SCHLIB Filter é permanente durante a sessão. Um filtro permanente tem de ser removido por uma ação Clear correspondente (aplicando uma consulta vazia a partir do painel SCHLIB Filter).
- Dependendo da forma e do tamanho do próprio painel SCHLIB Filter, o conteúdo será organizado dinamicamente na horizontal ou na vertical.
Construção de Expressões de Consulta
- É altamente aconselhável utilizar parênteses sempre que exista qualquer possibilidade de a consulta não ser corretamente interpretada.
-
Os parênteses têm a precedência mais elevada dentro de uma ordem de precedência que foi definida para os vários operadores disponibilizados e que determina como as consultas são interpretadas pelo software (sempre que o utilizador não tiver fornecido parênteses). A sequência desta ordem é a seguinte:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Esta ordem de precedência é semelhante à utilizada em linguagens do tipo Pascal. No entanto, a utilização generosa de parênteses elimina dúvidas e torna as consultas resultantes mais fáceis de ler por outras pessoas. - As ambiguidades são resolvidas trabalhando da esquerda para a direita.
- Os parênteses são avaliados de dentro para fora e os níveis iguais são processados da esquerda para a direita.
PCB Filter Panel

O painel PCB Filter
Resumo
O painel PCB Filter fornece controlos para construir filtros através da criação de consultas lógicas. Um filtro definido pode depois ser aplicado ao PCB ativo, permitindo-lhe selecionar e editar múltiplos objetos com grande precisão e eficiência.
Acesso ao Painel
O painel pode ser acedido a partir do editor de PCB das seguintes formas:
- Clique no botão Panels no canto inferior direito do espaço de trabalho e, em seguida, selecione PCB Filter.
- Clique em View » Panels » PCB Filter nos menus principais.
- Utilize a tecla de atalho F12 .
Secções do Painel
O painel PCB Filter é composto por três regiões. As duas primeiras são áreas de lista selecionáveis que, em conjunto, definem o âmbito da filtragem: Object e Layer.
A terceira região, Filter, mostra a consulta criada com base nos objetos e camadas atualmente selecionados.
Construção de Expressões de Filtro Simples
A região principal do painel fornece controlos para construir rapidamente expressões de filtro simples direcionadas para qualquer combinação de objetos. Os tipos de objeto estão organizados numa “matriz de objetos”, categorizados de acordo com serem objetos de net (Net), objetos de componente (Comp) ou objetos livres (Free). A seguinte lista base de objetos é replicada nestes três grupos:
- Track
- Arc
- Via
- Pad
- Fill
- Region
O objeto Text está disponível como parte dos agrupamentos Comp e Free ; no entanto, como este tipo de objeto não é sensível a net, não faz parte do agrupamento Net . Além disso, o agrupamento Free também inclui: Component, Component Body, Room e Polygon.
Se estes estiverem definidos para “Component” e “Top Layer”, por exemplo, a vista da placa irá destacar os componentes da camada superior. As seleções em ambas as secções do painel representam o efeito cumulativo de várias fases da ação de filtragem, que podem ser utilizadas para destacar rapidamente qualquer tipo de objeto do desenho.
Para utilizar um objeto na construção de uma expressão de filtro, ou seja, filtrar por esse objeto, ative a caixa de verificação relevante associada a esse objeto na matriz de objetos. Os comandos disponíveis no menu de contexto da região permitem-lhe marcar ou desmarcar rapidamente todas as entradas na matriz ou alternar o estado de todas as caixas de verificação na matriz.
Utilize a região Layer do painel para restringir o filtro a uma ou mais camadas específicas ou a uma classe específica de camadas. As entradas listadas refletem:
-
As classes de camadas definidas para a placa, cujos valores predefinidos são:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- As camadas definidas no empilhamento de camadas (tal como apresentado no Layer Stack Editor).
- As camadas superior e inferior de máscara de pasta.
À medida que faz as suas seleções de filtragem, a expressão de consulta resultante é construída dinamicamente e apresentada na região Filter do painel. Assim que a expressão de consulta do filtro tiver sido definida conforme necessário, terá então de a aplicar como uma ação separada. Para o fazer, clique no botão Apply to All na parte inferior do painel. Em alternativa, se pretender aplicar apenas aos objetos que estão atualmente selecionados no espaço de trabalho, clique no botão Apply to Selected.
Filtragem por Objeto
A seleção na lista Object do painel irá filtrar a vista da placa para mostrar objetos de desenho primitivos. Todos os objetos serão destacados a menos que sejam modificados pelas definições nas listas de filtro Object e/ou Layer .

A placa mostrada com Component Body e Pad (In Any Component) selecionados em Object. Layer está definido para <All>.

A placa mostrada com Object definido para Tracks (In Any Net) e Pads (In Any Net). Layer está definido para <All>.
Filtragem por Camada
A seleção na lista Layer do painel filtra a vista da placa para mostrar objetos na camada física de desenho indicada (camadas de sinal, máscara e serigrafia). Todos os objetos válidos da camada serão destacados a menos que sejam modificados pelas definições nas listas de filtro Layer e/ou Objects .

A placa mostrada com Object definido para Components e Pads (In Any Component). Layers está definido para Top Layer.

A placa mostrada com Object definido para Tracks (In Any Net). Layer está definido para Bottom Layer.
Selecionar Objetos Filtrados
A ação de filtragem coletiva fornecida pelo painel ajuda tanto na visualização como na seleção dos objetos de desenho da placa de interesse.
Apenas os objetos destacados (filtrados) são selecionáveis, tornando fácil localizar, editar e encontrar informação sobre o objeto.
Limpar o Filtro
Limpe o filtro atualmente aplicado clicando no botão Clear .
Definir a Filtragem Visual
O resultado visual da filtragem aplicada ao documento no espaço de trabalho é determinado por uma série de controlos de destaque. O efeito imposto na vista do editor pode ser definido para Normal, Mask ou Dim, sendo que, na prática, Mask tem o efeito de destaque mais evidente.
A lista pendente Normal / Mask / Dim fornece opções para contrastar visualmente objetos filtrados e não filtrados no espaço de trabalho.

Selecione o tipo de filtragem visual aplicada utilizando a lista pendente do modo de máscara.
O efeito de destaque visual para cada modo de máscara:
- Normal - os objetos filtrados são visíveis no espaço de trabalho e a aparência dos objetos não filtrados permanece inalterada.
- Mask - os objetos filtrados são destacados no espaço de trabalho, ficando todos os outros objetos monocromáticos.
- Dim - os objetos filtrados são destacados no espaço de trabalho enquanto todos os outros objetos mantêm as suas cores, mas sombreados.
Definição de Consultas de Filtro
A região central do painel fornece controlos para construir filtros através da introdução de consultas lógicas.
Pode escrever uma consulta diretamente no campo e, à medida que escreve, surge uma lista de palavras-chave possíveis como ajuda.
Estão disponíveis duas funções que ajudam na criação de consultas - o Query Helper e o Query Builder. Estas funções podem ser muito úteis se não tiver a certeza da sintaxe de uma consulta ou das possíveis palavras-chave que poderá querer utilizar.
Query Helper
Para utilizar o Query Helper, clique no botão Helper para abrir a caixa de diálogo Query Helper. O Query Engine subjacente analisa o documento e lista todos os objetos disponíveis juntamente com palavras-chave genéricas para utilização em consultas.
Utilize a secção superior da caixa de diálogo para compor uma expressão de consulta usando os PCB Functions, PCB Object Lists e System Functions disponíveis. A região central da caixa de diálogo disponibiliza um conjunto de operadores para utilizar na construção de uma expressão. Utilize o botão Check Syntax para verificar se uma expressão está sintaticamente correta.
Quando a expressão da consulta estiver definida conforme pretendido, clique em OK para carregar a consulta na região central do painel, ficando pronta para aplicar o filtro.
Query Builder
Para utilizar o Query Builder, clique no botão Builder do painel para abrir a caixa de diálogo Building Query from Board dialog. Esta caixa de diálogo permite-lhe criar uma consulta para direcionar objetos específicos no documento de projeto através da construção de uma cadeia de condições ligadas por AND e/ou OR. O lado esquerdo da caixa de diálogo é utilizado para especificar a(s) condição(ões) necessária(s) para direcionar o conjunto de objetos pretendido. Inicialmente, a entrada na coluna Condition Type/Operator será Add first condition. Ao clicar uma vez nesta entrada, será apresentada uma lista pendente de tipos de condição.
Os tipos de condição listados irão refletir apenas os que são relevantes para um projeto de placa.
Selecione a condição pretendida e depois clique na coluna Condition Value para aceder a uma lista pendente de valores possíveis para esse tipo de condição. À medida que define uma condição no lado esquerdo da caixa de diálogo, é apresentada no lado direito uma pré-visualização da consulta atualmente construída.
Continue a adicionar outras condições para restringir, conforme necessário, o conjunto-alvo de objetos do projeto. As condições podem ser ligadas com AND ou com OR. O operador lógico predefinido é AND, que é automaticamente inserido quando adiciona outra condição.
Para alterar o operador lógico entre condições, clique na entrada AND ou OR na coluna Condition Type/Operator e depois selecione o operador pretendido. A pré-visualização da consulta será atualizada em conformidade.
Especificar a precedência
Os botões
e
no topo da caixa de diálogo Building Query from Board permitem-lhe adicionar e remover parênteses em torno da condição atualmente selecionada (aumentando e diminuindo o avanço). Isto permite-lhe criar precedência para determinadas condições logicamente ligadas por AND ou por OR.
Por exemplo, considere a seguinte consulta construída:
InNet('5V') AND (OnLayer('TopLayer')
A primeira condição foi definida com o tipo de condição Belongs to Net e com o valor 16M_IN. Foi depois adicionada outra condição utilizando o tipo de condição Exists on Layer com o valor TopLayer.
Nesta fase, com a segunda condição selecionada na caixa de diálogo, foi clicado o botão de seta para a direita. Foram automaticamente adicionados parênteses em torno da segunda condição e fica agora disponível a possibilidade de adicionar uma condição dentro desse par de parênteses.
A terceira condição com o tipo de condição Object Kind is e valor Track é então adicionada dentro dos parênteses.
Utilize a lista pendente Show Level no canto superior esquerdo da caixa de diálogo para controlar a apresentação visual dos níveis na sua cadeia estruturada de condições. Isto expande/recolhe essencialmente a apresentação dos parênteses. Adicionar parênteses cria efetivamente um novo nível. Pode apresentar os níveis 1-5, mas para quaisquer níveis adicionais, utilize a opção Show All Levels.
Em alternativa, clique nos símbolos de expandir ou contrair (associados a uma condição entre parênteses) para mostrar o(s) nível(eis) seguinte(s) ou ocultar o nível atual (e todos os níveis abaixo), respetivamente. Os botões
e
no topo da caixa de diálogo também podem ser utilizados para expandir ou recolher a condição atualmente selecionada.
Utilize os botões
e
no topo da caixa de diálogo para mover uma condição selecionada na cadeia de consulta. Para uma condição que tenha subníveis (ou seja, uma condição entre parênteses), qualquer condição na estrutura de níveis pode ser movida. Quando os níveis estão expandidos, uma condição pode ser movida para baixo ou para cima através dos níveis. Quando os níveis estão recolhidos, uma condição será movida ao longo da estrutura de níveis.
Para eliminar uma condição, selecione-a e clique no botão
no topo da caixa de diálogo ou utilize a tecla Delete.
Quando a expressão da consulta estiver definida conforme pretendido, clique em OK para carregar a consulta na região central do painel PCB Filter, ficando pronta para aplicar o filtro.
Criar regras de projeto
O painel PCB Filter também disponibiliza a funcionalidade de criação de uma regra de projeto, em que o seu âmbito utilizará a expressão de consulta atualmente definida na região central do painel.
Para adicionar uma nova regra de projeto, clique no botão Create Rule do painel PCB Filter. A caixa de diálogo Choose Design Rule Type será aberta.
Esta caixa de diálogo lista cada uma das categorias de regras e tipos de regra disponíveis no documento PCB. Escolha o tipo de regra que pretende criar e clique em OK (ou faça duplo clique diretamente na entrada). A caixa de diálogo PCB Rules and Constraints Editor será aberta.
O nome da regra recentemente criada pode ser visto selecionado na árvore de navegação do lado esquerdo. A expressão de consulta da regra encontra-se no painel superior direito da caixa de diálogo.
É criada uma regra do tipo escolhido e a janela principal de edição da regra é apresentada, pronta para definir restrições específicas para a regra. A expressão de consulta do painel PCB Filter é inserida na região Full Query da caixa de diálogo. Ajuste as definições de configuração da regra conforme necessário e aplique a nova regra.
Aplicar e limpar o filtro
Depois de definir uma consulta e configurar as opções no painel conforme pretendido, o filtro pode ser aplicado clicando num dos botões Apply do painel ou clicando em Enter.
Para limpar o filtro atualmente aplicado a partir do painel, limpe (selecione e elimine) a expressão de consulta na região central do painel e depois clique num dos botões Apply ou prima Enter. Todos os objetos na área de trabalho do projeto serão repostos com visibilidade total e ficarão disponíveis para seleção/edição.
Menus de contexto
Clicar com o botão direito dentro do painel PCB Filter dá acesso a opções e comandos adicionais através de menus de contexto.
Clicar com o botão direito na região Object ou Layer do painel abre as seguintes opções do menu de contexto:
- Toggle Check - ativar para alternar opções. As opções atualmente selecionadas serão desmarcadas e as opções não selecionadas serão selecionadas.
- Check All - ativar para selecionar todas as opções disponíveis.
- Uncheck All - ativar para desmarcar todas as opções disponíveis.
Notas
Geral
- Premir a tecla F12 irá alternar a visibilidade do painel na área de trabalho.
- O Query Builder (caixa de diálogo Building Query from Board) disponibiliza um método simples de construir uma consulta, utilizando tipos e valores de condição sensíveis que apenas lhe permitem construir usando "blocos de construção" relevantes. Para construção avançada de consultas, com especificação completa de palavras-chave e sintaxe de operadores, utilize a caixa de diálogo Query Helper.
- Como as opções de visualização para objetos que passam e não passam no filtro aplicado estão separadas, pode efetivamente aplicar novas consultas de filtro para desenvolver sobre os resultados de filtragens anteriores.
Ao construir expressões de consulta
-
É altamente aconselhável utilizar parênteses sempre que exista qualquer possibilidade de a consulta não ser interpretada corretamente.
-
Os parênteses têm a precedência mais elevada dentro de uma ordem de precedência que foi definida para os vários operadores disponibilizados e que determina como as consultas são interpretadas pelo software (sempre que o utilizador não forneça parênteses). A sequência desta ordem é a seguinte:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Esta ordem de precedência é semelhante à utilizada em linguagens do tipo Pascal. No entanto, a utilização abundante de parênteses elimina dúvidas e torna as consultas resultantes mais fáceis de ler por outras pessoas. -
As ambiguidades são resolvidas trabalhando da esquerda para a direita.
-
Os parênteses são avaliados de dentro para fora e os níveis iguais são processados da esquerda para a direita.
PCBLIB Filter Panel
Resumo
O painel PCBLIB Filter disponibiliza controlos para construir filtros através da criação de consultas lógicas. Um filtro definido pode depois ser aplicado à footprint do componente PCB ativo, ou a todas as footprints de componentes na biblioteca PCB ativa, permitindo-lhe selecionar e editar múltiplos objetos com grande precisão e eficiência.
Acesso ao painel
O painel é acedido a partir do PCB Library Editor das seguintes formas:
- Clique no botão Panels no canto inferior direito da área de trabalho e depois selecione a entrada PCBLIB Filter.
- Clique em View » Panels » PCBLIB Filter nos menus principais.
- Use a tecla de atalho F12.
Secções do Painel
O painel PCBLIB Filter é composto por três regiões. As duas primeiras são áreas de listas selecionáveis que, em conjunto, definem o âmbito da filtragem: Object e Layer. A terceira região, Filter, apresenta a consulta criada com base nos objetos e camadas atualmente selecionados.
Criar Expressões de Filtro Simples
A região principal do painel disponibiliza controlos para criar rapidamente expressões de filtro simples, direcionadas a qualquer combinação de objetos. Os tipos de objetos estão organizados numa “matriz de objetos”, categorizados de acordo com serem objetos de net (Net), objetos de componente (Comp) ou objetos livres (Free). A seguinte lista principal de objetos é replicada nestes três grupos:
- Track
- Arc
- Via
- Pad
- Fill
- Region
O objeto Text está disponível como parte dos agrupamentos Comp e Free ; no entanto, como este tipo de objeto não é sensível a nets, não faz parte do agrupamento Net . Além disso, o agrupamento Free também inclui Component, ComponentBody, Room e Polygon.
Se estes estiverem definidos como “Components” e “Top Layer”, por exemplo, a vista da placa irá destacar os componentes da camada superior. As seleções em ambas as secções do painel representam o efeito cumulativo de várias fases da ação de filtragem, que pode ser utilizada para destacar rapidamente qualquer tipo de objeto de projeto.
Para utilizar um objeto na construção de uma expressão de filtro, ou seja, filtrar por esse objeto, ative a caixa de verificação relevante associada a esse objeto na matriz de objetos. Os comandos disponíveis no menu de contexto, acessível com o botão direito do rato, para esta região permitem-lhe marcar ou desmarcar rapidamente todas as entradas da matriz ou, respetivamente, alternar o estado de todas as caixas de verificação da matriz.
Utilize a região Layer para restringir o filtro a uma camada específica ou a várias camadas ou a uma classe específica de camadas. As entradas apresentadas refletem:
-
As classes de camadas definidas para a placa, cujas predefinições são:
- <All Layers>
- <Component Layers>
- <Electrical Layers>
- <Signal Layers>
- As camadas definidas no empilhamento de camadas (tal como apresentado em Layer Stack).
- As camadas superior e inferior da máscara de pasta.
À medida que faz as suas seleções de filtragem, a expressão de consulta resultante é criada dinamicamente e apresentada na região Filter do painel. Depois de a expressão de consulta do filtro estar definida conforme necessário, terá de a aplicar como uma ação separada. Para o fazer, clique no botão Apply to All na parte inferior do painel. Em alternativa, se pretender aplicá-la apenas aos objetos que estão atualmente selecionados na área de trabalho, utilize o botão Apply to Selected.
Aplicar Filtragem
Os componentes da biblioteca PCB são compostos por tipos de objetos primitivos (Arcs, Pads, Tracks, etc.), dispostos em diferentes camadas da placa. Os objetos são de natureza “livre” ou “pertencem” a um objeto de grupo. Tenha em atenção que selecionar Free na região Object irá destacar apenas os objetos que não fazem parte de um objeto de grupo.
Filtragem por Objeto
A seleção na lista Object do painel irá filtrar a vista da placa para mostrar objetos primitivos de projeto. Todos os objetos serão destacados a menos que sejam modificados pelas definições na lista de filtro Layer .

O exemplo de placa é apresentado com Track e Arc selecionados em Object. Layer está definido como Top Overlay.
Filtragem por Camada
A seleção na lista Layers do painel irá filtrar a vista da placa para mostrar objetos na camada física de projeto indicada (camadas de Sinal, Máscara e Serigrafia). Todos os objetos válidos da camada serão destacados a menos que sejam modificados pelas definições na lista de filtro Object .

O exemplo de placa apresentado com Object definido como Pad. Layer tem Top Layer definido como
Selecionar Objetos Filtrados
A ação de filtragem coletiva disponibilizada pelo painel PCBLIB Filter ajuda tanto na visualização como na seleção de objetos de projeto da placa que sejam de interesse.
Apenas os objetos destacados (filtrados) podem ser selecionados, tornando mais fácil localizar, editar e encontrar informação sobre o objeto.
Limpar o Filtro
Limpe o filtro atualmente aplicado com o botão Clear do painel.
Definir a Filtragem Visual
O resultado visual da filtragem aplicada ao documento na área de trabalho é determinado por uma série de controlos de realce. O efeito imposto na vista do editor pode ser definido como Normal, Mask ou Dim, sendo que, na prática, Mask tem o efeito de realce mais evidente.
A lista pendente Normal / Mask / Dim disponibiliza opções para contrastar visualmente objetos filtrados e não filtrados na área de trabalho.

Selecione o tipo de filtragem visual aplicado utilizando a lista pendente do modo de máscara.
O efeito de realce visual para cada modo de máscara:
- Normal - os objetos filtrados ficam visíveis na área de trabalho e o aspeto dos objetos não filtrados permanece inalterado.
- Mask - os objetos filtrados são destacados na área de trabalho, ficando todos os outros objetos em monocromático.
- Dim - os objetos filtrados são destacados na área de trabalho, com todos os outros objetos a manterem as suas cores, mas sombreados.
Definir Consultas de Filtro
A região central do painel permite-lhe construir filtros através da introdução de consultas lógicas.
Pode escrever uma consulta diretamente no campo e, à medida que escreve, surgirá uma lista de sugestões de palavras-chave possíveis para ajudar.
Estão disponíveis duas funcionalidades para ajudar na criação de consultas: o Query Helper e o Query Builder. Estas funcionalidades podem ser muito úteis se não tiver a certeza da sintaxe de uma consulta ou das possíveis palavras-chave que poderá querer utilizar.
Query Helper
Para utilizar o Query Helper, clique no botão Helper para abrir a caixa de diálogo Query Helper. O Query Engine subjacente analisa o documento e lista todos os objetos disponíveis, juntamente com palavras-chave genéricas para utilização em consultas.
Utilize a secção superior da caixa de diálogo para compor uma expressão de consulta utilizando os PCB Functions, PCB Object Lists e System Functions disponíveis. A região central da caixa de diálogo disponibiliza um conjunto de operadores para utilização na construção de uma expressão. Utilize o botão Check Syntax para verificar se uma expressão está sintaticamente correta.
Quando a expressão da consulta estiver definida conforme necessário, clique em OK para carregar a região central do painel PCBLIB Filter com a consulta, pronta a aplicar o filtro.
Query Builder
Para utilizar o Query Builder, clique no botão Builder do painel PCBLIB Filter para abrir a caixa de diálogo Building Query from Board.
Esta caixa de diálogo permite-lhe criar uma consulta para direcionar objetos específicos no documento de projeto, através da construção simples de uma cadeia de condições ligadas por AND e/ou OR.
O lado esquerdo da caixa de diálogo é onde especifica a(s) condição(ões) necessária(s) para direcionar o conjunto de objetos pretendido. Inicialmente, a entrada na coluna Condition Type/Operator será Add first condition. Clique uma vez nesta entrada para abrir uma lista pendente de tipos de condição.
Os tipos de condição listados refletirão apenas os que são relevantes para um projeto de placa.
Selecione a condição e depois clique na coluna Condition Value para aceder a uma lista pendente de valores possíveis para esse tipo de condição. À medida que define uma condição no lado esquerdo da caixa de diálogo, é apresentada no lado direito uma pré-visualização da consulta que está a ser construída.
Continue a adicionar mais condições para restringir o conjunto-alvo de objetos de desenho, conforme necessário. As condições podem ser combinadas com AND ou OR. O operador lógico predefinido é AND e é inserido automaticamente quando adiciona outra condição.
Para alterar o operador lógico entre condições, clique na entrada AND ou OR na coluna Condition Type/Operator e selecione o operador pretendido. A pré-visualização da consulta será atualizada em conformidade.
Especificar Precedência
Os botões
e
no topo da caixa de diálogo Building Query from Board permitem adicionar e remover parênteses em torno da condição atualmente selecionada (aumentando e diminuindo o avanço). Isto permite-lhe criar precedência para determinadas condições logicamente combinadas com AND ou com OR.
A primeira condição foi definida para o tipo de condição Exists on Layer com o valor Top Layer. Foi depois adicionada outra condição utilizando o tipo de condição Object Kind is com o valor Arc.
Nesta fase, com a segunda condição selecionada na caixa de diálogo, foi clicado o botão de seta para a direita. Foram automaticamente adicionados parênteses em torno da segunda condição, estando agora disponível a possibilidade de adicionar uma condição dentro desse par de parênteses.
A terceira condição com o tipo de condição In Any Polygon é então adicionada dentro dos parênteses.
Utilize a lista pendente Show All Levels no canto superior esquerdo da caixa de diálogo para controlar a apresentação visual dos níveis na sua cadeia estruturada de condições. Isto expande/recolhe essencialmente a apresentação dos parênteses. Adicionar parênteses cria, na prática, um novo nível. Pode apresentar os níveis 1-5, mas para quaisquer níveis adicionais utilize a opção Show All Levels.
Em alternativa, clique nos símbolos de expandir ou recolher associados a uma condição entre parênteses para mostrar o(s) nível(eis) seguinte(s) ou ocultar o nível atual (e todos os níveis abaixo), respetivamente. Os botões
e
no topo da caixa de diálogo também podem ser usados para expandir ou recolher a condição atualmente selecionada.
Utilize os botões
e
no topo da caixa de diálogo para mover uma condição selecionada na cadeia da consulta que está a ser construída. Para uma condição que tenha subníveis (isto é, uma condição entre parênteses), qualquer condição na estrutura de níveis pode ser movida. Quando os níveis estão expandidos, uma condição pode ser movida para baixo ou para cima através dos níveis. Quando os níveis estão recolhidos, uma condição será movida ao longo da estrutura de níveis.
Para eliminar uma condição, selecione-a e clique no botão
no topo da caixa de diálogo ou utilize a tecla Delete.
Quando a expressão da consulta tiver sido definida conforme pretendido, clique em OK para carregar a região central do painel PCBLIB Filter com a consulta, pronta a aplicar o filtro.
Criar Regras de Desenho
O painel PCBLIB Filter também disponibiliza a funcionalidade de criar uma regra de desenho. O respetivo âmbito utilizará a expressão de consulta atualmente definida na região central do painel.
Para adicionar uma nova regra de desenho, clique no botão Create Rule do painel PCBLIB Filter. A caixa de diálogo Choose Design Rule Type será aberta.
Esta caixa de diálogo lista cada uma das categorias de regras e tipos de regras disponíveis no documento PCB. Escolha o tipo de regra que pretende criar e clique em OK (ou faça duplo clique diretamente na entrada). A caixa de diálogo PCB Rules and Constraints Editor será aberta.
O nome da regra recém-criada pode ser visto selecionado na árvore de navegação do lado esquerdo. A expressão de consulta da regra encontra-se no painel superior direito da caixa de diálogo.
É criada uma regra do tipo escolhido e a janela principal de edição da regra é apresentada, pronta para definir restrições específicas para a regra. A expressão de consulta do painel PCBLIB Filter é introduzida na região Full Query da caixa de diálogo. Ajuste as definições de configuração da regra conforme necessário e aplique a nova regra.
Aplicar e Limpar o Filtro
Depois de definir a consulta e configurar as opções no painel conforme necessário, o filtro pode ser aplicado clicando no botão Apply do painel ou premindo Enter.
Para limpar o filtro atualmente aplicado a partir do painel, elimine (selecione e apague) a expressão da consulta na região central do painel e depois clique no botão Apply ou prima Enter. Todos os objetos no espaço de trabalho de desenho serão restaurados à visibilidade total e ficarão disponíveis para seleção/edição.
Menus de Clique Direito
Clique com o botão direito no painel PCBLIB Filter para aceder a opções e comandos adicionais através de menus contextuais.
Ao clicar com o botão direito na região Object ou Layer do painel, são abertas as seguintes opções do menu contextual:
- Toggle Check - ativa a alternância das opções. As opções atualmente selecionadas serão desmarcadas, enquanto as não selecionadas passarão a ficar selecionadas.
- Check All - ativa a seleção de todas as opções disponíveis.
- Uncheck All - ativa a desmarcação de todas as opções disponíveis.
Notas
Geral
- Premir a tecla F12 irá alternar a visibilidade do painel no espaço de trabalho.
- O Query Builder (caixa de diálogo Building Query from Board) fornece um método simples de construir uma consulta utilizando tipos de condição e valores sensíveis ao contexto que apenas lhe permitem construir com base em “blocos” relevantes. Para construção avançada de consultas com especificação completa de palavras-chave e sintaxe de operadores, utilize a caixa de diálogo Query Helper.
- Como as opções de apresentação para objetos que passam e não passam no filtro aplicado estão separadas, pode efetivamente aplicar novas consultas de filtro para desenvolver os resultados de filtragens anteriores.
Ao Construir Expressões de Consulta
- É altamente aconselhável utilizar parênteses sempre que exista alguma possibilidade de a consulta não ser interpretada corretamente.
-
Os parênteses têm a precedência mais elevada dentro de uma ordem de precedência definida para os vários operadores disponibilizados e que determina como as consultas são interpretadas pelo software (sempre que o utilizador não forneceu parênteses). A sequência desta ordem é a seguinte:
Brackets
Not
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
&&, ||
Esta ordem de precedência é semelhante à utilizada em linguagens do tipo Pascal. No entanto, a utilização generosa de parênteses elimina dúvidas e torna as consultas resultantes mais fáceis de ler por outras pessoas. - As ambiguidades são resolvidas trabalhando da esquerda para a direita.
- Os parênteses são avaliados de dentro para fora e os níveis iguais são processados da esquerda para a direita.
Onde Estão os Resultados da Consulta?
Agora que escreveu uma consulta no painel Filter , como pode aceder aos objetos devolvidos pela sua consulta? Existem duas formas de aceder e editar objetos no ambiente do Altium Designer.
-
Graficamente - após aplicar um filtro, o comportamento predefinido é mascarar (esbater e tornar não editáveis) todos os objetos que não passaram na consulta, deixando apenas os que passaram. Este modo é excelente para localizar e rever objetos no espaço de trabalho. Como os objetos mascarados não são editáveis, comandos como Ctrl+A (selecionar tudo) aplicam-se apenas aos objetos devolvidos pela consulta.
-
List painel - o painel List (Shift+F12) é uma vista dos seus dados de desenho semelhante a uma folha de cálculo. Por predefinição, apresenta todos os objetos de desenho, mas assim que um filtro é aplicado, apresenta apenas os objetos devolvidos pela consulta. O painel List tem comportamentos padrão semelhantes aos de uma folha de cálculo para ordenação e seleção, permitindo-lhe editar diretamente uma ou várias células.
O painel PCB List e o painel SCH List apresentam os resultados das consultas PSB/SCH na secção anterior.
Opções de Realce
Sempre que uma consulta é aplicada (ou a funcionalidade de filtragem de dados é utilizada de outra forma), cada objeto no documento-alvo torna-se membro dos resultados dessa ação de filtragem. No entanto, a forma como os objetos dos resultados e os objetos que não estão nos resultados são subsequentemente apresentados depende da(s) opção(ões) de realce selecionada(s) no painel Filter . Existem três opções de realce diferentes disponíveis e as opções são totalmente independentes entre si, pelo que pode selecionar uma, duas ou todas.
Zoom
Quando a opção Zoom está ativada no momento em que a consulta é aplicada, a vista do documento-alvo é atualizada para apresentar a região ocupada por todos os objetos que estão nos resultados. A apresentação, ou não, de cada objeto restante na vista atualizada depende da sua localização relativamente a essa região, pelo que cada um desses objetos pode acabar por ser apresentado na totalidade, parcialmente, ou nem sequer ser apresentado.
Esta opção é frequentemente selecionada em conjunto com uma ou ambas as outras opções. Se a Mask opção não tiver sido ativada, os objetos que não estiverem nos resultados continuarão a ser apresentados na vista gráfica se estiverem localizados dentro dos limites atualizados. À primeira vista, selecionar esta opção isoladamente pode parecer inútil, mas poderá haver situações em que pretenda atualizar a vista gráfica para que esta inclua determinados objetos, sem alterar o estado de seleção nem o estado de máscara de quaisquer objetos do documento.
Selecionar
Quando a Select opção está ativada, todos os objetos que fazem parte dos resultados ficam no estado selecionado, enquanto todos os restantes objetos ficam não selecionados. Os objetos selecionados são apresentados de uma forma mais distinta do que os objetos não selecionados.
Se a opção Selecionar estiver selecionada quando a consulta atual for aplicada, todos os objetos que são membros do conjunto de resultados passam subsequentemente a ter um estado selecionado, enquanto todos os restantes objetos (que não são membros do conjunto de resultados) passam, em vez disso, a um estado não selecionado. Esta opção será normalmente selecionada imediatamente antes de procedimentos de edição global, porque apenas os objetos que se encontram atualmente selecionados têm as suas propriedades atualizadas nesse momento. Mas há outras ocasiões em que a opção Selecionar pode ser útil, por exemplo, quando determinados objetos devem ser movidos, copiados ou eliminados.
Máscara
A Mask opção de realce determina a propriedade de máscara atualizada dos objetos no documento de destino. Quando selecionada, todos os objetos que estão nos resultados ficam mascarados, enquanto todos os restantes objetos ficam sem máscara. O principal aspeto dos objetos mascarados é que eles e as suas propriedades não podem ser editados. (Os objetos mascarados são apresentados esbatidos na vista de lista, mas não são apresentados na vista de lista, a menos que a all objects opção esteja atualmente selecionada no List painel.) O principal aspeto dos objetos mascarados é que o objeto e as suas propriedades não podem ser editados.
O Query Builder
O editor de PCB inclui uma caixa de diálogo Query Builder dedicada. Esta caixa de diálogo permite-lhe criar consultas complexas escolhendo condições de teste em listas pendentes. Uma vantagem do Query Builder é que lhe permite criar uma consulta que abrange diferentes tipos de objetos.
A caixa de diálogo 'Building Query' (parte da funcionalidade 'Query Builder') ajuda os utilizadores com menos experiência na especificação de consultas; é gerada automaticamente uma consulta cujo conteúdo corresponde às condições especificadas pelo projetista.
A secção à esquerda desta caixa de diálogo contém controlos cujo objetivo é ajudar o projetista na tarefa de especificar quais as propriedades necessárias para que cada objeto do documento seja devolvido pela consulta gerada por esta caixa de diálogo. À medida que cada uma dessas condições é especificada ou editada, o conteúdo da consulta correspondente é atualizado e apresentado na secção direita da caixa de diálogo. Se esta caixa de diálogo for depois fechada clicando no respetivo botão OK (ou Apply), então a consulta associada será aplicada, ou o seu conteúdo será copiado de volta para o painel Filter (dependendo da forma como esta caixa de diálogo foi inicialmente invocada).
A caixa de diálogo Query Builder pode ser aberta a partir dos seguintes locais (como mostrado na imagem abaixo):
- A partir do painel PCB Filter, clique no botão Query Builder para criar uma consulta e carregar a cadeia no painel.
- A partir da caixa de diálogo PCB Rules and Constraints Editor dialog, clique no botão Builder para criar uma consulta que define a que objetos esta regra se aplica.
A imagem abaixo mostra a caixa de diálogo Query Builder a ser utilizada para criar uma consulta que abrange tanto pads como vias na rede 5V.

A caixa de diálogo Query Builder
Options and Controls of the Query Builder Dialog
-
Show All Levels - utilize a lista pendente para controlar a apresentação visual dos níveis na cadeia estruturada de condições. Isto expande/contrai essencialmente a apresentação dos parênteses. Adicionar parênteses cria um novo nível e pode apresentar os níveis 1-5. Em alternativa, clique nos símbolos expandir ou contrair para mostrar o(s) nível(eis) seguinte(s) ou ocultar o nível atual (e todos os níveis abaixo), respetivamente.
-
- utilize para remover os parênteses em torno da condição atualmente selecionada (diminuindo o avanço). Isto permite-lhe criar precedência para determinadas condições logicamente associadas por AND ou por OR.
-
- utilize para adicionar parênteses em torno da condição atualmente selecionada (aumentando o avanço). Isto permite-lhe criar precedência para determinadas condições logicamente associadas por AND ou por OR.
-
- para mover uma condição selecionada para cima na cadeia de consulta que está a ser construída. Para uma condição que tenha subníveis (ou seja, uma condição entre parênteses), qualquer condição na estrutura de níveis pode ser movida. Quando os níveis estão expandidos, uma condição pode ser movida para cima através dos níveis. Quando os níveis estão contraídos, uma condição será movida ao longo da estrutura de níveis.
-
- para mover uma condição selecionada para baixo na cadeia de consulta que está a ser construída. Para uma condição que tenha subníveis (ou seja, uma condição entre parênteses), qualquer condição na estrutura de níveis pode ser movida. Quando os níveis estão expandidos, uma condição pode ser movida para baixo através dos níveis. Quando os níveis estão contraídos, uma condição será movida ao longo da estrutura de níveis.
-
- utilize para expandir os símbolos e mostrar o(s) nível(eis) seguinte(s).
-
- utilize para contrair os símbolos e ocultar o nível atual (e todos os níveis abaixo).
-
- utilize para eliminar a condição selecionada.
- Condition Type/Operator - utilize esta área para especificar a(s) condição(ões) necessária(s) para abranger o conjunto de objetos pretendido. Inicialmente, a entrada na coluna Condition Type/Operator será Add first condition. Clique uma vez nesta entrada para abrir uma lista pendente de tipos de condição. A lista é sensível ao local a partir do qual a caixa de diálogo foi aberta. Se estiver a criar uma consulta para uma determinada regra de conceção dentro da caixa de diálogo PCB Rules And Constraints Editor , a lista de condições refletirá apenas os tipos de condição possíveis para esse tipo de regra específico.
- Condition Value - escolha a primeira condição e depois clique na coluna Condition Value para aceder a uma lista pendente de valores possíveis para esse tipo de condição. À medida que define uma condição, é mostrada uma pré-visualização da consulta atualmente construída na área Query Preview.
O Query Helper
O passo seguinte no desenvolvimento das suas competências de escrita de consultas é utilizar a caixa de diálogo Query Helper . A caixa de diálogo Query Helper inclui uma caixa Query na qual pode introduzir a consulta pretendida, utilizando também os botões de sintaxe abaixo do campo Query (por exemplo, And, Or, <, Not, Like, etc.) bem como uma lista completa de todas as palavras-chave de consulta no campo Categories .
A caixa de diálogo 'Query Helper' fornece assistência aos projetistas que pretendem especificar as suas próprias consultas. É disponibilizada uma breve descrição para cada palavra-chave listada, mas a ajuda online pode ser acedida premindo a tecla F1 enquanto uma palavra-chave está realçada. Isso invoca a caixa de diálogo Altium Designer Documentation Library, que fornece detalhes sobre quais os objetos de um documento que são devolvidos pela palavra-chave realçada, como utilizar essa palavra-chave e um ou mais exemplos da sua utilização.
A caixa de diálogo pode ser acedida das seguintes formas:
- Clique no botão Helper no painel Filter .
PCB Filter acesso ao painel
SCH Filter acesso ao painel
-
Na caixa de diálogo File-based Libraries Search dialog (acedida clicando em
no canto superior direito do painel Components panel e escolhendo File-based Libraries Search no menu pendente), clique no botão Helper .
File-based Libraries Searchacesso à caixa de diálogo
Utilize a secção Query, na parte superior da caixa de diálogo, para compor uma expressão de consulta, usando as funções disponíveis. Na caixa de texto, pode rever e/ou editar mais a expressão de pesquisa. Escreva diretamente na caixa de texto para editar a expressão de pesquisa. Para procurar palavras-chave específicas a adicionar, comece a escrever. Enquanto escreve, a caixa de diálogo apresenta um menu pendente com as palavras-chave disponíveis que correspondem ao texto que escreveu até esse momento. Clique numa palavra-chave para completar automaticamente a sua seleção. Se a palavra-chave pretendida estiver realçada, ao premir Enter a sua seleção também será concluída automaticamente.
Percorra a Categories de palavras-chave disponíveis para encontrar a que pretende. Utilize o campo Mask se não tiver a certeza de qual é a palavra-chave exata. Por exemplo, no Query Helper do editor esquemático, ao introduzir *har no campo Mask serão encontradas palavras-chave que se aplicam especificamente a harnesses, como mostrado na imagem abaixo. Tenha em atenção que o campo Mask funciona tanto no campo de Name da palavra-chave como no campo Description , pelo que pode ser a forma mais rápida de encontrar palavras-chave possíveis.
Faça duplo clique numa palavra-chave na grelha para a adicionar à consulta na posição atual do cursor.
A região central da caixa de diálogo inclui botões de sintaxe que disponibilizam um conjunto de operadores para utilização na construção de uma expressão. Para obter mais informações sobre a função individual de cada botão de sintaxe, consulte a secção Logical Query Expression Operators abaixo. Utilize o botão Check Syntax (canto inferior esquerdo da caixa de diálogo) para verificar se uma expressão está sintaticamente correta.
Consultas Históricas
À medida que introduz e aplica uma nova consulta a partir de um painel de filtro (SCH Filter / SCHLIB Filter, PCB Filter / PCBLIB Filter), esta será adicionada a uma lista de histórico de consultas. Clique no botão History no painel para aceder a esta lista. A caixa de diálogo Expression Manager abre com o separador History ativo.
O separador History da caixa de diálogo Expression Manager apresenta uma lista das expressões de consulta utilizadas anteriormente. Aqui, é mostrado um exemplo de consultas históricas para o Schematic . Passe o rato sobre a imagem para ver uma lista de exemplo semelhante para o PCB.
Para utilizar uma consulta histórica da lista, selecione a respetiva entrada e clique no botão Apply Expression ou faça duplo clique diretamente na entrada. A caixa de diálogo será fechada e a expressão da consulta será carregada na região central do painel de filtro relevante.
Uma consulta histórica pode ser adicionada à lista de consultas favoritas selecionando a respetiva entrada e clicando no botão Add To Favorites. Utilize o botão Clear History se pretender “limpar” a lista do histórico.
Até nove das expressões de consulta usadas mais recentemente da lista estarão disponíveis para utilização no submenu History , acessível com o botão direito do rato no painel de filtro.
Consultas Favoritas
Qualquer consulta definida pode ser adicionada a uma lista de consultas favoritas de duas formas:
- Clique no botão Add To Favorites ou clique com o botão direito na região principal Query Expression e escolha o comando Add to Favorites no menu de contexto para adicionar a expressão de consulta atualmente definida na região central do painel de filtro ativo.
- Selecione uma entrada de consulta histórica no separador History da caixa de diálogo Expression Manager e, em seguida, clique no botão Add To Favorites.
As expressões de consulta favoritas são armazenadas e geridas no separador Favorites da caixa de diálogo Expression Manager. Pode aceder-lhe utilizando o botão Favorites num painel de filtro (SCH Filter / SCHLIB Filter, PCB Filter / PCBLIB Filter) ou clicando com o botão direito do rato na região principal Query Expression de um painel de filtro e escolhendo o comando Organize Favorites no menu de contexto. A partir do espaço de design, a caixa de diálogo pode ser acedida utilizando a tecla de atalho Y e selecionando Organize Favorites no menu pop-up de filtragem.
Aceda a uma lista das suas consultas favoritas a partir do painel de filtro do editor ou a partir do espaço de design, utilizando o menu pop-up de filtragem.
Quando uma expressão de consulta é adicionada à lista Favorites , é-lhe atribuído um nome único. Por predefinição, é atribuído um nome genérico - Favorite_n - em que n é o próximo número disponível não utilizado. O nome de uma entrada pode ser alterado em qualquer altura utilizando um dos seguintes métodos:
- Selecionar a entrada da consulta e depois clicar no botão Rename.
- Selecionar a entrada da consulta e depois escolher o comando Edit no menu do botão direito do rato.
- Selecionar a entrada da consulta e depois clicar novamente dentro do campo Name.
Em cada caso, escreva o novo nome conforme necessário e depois clique fora do campo Name para efetuar a alteração.
Para editar uma expressão de consulta favorita, selecione a respetiva entrada na lista e depois clique no botão Edit (ou clique com o botão direito do rato e escolha Edit no menu de contexto). A caixa de diálogo Edit Favorite será aberta. Utilize a caixa de diálogo para modificar o nome do favorito, alterar a própria expressão e também determinar como os objetos de design são tratados (tanto os que passam pelo filtro como os que não passam).
Modifique uma consulta favorita existente utilizando a caixa de diálogo Edit Favorite, aqui mostrada para Schematic (esquerda) e PCB (direita).
Para remover uma consulta da lista Favorites , selecione a respetiva entrada na lista e depois clique no botão Remove ou escolha o comando Remove no menu do botão direito do rato. Surgirá uma caixa de diálogo a solicitar confirmação da remoção.
Utilizar Consultas Favoritas
Existem três formas de utilizar as suas consultas favoritas:
-
A partir do separador Favorites da caixa de diálogo Expression Manager - selecione a respetiva entrada e clique no botão Apply Expression ou faça duplo clique na entrada. A caixa de diálogo será fechada e a expressão da consulta será carregada na região central do painel de filtro relevante.
-
A partir do topo do menu do botão direito do rato do painel de filtro (estão disponíveis até dez das expressões de consulta adicionadas mais recentemente à lista Favorites ).
-
A partir do menu pop-up de filtragem do espaço de design (prima Y) - até dez expressões de consulta favoritas são listadas no topo do menu. A expressão de consulta escolhida será carregada na região central do painel de filtro relevante.
Utilizar Exemplos Pré-empacotados
Tanto o editor esquemático como o editor PCB incluem um conjunto de consultas de exemplo pré-empacotadas. Estes exemplos estão disponíveis a partir do menu de filtragem - acedido clicando com o botão direito do rato na região de expressão do painel de filtro, ou utilizando a tecla de atalho Y no espaço de design. Passe o cursor sobre Examples para ver o submenu.
Quando seleciona uma entrada no submenu, a consulta subjacente a esse filtro é aplicada. Para ver a consulta real por trás de um dos exemplos, consulte a lista History depois de a aplicar. Também pode aceder a esta lista no menu pop-up de filtragem.
Ferramentas de Construção de Consultas
Talvez a forma mais fácil de escrever uma consulta seja deixar o Altium Designer escrevê-la por si! Pode fazê-lo utilizando a caixa de diálogo Find Similar Objects ou a caixa de diálogo Query Builder .
Caixa de Diálogo Find Similar Objects
Quando utiliza a caixa de diálogo Find Similar Objects, esta gera uma consulta para encontrar os objetos pretendidos. Se a opção Create Expression estiver ativada, essa consulta será apresentada no painel Filter . Esta é uma excelente técnica para aprender diferentes palavras-chave de consulta.
A caixa de diálogo Find Similar Objects abre quando clica com o botão direito do rato em qualquer objeto não mascarado no seu documento de design e depois seleciona Find Similar Objects no menu de contexto.
Imagem da esquerda: versão PCB; imagem da direita: versão SCH
Esta caixa de diálogo permite-lhe encontrar objetos semelhantes àquele sobre o qual clicou com o botão direito do rato e, em seguida, definir quais os atributos do objeto que têm de ser iguais (ou diferentes) para haver correspondência. Suponha que pretende alterar todos os pads GND no seu design. Pode clicar com o botão direito do rato num desses pads, escolher Find Similar Objects e, depois, alterar o campo Net de Any (a predefinição) para Same. Todos os pads GND serão selecionados quando clicar em Apply na caixa de diálogo. Se a opção Create Expression estiver ativada, a seguinte consulta aparecerá no painel Filter : (ObjectKind = 'Pad') And (Net = 'GND').
Como exemplo num esquema, pode alterar a propriedade Color de todos os Power Objects com uma determinada propriedade Text (por exemplo, 'GND') dentro de um documento para o mesmo valor. Por exemplo, a partir de um PCB, pode alterar a propriedade Hole Size de todas as vias com uma determinada propriedade Via Diameter dentro de um documento para o mesmo valor.
Opção Clear Existing
Ative a opção Clear Existing para limpar qualquer seleção existente ou máscara de edição antes de aplicar a pesquisa. Desative esta opção se estiver a realizar pesquisas sucessivas e for desejável que os resultados se acumulem.
Barra de Ferramentas Filter
O Filter Toolbar é disponibilizado para documentos PCB e permite mascarar todos os objetos de um documento, exceto aqueles que têm uma propriedade especificada, ou aqueles que fazem parte de um componente especificado. O campo mais à direita da barra de ferramentas é utilizado para especificar o conteúdo de uma consulta. Pode introduzir a consulta no campo ou pode utilizar a lista pendente para selecionar entre consultas recentes (uma que exista na lista History de consultas). Não é possível especificar quais as opções a utilizar quando as consultas são aplicadas a partir do Filter Toolbar e, em todos os casos, qualquer consulta anterior é limpa e as opções Mask e Zoom são depois utilizadas com a consulta atual. Para utilizar opções de consulta, use o painel Filter , a caixa de diálogo Query Builder, a caixa de diálogo Query Helper ou a caixa de diálogo Find Similar Objects .
Operadores de Expressões de Consulta Lógica
Segue-se um resumo dos operadores que podem ser utilizados ao definir expressões de consulta lógica com a linguagem de consulta.
Operadores Aritméticos
| Operador | Descrição | Exemplo |
|---|---|---|
| + | Operador de adição | NetPinCount + NetViaCount |
| - | Operador de subtração | ArcStopAngle - ArcStartAngle |
| * | Operador de multiplicação | PadXSize_BottomLayer * PadYSize_BottomLayer |
| / | Operador de divisão | HoleDiameter / ViaDiameter |
| Div | Operador de divisão inteira | Color Div 65536 Isto calcula Color dividido por 65536 e a parte fracionária do resultado é descartada |
| Mod | Operador de módulo | Color Mod 256 Isto calcula o resto quando Color é dividido por 256, sem determinar a parte fracionária do resultado |
Operadores Lógicos
| Operador | Descrição | Exemplo |
|---|---|---|
| And | Operador lógico E | IsPad And OnMultiLayer Para ser devolvido, um objeto tem de ser um pad e estar na camada Multi-Layer |
| && | Operador lógico E (precedência inferior) |
IsPad && OnMultiLayer Para ser devolvido, um objeto tem de ser um pad e estar na camada Multi-Layer |
| Or | Operador lógico OU | IsPad Or IsVia Para ser devolvido, um objeto tem de ser um pad ou uma via |
| || | Operador lógico OU (precedência inferior) |
IsPad || IsVia Para ser devolvido, um objeto tem de ser um pad ou uma via |
| Xor | Operador lógico OU EXCLUSIVO | OnMultiLayer Xor (HoleDiameter <> 0) Para ser devolvido, um objeto tem de estar na camada Multi-Layer e ter um Hole Diameter igual a zero, ou não estar na camada Multi-Layer e ter um Hole Diameter diferente de zero. |
| Not | Operador lógico NÃO | Not OnMultiLayer Para ser devolvido, um objeto não pode estar na camada Multi-Layer |
Operadores de Comparação
| Operador | Descrição | Exemplo |
|---|---|---|
| < | Operador Menor Que | HoleDiameter < 40 Para ser devolvido, um objeto tem de ter um Hole Diameter inferior a 40 |
| <= | Operador Menor Ou Igual A | HoleDiameter <= 40 Para ser devolvido, um objeto tem de ter um Hole Diameter inferior ou igual a 40 |
| >= | Operador Maior Ou Igual A | HoleDiameter >= 40 Para ser devolvido, um objeto tem de ter um Hole Diameter superior ou igual a 40 |
| > | Operador Maior Que | HoleDiameter > 40 Para ser devolvido, um objeto tem de ter um Hole Diameter superior a 40 |
| <> | Operador Diferente De | HoleDiameter <> 40 Para ser devolvido, um objeto tem de ter um Hole Diameter diferente de 40 |
| = | Operador Igual A | HoleDiameter = 40 Para ser devolvido, um objeto tem de ter um Hole Diameter igual a 40 |
| Between...And... | Operador de intervalo inclusivo | HoleDiameter Between 30 And 50 Para ser devolvido, um objeto tem de ter um Hole Diameter superior ou igual a 30 e inferior ou igual a 50. |
| Like | Operador Like | Name Like 'ADDR?*' Isto devolve objetos com uma propriedade Name cuja cadeia de caracteres (texto) associada começa por ADDR e contém pelo menos mais um carácter |
Caracteres Wild Card
Os caracteres Wild Card permitem fornecer cadeias de caracteres que não estão especificadas exatamente. Estes caracteres são normalmente utilizados em conjunto com outros caracteres, resultando no fornecimento de cadeias de caracteres parcialmente especificadas. Algumas palavras-chave excecionais podem aceitar parâmetros de cadeia de caracteres que não estejam especificados exatamente, mas, na maioria dos casos, as cadeias só podem conter caracteres Wild Card quando estes são comparados pelo operador Like.
| Operador | Descrição | Exemplo |
|---|---|---|
| ? | Isto pode ser substituído por um único carácter de qualquer tipo | Footprint Like 'DIP1?' Isto devolve objetos que têm uma propriedade Footprint de DIP10, ou DIP12, ou DIP14, etc. |
| * | Isto pode ser substituído por qualquer número de caracteres, cada um dos quais pode ser de qualquer tipo | Footprint Like 'SIP*' Isto devolve objetos que têm uma propriedade Footprint de SIP1, ou SIP12, ou SIP216, etc. (Também são devolvidos quaisquer objetos com uma propriedade Footprint de SIP, porque '*' também pode ser substituído por no caracteres) |
Cadeias Booleanas
| Operador | Descrição | Exemplo |
|---|---|---|
| True | Isto afirma o significado de uma Keyword | IsPad = True Para ser devolvido, um objeto tem de ser um pad |
| False | Isto nega o significado de uma Keyword | IsVia = False Para ser devolvido, um objeto não pode ser uma via |
Parênteses Curvos e Ordem de Precedência
Vale a pena analisar a ordem de precedência definida para os operadores utilizados em expressões de Query lógicas. Afinal, sem esse conhecimento, uma expressão pode não visar os objetos pretendidos.
Os parênteses curvos têm a precedência mais elevada dentro de uma ordem de precedência que foi definida para os vários operadores e que determina a forma como as consultas são interpretadas pelo software (sempre que o utilizador não fornece parênteses curvos). A sequência desta ordem, da mais elevada para a mais baixa, é a seguinte:
- Parênteses curvos ()
- Not
- ^, *, /, Div, Mod, And
- +, -, Or, Xor
- =, <>, <, >, <=, >=
- &&, ||
Funções de Query do Sistema Global

Funções de query do sistema global apresentadas na caixa de diálogo Query Helper
Esta secção detalha as palavras-chave da linguagem de consulta disponíveis nos documentos esquemáticos, PCB e de biblioteca no Altium Designer. Para obter ajuda sobre uma palavra-chave de consulta específica, utilize as seguintes secções recolhíveis ou realce (ou clique dentro de) qualquer palavra-chave indicada - no Query Helper, num painel Filter, ou no campo Query de uma regra de design PCB - e prima F1 para aceder imediatamente à respetiva secção.
Funções Aritméticas
ABS
Resumo
Devolve um número (real) cujo valor é igual ao valor absoluto do valor numérico do parâmetro. Se esse valor numérico for positivo, o número devolvido tem exatamente o mesmo valor; caso contrário, o número devolvido é igual ao valor numérico do parâmetro multiplicado por -1.
Sintaxe
ABS(X : Number / Numeric_String) : Number
Exemplo de Utilização
ABS(2.3)
Devolve 2.3.
ABS(-7.2)
Devolve 7.2.
CEIL
Resumo
Devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro. Se esse valor numérico for um número inteiro exato, o número devolvido tem exatamente o mesmo valor; caso contrário, o número devolvido é o menor número inteiro com valor superior ao valor numérico do parâmetro.
Sintaxe
CEIL(X : Number / Numeric_String) : Number
Exemplo de Utilização
CEIL(5.0)
Devolve 5.
CEIL(5.33)
Devolve 6.
CEIL(-5.0)
Devolve -5.
CEIL(-5.33)
Devolve -5.
FLOOR
Resumo
Devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro. Se esse valor numérico for um número inteiro exato, o número devolvido tem exatamente o mesmo valor; caso contrário, o número devolvido é o maior número inteiro com valor inferior ao valor numérico do parâmetro.
Sintaxe
FLOOR(X : Number / Numeric_String) : Number
Exemplo de Utilização
FLOOR(5.0)
Devolve 5.
FLOOR(5.33)
Devolve 5.
FLOOR(-5.0)
Devolve -5.
FLOOR(-5.33)
Devolve -6.
FRAC
Resumo
Devolve um número (real), cujo valor depende da natureza do valor numérico do parâmetro:
- Se esse valor numérico for positivo mas não for um número inteiro exato, o número devolvido é a diferença entre o valor numérico do parâmetro e o maior número inteiro com valor inferior ao valor numérico do parâmetro.
- Se esse valor numérico for negativo mas não for um número inteiro exato, o número devolvido é a diferença entre o valor numérico do parâmetro e o menor número inteiro com valor superior ao valor numérico do parâmetro.
- Se o valor numérico do parâmetro for um número inteiro exato, o número devolvido é 0.
Sintaxe
FRAC(X : Number / Numeric_String) : Number
Exemplo de Utilização
FRAC(5.0)
Devolve 0.
FRAC(5.33)
Devolve 0.33.
FRAC(-5.0)
Devolve 0.
FRAC(-5.33)
Devolve -0.33.
IIF
Resumo
Esta é uma construção de finalidade especial que contém três consultas. O valor da primeira consulta (entre o parêntese de abertura e a primeira vírgula) é avaliado. Se for True, a segunda consulta (entre as vírgulas) é devolvida; caso contrário, é devolvida a terceira consulta (entre a segunda vírgula e o parêntese de fecho).
Sintaxe
IIF(L : Boolean Query , A : Query , B : Query)
L, A e B são todas cadeias de texto, cada uma especificando uma Consulta; L tem de ser uma Consulta Booleana (ou seja, de natureza a devolver um resultado True ou False).
Exemplo de Utilização
IsArc And IIF(ArcStopAngle - ArcStartAngle >= 0 , ArcStopAngle - ArcStartAngle Between 30 And 60 , ArcStartAngle - ArcStopAngle Between 300 And 330)
Devolve todos os arcos com comprimento de arco superior ou igual a 30 graus e inferior ou igual a 60 graus. (A propriedade de comprimento de arco de um arco é um ângulo determinado subtraindo a sua propriedade Start Angle à sua propriedade Stop Angle. Uma complicação adicional é que a propriedade Stop Angle de um arco pode ser inferior à sua propriedade Start Angle, mas esta Consulta avalia corretamente a verdadeira propriedade de comprimento de arco para todos os objetos arco possíveis.)
IsComponent And IIF(Layer = 'Top Layer' , Rotation <> 0 , Rotation <> 180)
Devolve todos os componentes que estão no lado superior da PCB cuja propriedade Rotation não é 0 graus, e todos os componentes que estão no lado inferior da PCB cuja propriedade Rotation não é 180 graus. (Os objetos de componente só podem residir na camada de sinal Top ou na camada de sinal Bottom, pelo que qualquer componente que não esteja na camada de sinal Top terá então de estar na camada de sinal Bottom.)
INT
Resumo
Devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro:
- Se esse valor numérico for positivo mas não for um número inteiro exato, o número devolvido é o maior número inteiro com valor inferior ao valor numérico do parâmetro.
- Se esse valor numérico for negativo mas não for um número inteiro exato, o número devolvido é o menor número inteiro com valor superior ao valor numérico do parâmetro.
- Se esse valor numérico for um número inteiro exato, o número devolvido tem exatamente o mesmo valor.
Sintaxe
INT(X : Number / Numeric_String) : Number
Exemplo de Utilização
INT(5.0)
Devolve 5.
INT(5.33)
Devolve 5.
INT(-5.0)
Devolve -5.
INT(-5.33)
Devolve -5.
Dicas
Este é um alias para a função aritmética TRUNC.
MAX
Resumo
Devolve um número (real) cujo valor é igual ao valor máximo de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, podendo ser fornecido qualquer número de parâmetros.
Sintaxe
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de Utilização
MAX(2)
Devolve 2.
MAX(7,2,3)
Devolve 7.
Dicas
Tem de ser fornecido pelo menos um parâmetro.
MIN
Resumo
Devolve um número (real) cujo valor é igual ao valor mínimo de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, podendo ser fornecido qualquer número de parâmetros.
Sintaxe
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de Utilização
MIN(2)
Devolve 2.
MIN(7,2,3)
Devolve 2.
Dicas
Tem de ser fornecido pelo menos um parâmetro.
POWER
Resumo
Devolve um número (real) cujo valor é igual ao valor numérico do primeiro parâmetro elevado à potência do valor numérico do segundo parâmetro.
Sintaxe
POWER(X : Number / Numeric_String , Y : Number / Numeric_String) : Number
Exemplo de Utilização
POWER(3,2)
Devolve 9.
POWER(32,0.2)
Devolve 2.
POWER(16,-0.5)
Devolve 0.25.
ROUND
Resumo
Devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro:
- Se esse valor numérico for um número inteiro exato, o número devolvido tem exatamente o mesmo valor.
- Se esse valor numérico não for um número inteiro exato, o número devolvido é o número inteiro cujo valor está mais próximo do valor numérico do parâmetro. Os números positivos que estejam exatamente a meio entre números inteiros adjacentes são arredondados upwards, enquanto os números negativos que estejam exatamente a meio entre números inteiros adjacentes são arredondados downwards.
Sintaxe
ROUND(X : Number / Numeric_String) : Number
Exemplo de Utilização
ROUND(5.0)
Devolve 5.
ROUND(5.33)
Devolve 5.
ROUND(5.5)
Devolve 6 (Arredondado para cima).
ROUND(5.66)
Devolve 6.
ROUND(-5.0)
Devolve -5.
ROUND(-5.33)
Devolve -5.
ROUND(-5.5)
Devolve -6 (Arredondado para baixo).
ROUND(-5.66)
Devolve -6.
SIGN
Resumo
Devolve o valor do sinal do parâmetro fornecido. Ou seja, devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro:
- Se esse valor numérico for positivo, o número devolvido é 1.
- Se esse valor numérico for negativo, o número devolvido é -1.
- Se esse valor numérico for exatamente zero, o número devolvido é 0.
Sintaxe
SIGN(X : Number / Numeric_String) : Number
Exemplo de Utilização
SIGN(5.33)
Devolve 1.
SIGN(-5.33)
Devolve -1.
SIGN(0)
Devolve 0.
SQR
Resumo
Devolve um número (real) cujo valor é igual ao quadrado do valor numérico do parâmetro.
Sintaxe
SQR(X : Number / Numeric_String) : Number
Exemplo de Utilização
SQR(2)
Devolve 4.
SQR(14.1)
Devolve 198.81.
SQR(-1.5)
Devolve 2.25.
SQRT
Resumo
Devolve um número (real) cujo valor é igual à raiz quadrada (positiva) do valor numérico do parâmetro.
Sintaxe
SQRT(X : Number / Numeric_String) : Number
Exemplo de Utilização
SQRT(4)
Devolve 2.
SQRT(10)
Devolve 3.1623.
TRUNC
Resumo
Devolve um número inteiro, cujo valor depende da natureza do valor numérico do parâmetro:
- Se esse valor numérico for positivo mas não for um número inteiro exato, o número devolvido é o maior inteiro com valor inferior ao valor numérico do parâmetro.
- Se esse valor numérico for negativo mas não for um número inteiro exato, o número devolvido é o menor inteiro com valor superior ao valor numérico do parâmetro.
- Se esse valor numérico for um número inteiro exato, o número devolvido tem exatamente o mesmo valor.
Sintaxe
TRUNC(X : Number / Numeric_String) : Number
Exemplo de Utilização
TRUNC(5.0)
Devolve 5.
TRUNC(5.33)
Devolve 5.
TRUNC(-5.0)
Devolve -5.
TRUNC(-5.33)
Devolve -5.
Dicas
Este é um alias para a função aritmética INT.
ZERO
Resumo
Devolve um número inteiro cujo valor é 0 ou 1, dependendo do valor numérico do parâmetro. Se esse valor numérico for zero, o número devolvido é 0; caso contrário, o número devolvido é 1.
Sintaxe
ZERO(X : Number / Numeric_String) : Number
Exemplo de Utilização
ZERO(5.33)
Devolve 1.
ZERO(-5.33)
Devolve 1.
ZERO(0)
Devolve 0.
Funções Trigonométricas
ACOS
Resumo
Devolve um número (real) cujo valor é igual ao ângulo do cosseno inverso do número especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
ACOS(X : Number / Numeric_String) : Number
Exemplo de Utilização
ACOS(0)
Devolve 1.5708.
ACOS(0.5)
Devolve 1.0472.
ACOS(1)
Devolve 0.
ASIN
Resumo
Devolve um número (real) cujo valor é igual ao ângulo do seno inverso do número especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
ASIN(X : Number / Numeric_String) : Number
Exemplo de Utilização
ASIN(0)
Devolve 0.
ASIN(0.5)
Devolve 0.5236.
ASIN(1)
Devolve 1.5708.
ATAN
Resumo
Devolve um número (real) cujo valor é igual ao ângulo da tangente inversa do número especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
ATAN(X : Number / Numeric_String) : Number
Exemplo de Utilização
ATAN(0)
Devolve 0.
ATAN(1)
Devolve 0.7854.
ATAN(2.5)
Devolve 1.1903.
COS
Resumo
Devolve um número (real) cujo valor é igual ao cosseno do ângulo especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
COS(X : Number / Numeric_String) : Number
Exemplo de Utilização
COS(0)
Devolve 1.
COS(0.8)
Devolve 0.6967.
COS(1.57)
Devolve 0.0008.
COSH
Resumo
Devolve um número (real) cujo valor é igual ao cosseno hiperbólico do valor numérico do parâmetro.
Sintaxe
COSH(X : Number / Numeric_String) : Number
Exemplo de Utilização
COSH(TextHeight / TextWidth) < 70.5
Devolve objetos para os quais o cosseno hiperbólico da razão entre a distância TextHeight e a distância TextWidth é inferior a 70.5. (Isto é equivalente a devolver objetos para os quais a razão entre a distância TextHeight e a distância TextWidth é inferior a 4.9487).
(TextHeight / TextWidth) >= COSH(2.3)
Devolve objetos para os quais a razão entre a distância TextHeight e a distância TextWidth é igual ou superior ao cosseno hiperbólico de 2.3 (que é 5.0372).
COTAN
Resumo
Devolve um número (real) cujo valor é igual à cotangente do ângulo especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
COTAN(X : Number / Numeric_String) : Number
Exemplo de Utilização
COTAN(0.1)
Devolve 9.9666.
COTAN(0.8)
Devolve 0.9712.
COTAN(1.57)
Devolve 0.0008.
SIN
Resumo
Devolve um número (real) cujo valor é igual ao seno do ângulo especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
SIN(X : Number / Numeric_String) : Number
Exemplo de Utilização
SIN(0)
Devolve 0.
SIN(0.8)
Devolve 0.7174.
SIN(1.57)
Devolve 1.0.
SINH
Resumo
Devolve um número (real) cujo valor é igual ao seno hiperbólico do valor numérico do parâmetro.
Sintaxe
SINH(X : Number / Numeric_String) : Number
Exemplo de Utilização
SINH(TextWidth / TextHeight) < 0.17
Devolve objetos para os quais o seno hiperbólico da razão entre a distância TextWidth e a distância TextHeight é inferior a 0.17. (Isto é equivalente a devolver objetos para os quais a razão entre a distância TextWidth e a distância TextHeight é inferior a 0.1692).
(TextWidth / TextHeight) >= SINH(0.2)
Devolve objetos para os quais a razão entre a distância TextWidth e a distância TextHeight é igual ou superior ao seno hiperbólico de 0.2 (que é 0.2013).
TAN
Resumo
Devolve um número (real) cujo valor é igual à tangente do ângulo especificado pelo valor numérico do parâmetro; esse ângulo está em radianos (e não em graus).
Sintaxe
TAN(X : Number / Numeric_String) : Number)
Exemplo de Utilização
TAN(0)
Devolve 0.
TAN(0.8)
Devolve 1.0296.
TAN(1.57)
Devolve 1255.7656.
TANH
Resumo
Devolve um número (real) cujo valor é igual à tangente hiperbólica do valor numérico do parâmetro.
Sintaxe
TANH(X : Number / Numeric_String) : Number
Exemplo de Utilização
TANH(TextWidth / TextHeight) < 0.17
Devolve objetos para os quais a tangente hiperbólica da razão entre a distância TextWidth e a distância TextHeight é inferior a 0.17. (Isto é equivalente a devolver objetos para os quais a razão entre a distância TextWidth e a distância TextHeight é inferior a 0.1717).
(TextWidth / TextHeight) >= TANH(0.2)
Devolve objetos para os quais a razão entre a distância TextWidth e a distância TextHeight é igual ou superior à tangente hiperbólica de 0.2 (que é 0.1974).
Funções Exponenciais e Logarítmicas
EXP
Resumo
Devolve um número (real) cujo valor é igual a e elevado à potência do valor numérico do parâmetro. (O número e é a base dos logaritmos naturais e é aproximadamente igual a 2.7183).
Sintaxe
EXP(X : Number / Numeric_String) : Number
Exemplo de Utilização
EXP(0)
Devolve 1.
EXP(1)
Devolve 2.7183.
LG
Resumo
Devolve um número (real) cujo valor é igual ao logaritmo de base 10 do valor numérico do parâmetro.
Sintaxe
LG(X : Number / Numeric_String) : Number
Exemplo de Utilização
LG(1)
Devolve 0.
LG(10)
Devolve 1.
LG(25)
Devolve 1.3979.
LN
Resumo
Devolve um número (real) cujo valor é igual ao logaritmo natural (ou de base e) do valor numérico do parâmetro. (O número e é 2.7183).
Sintaxe
LN(X : Number / Numeric_String) : Number
Exemplo de Utilização
LN(1)
Devolve 0.
LN(2)
Devolve 0.6931.
LN(10)
Devolve 2.3026.
LOG
Resumo
Devolve um número (real) cujo valor é igual ao logaritmo de base 2 do valor numérico do parâmetro.
Sintaxe
LOG(X : Number / Numeric_String) : Number
Exemplo de Utilização
LOG(1)
Devolve 0.
LOG(2)
Devolve 1.
LOG(8)
Devolve 3.
LOG(10)
Devolve 3.3219.
Funções Agregadas
AVG
Resumo
Devolve um número (real) cujo valor é igual ao valor médio de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, e pode ser fornecido qualquer número de parâmetros.
Sintaxe
AVG(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de Utilização
AVG(2)
Devolve 2.
AVG(7,2,3)
Devolve 4.
Dicas
- Tem de ser fornecido pelo menos um parâmetro.
MAX
Resumo
Devolve um número (real) cujo valor é igual ao valor máximo de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, e pode ser fornecido qualquer número de parâmetros.
Sintaxe
MAX(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de Utilização
MAX(2)
Devolve 2.
MAX(7,2,3)
Devolve 7.
Dicas
É necessário fornecer pelo menos um parâmetro.
MIN
Resumo
Devolve um número (real) cujo valor é igual ao valor mínimo de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, podendo ser fornecido qualquer número de parâmetros.
Sintaxe
MIN(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de utilização
MIN(2)
Devolve 2.
MIN(7,2,3)
Devolve 2.
Dicas
É necessário fornecer pelo menos um parâmetro.
PROD
Resumo
Devolve um número (real) cujo valor é igual ao produto de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, podendo ser fornecido qualquer número de parâmetros.
Sintaxe
PROD(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de utilização
PROD(2)
Devolve 2.
PROD(7,2,3)
Devolve 42.
Dicas
É necessário fornecer pelo menos um parâmetro.
SUM
Resumo
Devolve um número (real) cujo valor é igual à soma de todos os parâmetros fornecidos. Cada parâmetro tem de ser um número ou uma cadeia numérica, podendo ser fornecido qualquer número de parâmetros.
Sintaxe
SUM(N1 : Number / Numeric_String, [N2] : Number / Numeric_String, ...) : Number
Exemplo de utilização
SUM(2)
Devolve 2.
SUM(7,2,3)
Devolve 12.
Dicas
É necessário fornecer pelo menos um parâmetro.
Funções do sistema
Copy
Resumo
Devolve uma subcadeia de uma cadeia. É possível especificar quantos caracteres estarão contidos na subcadeia devolvida e a posição na cadeia que será o primeiro carácter da subcadeia devolvida.
Sintaxe
Copy(S : String , Index : Integer , Count : Integer) : String
S é uma expressão do tipo cadeia. Index e Count são expressões do tipo inteiro. Copy devolve uma subcadeia que contém Count caracteres a partir de S[Index].
Se Index for maior do que o comprimento de S, Copy devolve uma cadeia vazia.
Se Count especificar mais caracteres do que os disponíveis, apenas são devolvidos os caracteres de S[Index] até ao fim de S.
Exemplo de utilização
Copy('Cats and dogs',1,1)
Devolve 'C'. (Devolve 1 carácter, a partir da 1.ª posição na cadeia).
Copy('Cats and dogs',2,1)
Devolve 'a'. (Devolve 1 carácter, a partir da 2.ª posição na cadeia).
Copy('Cats and dogs',13,1)
Devolve 's'. (Devolve 1 carácter, a partir da 13.ª posição na cadeia).
Copy('Cats and dogs',14,1)
Devolve '' (uma cadeia vazia). (Devolve 1 carácter, a partir da 14.ª posição na cadeia; no entanto, existem apenas 13 caracteres na cadeia, pelo que é devolvida uma cadeia vazia).
Copy('Cats and dogs',1,2)
Devolve 'Ca'. (Devolve 2 caracteres, a partir da 1.ª posição na cadeia).
Copy('Cats and dogs',2,2)
Devolve 'at'. (Devolve 2 caracteres, a partir da 2.ª posição na cadeia).
Copy('Cats and dogs',12,2)
Devolve 'gs'. (Devolve 2 caracteres, a partir da 12.ª posição na cadeia).
Copy('Cats and dogs',13,2)
Devolve 's'. (Devolve 2 caracteres, a partir da 13.ª posição na cadeia; no entanto, existem apenas 13 caracteres na cadeia, pelo que apenas é devolvido 1 carácter).
Copy('Cats and dogs',15,2)
Devolve '' (uma cadeia vazia). (Devolve 2 caracteres, a partir da 15.ª posição na cadeia; no entanto, existem apenas 13 caracteres na cadeia, pelo que é devolvida uma cadeia vazia).
Copy('Cats and dogs',1,6)
Devolve 'Cats a'. (Devolve 6 caracteres, a partir da 1.ª posição na cadeia).
Copy('Cats and dogs',5,9)
Devolve ' and dogs'. (Devolve 9 caracteres, a partir da 5.ª posição na cadeia).
Copy('Cats and dogs',8,5)
Devolve 'd dog'. (Devolve 5 caracteres, a partir da 8.ª posição na cadeia).
Copy('Cats and dogs',8,6)
Devolve 'd dogs'. (Devolve 6 caracteres, a partir da 8.ª posição na cadeia).
Copy('Cats and dogs',8,7)
Devolve 'd dogs'. (Devolve 7 caracteres, a partir da 8.ª posição na cadeia; no entanto, existem apenas 13 caracteres na cadeia, pelo que apenas são devolvidos 6 caracteres).
Length
Resumo
Devolve o número de caracteres contidos numa cadeia.
Sintaxe
Length(S : String) : Integer
S é a cadeia cujo número de caracteres será devolvido.
Exemplo de utilização
Length(Name) Between 4 And 7
Devolve objetos que têm uma propriedade Name que contém entre 4 e 7 caracteres.
Length('Cat')
Devolve 3.
Length('Darryll')
Devolve 7.
Length('Cats and dogs')
Devolve 13.
Length('')
Devolve 0.
Pos
Resumo
Devolve o valor do índice do primeiro carácter de uma subcadeia especificada que ocorre numa determinada cadeia.
Sintaxe
Pos(Substr : String , S : String) : Integer
Pos procura uma subcadeia, Substr, dentro de uma cadeia, S. Substr e S são expressões do tipo cadeia. É devolvido um valor inteiro que corresponde ao índice do primeiro carácter de Substr.
Exemplo de utilização
Pos('T',Name) = 1
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada contém pela primeira vez 'T' na sua primeira posição; 'T1' e 'Time Table' são exemplos dessas cadeias. ('T' encontra-se duas vezes na cadeia 'Time Table', mas a primeira ocorrência está na sua primeira posição.)
Pos('A',Name) = 2
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada contém pela primeira vez 'A' na sua segunda posição; 'RA1' e 'CABLE CHART' são exemplos dessas cadeias.
Pos('B',Name) = 0
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada não contém 'B' em nenhuma posição; 'D1' e 'Time Table' são exemplos dessas cadeias. (A cadeia 'Time Table' contém 'b' na sua oitava posição, mas Pos é sensível a maiúsculas e minúsculas.)
Pos('D',Name) > 0
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada contém 'D' em pelo menos uma posição e em qualquer localização; 'Data Chart', 'U1D' e 'Install either D1 and D2 or D3 and D4, but never install all of these.' são exemplos dessas cadeias.
Pos('Con',Name) = 1
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada contém pela primeira vez 'Con' na primeira, segunda e terceira posições; 'Concatenate' é um exemplo dessa cadeia. (A primeira ocorrência de 'Con' em 'Concatenate' corresponde aos seus primeiros três caracteres; o primeiro carácter em 'Con' é 'C' e a sua posição é o primeiro carácter de 'Concatenate'.)
Pos('ate',Name) = 5
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada contém pela primeira vez 'ate' na quinta, sexta e sétima posições; 'Concatenate' é um exemplo dessa cadeia. (A primeira ocorrência de 'ate' em 'Concatenate' corresponde ao quinto até ao sétimo carácter; o primeiro carácter em 'ate' é 'a' e a sua posição é o quinto carácter de 'Concatenate'.)
Pos('ate',Name) = 0
Devolve todos os objetos que têm uma propriedade Name cuja cadeia associada não contém 'ate' em lado nenhum; 'C1' e 'TIME:' são exemplos dessas cadeias.
Pred
Resumo
Devolve um número (real) cujo valor é igual ao valor numérico do parâmetro menos 1,0.
Sintaxe
Pred(X : Number / Numeric_String) : Number
Exemplo de utilização
Pred(4.1)
Devolve 3.1.
Pred(41.313)
Devolve 40.313.
Random
Resumo
Devolve um número aleatório entre 0 e X-1.
Sintaxe
Random(X) : Number
Exemplo de utilização
Random(10)
Devolve um valor entre 0 e 9.
Random(100)
Devolve um valor entre 0 e 99.
Succ
Resumo
Devolve um número (real) cujo valor é igual ao valor numérico do parâmetro mais 1,0.
Sintaxe
Succ(X : Number / Numeric_String) : Number
Exemplo de utilização
Succ(2.1)
Devolve 3.1.
Succ(41.313)
Devolve 42.313.