Altium 18 PCB Filter Select X * excepto * si Y

0

Estoy intentando crear un filtro de PCB que me permita seleccionar todo en la placa, excepto los componentes que tienen un tamaño de paquete de 0402 o 0603. Tenemos un parámetro en nuestras partes pasivas llamado "Paquete" que puede ser '0402' o '0603', por lo que esta sería una manera perfecta de aislar estos componentes.

Puedo seleccionarlos fácilmente usando esta consulta de filtro:

HasParameterValue('Package','0402') And HasParameterValue('Package','0603')

Sin embargo, si intento invertir esto, selecciona todo lo que hay en la placa, incluidos los componentes 0402 y 0603. Supongo que esto se debe a que el operador No invierte los resultados devueltos por HasParameterValue() ...

Ya que tenemos muchas huellas que son 0603 y 0402, y como podrían cambiar en el futuro, no quiero especificar una larga lista de Footprint = 'blah0402blah' . Así que lo intenté:

Not (Footprint LIKE '*0402*')

El No tiene el mismo efecto aquí. Intenté hacer " Not LIKE " pero eso no es sintácticamente válido.

¿Alguien sabe de una manera de eliminar o excepto los resultados de la consulta basados en valores de Parámetro o un método similar?

Editar: @LoganF Lo he probado con varias combinaciones parantéticas. Lo intenté de esta manera sin éxito:

(Not HasParameterValue('Package','0402')) And (Not HasParameterValue('Package','0603'))
    
pregunta David Bieber

2 respuestas

1

Buscaré una respuesta mediante consultas de filtro cuando esté frente a Altium 18. Actualmente tengo Altium 15 disponible, que no tiene la función HasParameterValue (), pero sí tiene HasParameter (). He encontrado que puedes usar

IsPart and not (HasParameter('Value','10k') or HasParameter('Value','1k'))

para lograr un resultado similar, pero no sé si esto se mantendrá en Altium 18, ya que el equivalente de Altium 15 de su filtro de ejemplo:

HasParameterValue('Value','10k') and HasParameterValue('Value','0R')

parece ser o en lugar de y:

HasParameter('Value','10k') or HasParameter('Value','0R')

Sin embargo, en cualquier versión reciente de Altium puede usar "encontrar objetos similares", que es muy poderoso.

el método más rápido, ya que ya tiene una consulta que selecciona sus partes no deseadas:

  1. ejecuta la consulta para seleccionar tus partes 0603 y 0402

  2. haga clic con el botón derecho en cualquier parte seleccionada y elija "buscar objetos similares"

  3. cambie el atributo "seleccionado" de "cualquiera" a "diferente" (última fila en "gráfico")
  4. establezca el alcance: en Altium 18, obtiene "proyecto actual / documento actual / documentos abiertos" antes de 18, solo obtiene "documento actual / documentos abiertos"
  5. asegúrese de que la opción "borrar existente" y "seleccionar coincidencia" estén marcadas.

cuando lo ejecute, invertirá la selección. es posible que desee limitar los objetos configurando el tipo de componente de "cualquiera" a "igual", tipo de objeto = parte debe configurarse en "igual" de forma predeterminada.

Actualizaré esto el lunes si encuentro una solución basada en consultas

    
respondido por el Loganf
1

Mi conjetura es que cuando intentaste invertir la lógica, olvidaste cambiar de AND a OR. En otras palabras, su consulta para seleccionar los componentes es

HasParameterValue('Package','0402') AND HasParameterValue('Package','0603')

Cuando inviertes la lógica que necesitas tener

NOT (HasParameterValue('Package','0402') **OR** HasParameterValue('Package','0603'))

    
respondido por el DerStrom8

Lea otras preguntas en las etiquetas