• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Allegro X PCB Editor
  3. change compdef properties

Stats

  • Replies 3
  • Subscribers 158
  • Views 13688
  • Members are here 0
More Content

change compdef properties

archive
archive over 18 years ago

Hello All. Does anybody know if it is possible to change a component property and how? Components have instance properties(like CLIP_DRAWING) and definition properties (like PART_NUMBER). I want to change the PART_NUMBER. I tried with axlDBDeleteProp but unsucessfully. (I was thinking to delete and then add a new one with axlDBAddProp.) I only succeeded on deleting ALL part_numbers properties... so it might be possible, but "nil" is the only answer to my tries! ;-) I also tried to add properties to dictionary but once again with nil (axlDBCreatePropDictEntry)... Thanks in advance.


Originally posted in cdnusers.org by willbi
  • Sign in to reply
  • Cancel
  • archive
    archive over 18 years ago

    1) You need to know where the property in question is located. For example the PART_NAME property resides
    on the compDef not the compInst. PART_NUMBER may be located on compDef, symDef or symInst.

    You view the properties in Skill as follows

    d = axlDBGetDesign()

    ; list all compDef props on 1st compDef in list
    cd = car(d->compdefs)
    cd->prop->??

    ; list all compDef props on 1st compInst in list
    ci = car(d->components)
    ci->prop->??

    ; get to the compDef given a compInst
    cd = ci->compdef

    2) To replace a property just use axlDBAddProp, you don't need first delete it
    axlDBAddProp(cd '("PART_NAME" "foo"))
    ; verify
    cd->prop->??


    Originally posted in cdnusers.org by fxf
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 18 years ago

    Thanks fxf. I was not so far... ;-) Thanks for the information that we do not need to remove the property... In fact, I was extracted the "comp" like this: axlSetFindFilter(?enabled list("NOALL" "COMPONENTS") ?onButtons list("ALL")) comp = car(axlGetSelSet(axlSingleSelectPoint())) then I was trying to do: axlDBAddProp(comp '("PART_NUMBER" "Wanted Value")) and it did not work. In fact I just need to do this: axlDBAddProp(comp->compdef '("PART_NUMBER" "Wanted Value")) to get it working! Of course, I have to add the property to the compdef and not to the comp which has no prop section... So thanks for your answer, it helps a lot. Bye.


    Originally posted in cdnusers.org by willbi
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • archive
    archive over 18 years ago

    The PART_NUMBER property is not permitted on a component instance (compInst) which is what you get when you
    fetch them via the Selection set method. Instead modify your code to
    compDef = comp->comdef
    axlDBAddProp(compDef '("PART_NUMBER" "Wanted Value"))


    Originally posted in cdnusers.org by fxf
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information