PCELL rodAssignHandleToParameter

A

Arnold

Guest
Hi,

I write this code to draw a bus. Now I want to make it stretchable,
but I don´t know exact how to do this. I reach to strech the width but
not that I can change/stretch the coords for the path.
Can someone help me please ?


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell

CU and THX

Arnold
 
I would suggest, instead of using a pcell, that you create a ROD path
with rodCreatePath(). This allows you to create multiple paths positioned
relative to one another (hence the name Relative Object Design). The
benifit is that your path will inherit all actions possibles of a normal
path,
ie sizing, stretching, splitting, reshaping, ...

There is one major drawback however that I couldn't manage to fix with
such an implementation : properties won't be editable dynamically. I mean
that it is not possible to have properties on your object that will cause a
routine to be called to recreate the object and reflect changes like for
a pcell. If anyone has an idea how to implement pcell-like properties
on a rod object i'll be greatly interested.

as for your question i don't know the answer, but i suggest you create
a pcell with the pcell editor, assigning stretch handles to it, the compile
it to skill code and have a look at it. That will provide you with a working
example.

stéphane


"Arnold" <arnold_erni@yahoo.de> wrote in message
news:7fd44e32.0404010724.43323d57@posting.google.com...
Hi,

I write this code to draw a bus. Now I want to make it stretchable,
but I don´t know exact how to do this. I reach to strech the width but
not that I can change/stretch the coords for the path.
Can someone help me please ?


pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
(
(w float 1.6)
(layer string "metal1")
(coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
(busnr int 2)
(layerSpace float 0.7)

)

let((bus busPath)

bus=cdr(list(() list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)))
layerSpace=w+2*layerSpace
for(i 3 busnr
bus=append1(bus list(
?layer layer
?justification "right"
?sep layerSpace
?width w
)
)
layerSpace=layerSpace+w+0.7
)
busPath=rodCreatePath(
?name "bus"
?layer layer
?pts coords
?width w
?justification "center"
?offsetSubPath bus

);end rodPath

rodAssignHandleToParameter(

??? ??? ??? ??? ??? ???


);end rodAssing
);end let
);end pcDefinePCell

CU and THX

Arnold
 

Welcome to EDABoard.com

Sponsor

Back
Top