Home > Community > Forums > PCB SKILL > change compdef properties

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 change compdef properties 

Last post Thu, Jul 19 2007 5:53 AM by archive. 3 replies.
Started by archive 19 Jul 2007 05:53 AM. Topic has 3 replies and 1722 views
Page 1 of 1 (4 items)
Sort Posts:
  • Thu, Jul 19 2007 5:53 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    change compdef properties Reply

    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
    • Post Points: 0
  • Thu, Jul 19 2007 6:43 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: change compdef properties Reply

    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
    • Post Points: 0
  • Thu, Jul 19 2007 7:49 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: change compdef properties Reply

    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
    • Post Points: 0
  • Thu, Jul 19 2007 9:45 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: change compdef properties Reply

    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
    • Post Points: 0
Page 1 of 1 (4 items)
Sort Posts:
Started by archive at 19 Jul 2007 05:53 AM. Topic has 3 replies.