Friday, July 25, 2008     Register | Login | Search | Contact Us
     
Home
Forums
Subject: Concept-SKILL question: changing default property values
Posting to forums is available to community members only.
Login or Register
Rate this topic:
   
Author Messages
kerchunk
Posts: 19
Online: User is Offline
5/05/2008 9:58 PM  
Greetings all,

Working on a routine to change all the refdes values on a schematic.
Tried the csChangePropValue routine inside stdAccess.il  but it turns out
that function only works on custom properties because of its
copy template -> delete property -> create new property using template and new value
method. Turns out Concept won't let you delete a default property like LOCATION.

So, anyone know how to change a default property's value using Concept-SKILL?


TIA,

Chris Walters
local Cadence guru
()
kerchunk
Posts: 19
Online: User is Offline
5/16/2008 3:10 PM  
Steve Durrill, creator of stdAccess.il, was kind enough to respond in a different thread:

-----------------
I got a fix from the R&D team a few years ago for
cnCreateProps() to modify an existing prop object when
a dbid is provided.

procedure( chgDefPropVal( h, prop, newVal)
let(((tplList nil))
tplList = cons(cnCreatePropTemplate(
?name cnGetPropName(prop),
?value newVal,
?attachXY cnGetPropAttachXY(prop),
?XY cnGetPropXY(prop),
?color cnGetPropColor(prop),
?visibility cnGetPropVisibility(prop),
?justification cnGetPropJustification(prop),
?size cnGetPropSize(prop),
?angle cnGetPropAngle(prop)
), tplList)
cnCreateProps(h, tplList)
);let
);procedure


handle = cnmpsImport()
props = cnGetProps(cnGetGroupedObjectSet(cnSendCommand(handle, "FINDLOCATION*\n", ?runOptions csDISP1_RES3)))
p = car(props)
chgDefPropVal(handle, p, "NEWVALU")
---------------------

So there you have it. cnCreateProps will change the value of an existing default property just fine, but function csChangePropValue within stdAccess.il is flawed in that it cannot handle default properties since it tries to delete->replace the property and Concept won't allow deletion of a default property.

CASE CLOSED


Chris Walters
local Cadence guru
()


sdurrill
Posts: 1
Online: User is Offline
5/16/2008 5:45 PM  
I just took a look at the csChangePropValue() routine.. Since cnCreateProps() accepts DBIDs
all you have to do to fix the liimitation for default body props is remove this line:

csDeletePropObjects(handle, propList)

The new version is included below.

-Steve


procedure(
csChangePropValue(handle, propList, new_value)
let((tpl_list)
if(propList then ;; Make sure there are properties to change!
if(isCallable('cnCreatePropTemplate) then
;;Get the template objects with changes included
tpl_list = foreach(mapcan prop propList ncons(
csBuildPropTemplate(prop, ?value new_value)))
cnCreateProps(handle, tpl_list)
else ;; Release is pre-PE13.5 so call the old routine
foreach(prop propList
csChangeProperty(handle, prop, new_value)
);foreach
);if
);if
);let
);procedure
Posting to forums is available to community members only.
Login or Register

Forums > Silicon-package-board > Shared code - SKILL > Concept-SKILL question: changing default property values


ActiveForums 3.6
     
Copyright 2006 Cadence Design Systems, Inc.