Skip to content

jsl/landpatterns/keep-outs

Package name: jsl/landpatterns/keep-outs

Summary

Data Types

IKeepoutOverlay

Application Layer Keepout Generator Interface

Multis

Function Description
shape Retrieve the Keepout Shape for a particular Copper Layer
make-keepout-overlay Keepout Overlay Generator

Methods

Function Description
make-keepout-overlay Default Implementation

KeepoutCreator

Interface Type for Keepout Creation

Multis

Function Description
build-keep-out Build the keep-out layer geometry in the Virtual LP Scene Graph

IntraPadKeepOut

Keepout Creator for Intra-pad Keepouts

Constructors

Function Description
IntraPadKeepOut (+ 1) Constructor for defstruct IntraPadKeepOut

KeepoutOverlay

Constant Shape Keepout Overlay Generator

Functions

Function Description
KeepoutOverlay Constructor for KeepoutOverlay

General Definitions

Function Description
keepout-overlay Keepout Overlay Object Definition
Variable Description
DEF_KEEPOUT_LAYER_SET

Definitions

IKeepoutOverlay

Application Layer Keepout Generator Interface

public deftype IKeepoutOverlay

This type defines an interface for application layer keepout generators. The idea is that sometimes, you will want to have a keepout placed over a component - but you don't want to change the pcb-component definition to introduce this keepout there.

For example - if your application requires a 32 layer board and you want keepouts on layers 16 and 19 - it may not make sense to encode this in the pcb-component.

Multis

shape

Retrieve the Keepout Shape for a particular Copper Layer

public defmulti shape (k:IKeepoutOverlay, lyId:LayerIndex) -> Shape

  • k: IKeepoutOverlay - KeepoutOverlay object
  • lyId: LayerIndex - Optionally create custom shapes based on the desired layer. See KeepoutOverlay for a constant shape variant.
  • Returns Shape - geometry for the constructed keepout region. This shape can be offset with a Pose for offset keepouts.

make-keepout-overlay

Keepout Overlay Generator

public defmulti make-keepout-overlay (k:IKeepoutOverlay, other:JITXObject -- layer-set:Tuple<LayerIndex> = ?, side:Side = ?, name:String = ?) -> False

  • k: IKeepoutOverlay - KeepoutOverlay object
  • other: JITXObject - Component or Module Instance which the constructed keepout object will track.
  • layer-set: Tuple<LayerIndex> - Set of copper layers that keepouts will be drawn on. By default this is only the top layer.
  • side: Side - Which side of the board to work from
  • name: String - Optional name to apply to the keepout object. This is useful for differentiating multiple keepout objects in a board.
  • Returns False

This method must be called from a pcb-module context. This method will construct a Keepout object and then place it in the current pcb-module context relative to the passed other instance. The Keepout object is basically a pcb-module that only contains layer statements.

Methods

make-keepout-overlay

Default Implementation

defmethod make-keepout-overlay (k:IKeepoutOverlay, other:JITXObject -- layer-set:Tuple<LayerIndex> = ?, side:Side = ?, name:String = ?)

KeepoutCreator

Interface Type for Keepout Creation

public deftype KeepoutCreator

Custom keepout generators can be built by inheriting from this type and then implementing the interface

Multis

build-keep-out

Build the keep-out layer geometry in the Virtual LP Scene Graph

public defmulti build-keep-out (kc:KeepoutCreator, vp:VirtualLP -- side:Side = ?) -> False

  • Returns False

This function will generate the necessary keep-out artwork in the virtual LP scene graph.

IntraPadKeepOut

Keepout Creator for Intra-pad Keepouts

public defstruct IntraPadKeepOut <: KeepoutCreator
    layer-set: Tuple<LayerIndex>
    shrink-by: Double|Percentage|Dims

  • layer-set: Tuple<LayerIndex> - Set of copper layers where the keepout will be placed. The most obvious layer would be the top layer underneath the component. But for some applications, we might want to add keepouts in the reference plane underneath the component as well.

    The default value is the top layer LayerIndex(0)

  • shrink-by: Double|Percentage|Dims - Shrink the created keepout By default, this type will create a keepout that is the same size as the interstitual region between the pads of the SMT component. This parameter can be used to make this keepout region smaller (or larger if negative). By default this value is 0.0.

For SMT chip components like resistors and capacitors, we often want to restrict copper underneath the component. This can be for SI reasons, manufacturing reasons, etc.

Sometimes we want to restrict the ground plane on an internal layer underneath these components.

This type is used to contruct these keepouts on any layer of the board design.

Constructors

IntraPadKeepOut

Constructor for defstruct IntraPadKeepOut

public defn IntraPadKeepOut (layer-set:Tuple<LayerIndex>, shrink-by:Double|Percentage|Dims = ?)

IntraPadKeepOut

Constructor for defstruct IntraPadKeepOut

public defn IntraPadKeepOut ( -- layer-set:Tuple<LayerIndex> = ?, shrink-by:Double|Percentage|Dims = ?)

KeepoutOverlay

Constant Shape Keepout Overlay Generator

public deftype KeepoutOverlay <: IKeepoutOverlay

This generator implements the IKeepoutOverlay interface and constructs keepouts of the same shape on all requested copper layers.

Functions

KeepoutOverlay

Constructor for KeepoutOverlay

public defn KeepoutOverlay (const-shape:Shape) -> KeepoutOverlay

  • const-shape: Shape - Constant Geometry that will be applied on all copper layers requested.
  • Returns KeepoutOverlay

General Definitions

keepout-overlay

Keepout Overlay Object Definition

public pcb-module keepout-overlay (layer-set:Tuple<KeyValue<LayerIndex, Shape>> -- name?:Maybe<String> = ?)

  • layer-set: Tuple<KeyValue<LayerIndex, Shape>> - Set of copper => Shape mappings that will be constructed as keepouts
  • name?: Maybe<String> - Optional Name for the module.

This module is used to construct the keepout-overlay instance in make-keepout-overlay It primarily consists of layer statements on ForbidCopper(layerId).

DEF_KEEPOUT_LAYER_SET

public val DEF_KEEPOUT_LAYER_SET

Related Packages

Forwarded by packages: jsl/landpatterns/framework, jsl/landpatterns