A linguagem de consulta também é utilizada na caixa de diálogo PCB Rules and Constraints Editor para definir âmbitos de regras de desenho (consulte a página Defining, Scoping & Managing PCB Design Rules para saber mais). Tenha em atenção que o conjunto de objetos abrangidos por uma regra de desenho depende não só da consulta, mas também do tipo de regra (por exemplo, uma regra Width abrange apenas pistas, uma regra Routing Via Style abrange apenas vias, etc.), pelo que os resultados de realce/âmbito dos objetos ao utilizar a mesma expressão de consulta no painel Filter e no âmbito da regra podem ser diferentes.
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.
Quando a caixa de diálogo Query Builder é acedida a partir da caixa de diálogo PCB Rules and Constraints Editor, apresentará apenas opções adequadas a esse tipo de regra.
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.
-
Adicione outras condições para restringir, conforme necessário, o conjunto de objetos de conceção pretendido. As condições podem ser combinadas com AND ou OR. O operador lógico predefinido é AND.
-
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.
-
A caixa de diálogo Query Builder (Building Query from Board ) é um método mais simples de construir uma consulta utilizando tipos e valores de condição sensíveis que apenas lhe permitem construir com '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.
-
Pode ajustar qualquer condição na sua cadeia de consulta a qualquer momento clicando na entrada dessa condição na coluna Condition Type/Operator e escolhendo depois a nova condição pretendida a partir das entradas disponíveis na lista pendente. A pré-visualização da consulta será atualizada em conformidade.
-
Utilize os atalhos de teclado Ctrl+Up Arrow e Ctrl+Down Arrow para mover a entrada de condição selecionada para cima ou para baixo na estrutura.
-
Utilize os atalhos de teclado Ctrl+Right Arrow e Ctrl+Left Arrow para aumentar ou diminuir o avanço na posição selecionada da estrutura (adicionar/remover parênteses).
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
O botão Helper está disponível depois de clicar em Advanced na caixa de diálogo File-based Libraries Search.
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.
Se premir F1 quando uma palavra-chave estiver realçada ou quando o cursor estiver dentro de uma palavra-chave que introduziu, será aberta a documentação dessa palavra-chave. Este é o recurso mais valioso para aprender o comportamento básico de cada palavra-chave de consulta.
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.
Tenha em atenção que o conteúdo da lista History é comum aos painéis de filtro de um domínio de design (e acessível a partir deles) (SCH Filter / SCHLIB Filter no domínio de edição Schematic; PCB Filter / PCBLIB Filter no domínio de edição PCB). Algumas expressões de consulta poderão não devolver resultados quando utilizadas no Schematic Editor, especialmente se tiverem sido criadas para visar objetos que só estão disponíveis no Schematic Library Editor.
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.
Tenha em atenção que o conteúdo da lista Favorites é comum aos painéis de filtro de um domínio de design (e acessível a partir deles) (SCH Filter / SCHLIB Filter no domínio de edição Schematic; PCB Filter / PCBLIB Filter no domínio de edição PCB). Algumas expressões de consulta poderão não devolver resultados quando utilizadas no Schematic Editor, especialmente se tiverem sido criadas para visar objetos que só estão disponíveis no Schematic Library Editor.
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.
Também pode definir uma tecla de atalho para um favorito personalizando o menu Filter. Para obter mais informações sobre como personalizar o ambiente do Altium Designer, consulte
Configuring and Customizing Altium Designer.
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.
Para limpar a filtragem, prima
Shift+C no espaço de design ou clique com o botão direito do rato no espaço de design e selecione o comando
Clear Filter no menu de contexto.
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 .
-
Se a placa não tiver routing, as ligações lógicas associadas à net escolhida tornar-se-ão visíveis quando o filtro for aplicado. Se a placa tiver routing, a pista roteada associada à net escolhida tornar-se-á visível quando o filtro for aplicado.
-
Com a máscara aplicada, todos os objetos fora do âmbito do filtro ficarão indisponíveis para seleção/edição. A extensão da máscara aplicada pode ser ajustada manualmente através da barra deslizante Masked Objects, acedida na secção Mask and Dim Settings do separador View Options do painel View Configuration panel.
-
Pode limpar manualmente um filtro existente (e aplicado) a qualquer momento utilizando o atalho de teclado Shift+C ou clicando no botão
na barra de ferramentas Filter .
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 |
Ao utilizar o operador Not em expressões de consulta no editor PCB para excluir primitivas de um tipo específico, tenha em atenção que essas primitivas não serão excluídas se fizerem parte de objetos de grupo e esses objetos de grupo também não forem excluídos pela expressão. Por exemplo, a expressão de consulta Not IsPad devolve todos os objetos exceto objetos pad livres, mas devolve objetos de componente que podem incluir pads, pelo que os pads em componentes serão devolvidos por esta expressão. Além disso, os pads podem estar incluídos em nets, que também são considerados objetos de grupo no editor PCB. Para excluir todos os objetos pad, deve ser utilizada a expressão de consulta Not IsPad And Not IsComponent And Not IsNet.
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
-
=, <>, <, >, <=, >=
-
&&, ||
Esta ordem de precedência é semelhante à utilizada em linguagens do tipo Pascal. As ambiguidades são resolvidas da esquerda para a direita. Os parênteses curvos são avaliados de dentro para fora e os níveis iguais são avaliados da esquerda para a direita.
É altamente recomendável utilizar parênteses curvos sempre que exista qualquer possibilidade de a consulta poder não ser interpretada corretamente. A utilização generosa de parênteses curvos elimina dúvidas e torna as consultas resultantes mais fáceis de ler por outras pessoas.
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.
Para obter detalhes sobre as palavras-chave da linguagem de consulta disponíveis em editores e ferramentas específicos no Altium Designer, consulte as seguintes páginas:
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).
Esta palavra-chave é semelhante, em conceito, às construções "If ... Then ... Else ..." disponibilizadas por muitas linguagens de programação.
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).
IIF(L,A,B) tem um resultado idêntico ao da Consulta composta por ((L = True) And A) Or ((L = False) And B). Como tal, é especialmente útil quando L é de natureza complexa, pois só precisa de ser especificado uma vez.
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.
Pos é sensível a maiúsculas e minúsculas. Se Substr não for encontrado, Pos devolve zero.
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.