In a text box (in any sheet), entering ${refdes:VALUE} works, entering ${refdes:DATASHEET} does not. Is the expected evaluation? I expected the sheet name of the component referenced in ${refdes}.
This link seems to imply it works as expected - but it doesn’t for me. Wazzup?
Thoughts and insights please.
Application: KiCad Schematic Editor x64 on x64
Version: 8.0.3, release build
Libraries:
wxWidgets 3.2.4
FreeType 2.12.1
HarfBuzz 8.3.0
FontConfig 2.14.2
libcurl/8.5.0-DEV Schannel zlib/1.3
Platform: Windows 11 (build 22631), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) Iris(R) Xe Graphics, 4.6.0 - Build 31.0.101.5186
Build Info:
Date: Jun 3 2024 19:04:47
wxWidgets: 3.2.4 (wchar_t,wx containers)
Boost: 1.83.0
OCC: 7.8.1
Curl: 8.5.0-DEV
ngspice: 42
Compiler: Visual C++ 1939 without C++ ABI
That post is about a 8.99 nightly build. You have 8.0.3. So you have to wait until v9.
Ah, OK, fair enough. I’ll wait for v9 then. I take that in my example therefore this is not currently the expected evaluation? - ie. the getting the sheet name of ${refdes} is not supported.
refdes is a common, but not an offical “KiCad” name.
And for the rest, watch your syntax. For me, in KiCad V8.0.3 using: ${REFERENCE}
or ${DATASHEET}
seems to work
Yes. Thx Paul. ${REFERENCE}
or ${DATASHEET}
work for me too - but the prefix of ${refdes:…} does not (for DATASHEET). Is that odd or do I not understand the syntax correctly?
I was a bit confused by your syntax, so I looked it up in the manual:
<refdes>:<fieldname>
Contents of field <fieldname>
in symbol <refdes>
.
Both built-in and user-defined fields are available. Built-in fields use all uppercase letters: for example, to access the value of U1
, use ${U1:VALUE}
.
Built-in symbol fields are DATASHEET
, DESCRIPTION
, DNP
, EXCLUDE_FROM_BOARD
, EXCLUDE_FROM_BOM
, EXCLUDE_FROM_SIM
, FOOTPRINT
, FOOTPRINT_LIBRARY
, FOOTPRINT_NAME
, NET_CLASS(<pin_number>)
, NET_NAME(<pin_number>)
, OP
, PIN_NAME(<pin_number>)
, REFERENCE
, SHORT_NET_NAME(<pin_number>)
, SYMBOL_DESCRIPTION
, SYMBOL_KEYWORDS
, SYMBOL_LIBRARY
, SYMBOL_NAME
, UNIT
, VALUE
.
So apparently something close to the syntax you used is supported, but you don’t have to use the literal text refdes
, but you have to put in the actual reference of the part you want to use.
Hmm. Yes, I use CAPS. Perhaps an example would help.
${R210:DKREF} (${R210:REFERENCE} ) results in the text output of:
*R3 (R210)
which is correct.
[Note ‘*R3’ is my text in the symbol field ‘DKREF’]
${R210:DKREF} (${R210:REFERENCE} in ${R210:DATASHEET}) results in the text output of:
*R3 (R210 in )
which is obviously not correct.
When the sheet gets re-annotated all the references to R210 get correctly updated - which was very satisfying to see that KiCad had this in the bag long ago.