Hi,
In the past, I have used rodFillWithRects many times inside code for p-cells. This time I want to use it just as part of a bit of code to be run from the CIW to generate some rectangles in a given area (polygon). However, this time it fails on me. This is the code:
INDDMYShape = car( setof( shape cvIdWithFill~>shapes equal( shape~>lpp list( "INDDMY" "drawing" ) ) ) )
when( INDDMYShape
printf( "INDDMYShape: %L\n" INDDMYShape )
;fillM1 = list( nil )
tempId = dbCreatePolygon( cvIdWithFill list( "text" "drawing" ) INDDMYShape~>points )
printf( "tempId: %L\n" tempId )
valid = rodFillWithRects( ?shapeId tempId
?fillShapeLPP list( "M2" "drawing" )
?fillShapeWidth 0.25
?fillShapeLength 0.25
?justification "centerCenter"
?spaceX 0.50
?spaceY 0.50
?enclosureX 0.50
?enclosureY 0.50
;?outputFillShape fillM1
)
printf( "valid: %L\n" valid )
) ;;; end of when
This is printed in the CIW:
INDDMYShape: db:0x5dd8fb1a
tempId: db:0x5dd8fb42
valid: t
The shape INDDMYShape is a polygon, and at first I tried to use this shape as the input shape for rodFillWithRects, but this failed.
Then I thought: maybe I need ot add a new shape and use that, so i created tempId. Still no luck.
Then I decided to have a look at the output of rodFillWithRects, and assign that to variable "valid". As you can see, valid is "t" thus the filling should have worked, but clearly didn't.
I also tried using an "outputFillShape", but that didn't do the trick either.
The only reason I have a "when()" statement around this bit of code is to be able to "see" that my original shape (INDDMYShape) was not "nil". No other reason.
As i said, I used it in pcell code, and it works just fine. Is that a limitation of rod objects: they can only be used inside a pcell?
If so, what other procedure can I use to fill a certain are with small rectangles?
Any help is greatly appreciated.
Thanks in advance.
With kind regards,
Sjoerd