Setup fields - HendriXML/KiCad-BOM-reporter GitHub Wiki

Setup - fields

Field definitions

Fields are defined and mapped with names in script: Script.Project.Libs\BOM enumerations.xml

    <Variable Identifier="cCustomFieldUnknown" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Unknown, 'Unknown')"/>
    <Variable Identifier="cCustomFieldComponentKind" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ComponentKind, 'ComponentKind')"/>
    <Variable Identifier="cCustomFieldValue" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Value, 'Value')"/>
    <Variable Identifier="cCustomFieldValueMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ValueMin, 'Value.Min')"/>
    <Variable Identifier="cCustomFieldValueMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ValueMax, 'Value.Max')"/>
    <Variable Identifier="cCustomFieldFootprint" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Footprint, 'Footprint')"/>
    <Variable Identifier="cCustomFieldFootprintMask" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.FootprintMask, 'Footprint.Mask')"/>
    <Variable Identifier="cCustomFieldInternalPartNumber" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.InternalPartNumber, 'InternalPartNumber')"/>
    <Variable Identifier="cCustomFieldPartNumber" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.PartNumber, 'PartNumber')"/>
    <Variable Identifier="cCustomFieldManufacturer" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Manufacturer, 'Manufacturer')"/>
    <Variable Identifier="cCustomFieldPowerRating" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.PowerRating, 'PowerRating')"/>
    <Variable Identifier="cCustomFieldPowerRatingMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.PowerRatingMin, 'PowerRating.Min')"/>
    <Variable Identifier="cCustomFieldPowerRatingMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.PowerRatingMax, 'PowerRating.Max')"/>
    <Variable Identifier="cCustomFieldVoltageRating" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.VoltageRating, 'VoltageRating')"/>
    <Variable Identifier="cCustomFieldVoltageRatingMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.VoltageRatingMin, 'VoltageRating.Min')"/>
    <Variable Identifier="cCustomFieldVoltageRatingMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.VoltageRatingMax, 'VoltageRating.Max')"/>
    <Variable Identifier="cCustomFieldCurrentRating" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.CurrentRating, 'CurrentRating')"/>
    <Variable Identifier="cCustomFieldCurrentRatingMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.CurrentRatingMin, 'CurrentRating.Min')"/>
    <Variable Identifier="cCustomFieldCurrentRatingMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.CurrentRatingMax, 'CurrentRating.Max')"/>
    <Variable Identifier="cCustomFieldTolerance" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Tolerance, 'Tolerance')"/>
    <Variable Identifier="cCustomFieldToleranceMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ToleranceMin, 'Tolerance.Min')"/>
    <Variable Identifier="cCustomFieldToleranceMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ToleranceMax, 'Tolerance.Max')"/>
    <Variable Identifier="cCustomFieldTechnology" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Technology, 'Technology')"/>
    <Variable Identifier="cCustomFieldTechnologySet" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.TechnologySet, 'Technology.Set')"/>
    <Variable Identifier="cCustomFieldPins" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Pins, 'Pins')"/>
    <Variable Identifier="cCustomFieldForwardVoltage" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ForwardVoltage, 'ForwardVoltage')"/>
    <Variable Identifier="cCustomFieldForwardVoltageMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ForwardVoltageMin, 'ForwardVoltage.Min')"/>
    <Variable Identifier="cCustomFieldForwardVoltageMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ForwardVoltageMax, 'ForwardVoltage.Max')"/>
    <Variable Identifier="cCustomFieldReverseVoltageRating" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ReverseVoltageRating, 'ReverseVoltageRating')"/>
    <Variable Identifier="cCustomFieldReverseVoltageRatingMin" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ReverseVoltageRatingMin, 'ReverseVoltageRating.Min')"/>
    <Variable Identifier="cCustomFieldReverseVoltageRatingMax" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.ReverseVoltageRatingMax, 'ReverseVoltageRating.Max')"/>
    <Variable Identifier="cCustomFieldBreakSpeed" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.BreakSpeed, 'BreakSpeed')"/>
    <Variable Identifier="cCustomFieldBreakSpeedSet" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.BreakSpeedSet, 'BreakSpeed.Set')"/>
    <Variable Identifier="cCustomFieldDimensions" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Dimensions, 'Dimensions')"/>
    <Variable Identifier="cCustomFieldFunctions" Type="TCustomFieldEnumInfo" Init="TCustomFieldEnumInfo.Create(TCustomField.Functions, 'Functions')"/>

The names (for example PowerRating.Min) can be used in classes that support them. Specification values can be added with those names in KiCad symbol fields, in PartKeepr category inifile sections, and in Part parameters as a stringvalue or a nominal value.

Ranges are specified by using a {Field}.Min or {Field}.Max or both. The min (≥) and max (≤) values are included.

Sets are specified using a {Field}.Set and a comma seperated list of values.

Actual (stock) components should not be using sets or ranges. They should only be used in requested specifications (schematics).