diedjee
Newbie level 1
Hello everybody,
Since a long time I stumbled upon this site when searching for some answers using google.
But recently I got a problem on which I don't find an answer immediately.
I'm using ADS to automatically create inductor lay-outs and simulate them.
Since some weeks, I drew these lay-outs manually but now I would like to parametrize them.
For that purpose, I am using macros and AEL scripts.
Because it is the first time I am writing AEL code, te likelihood that I'm introducing some bug is very big but most of the time I am able to fix it using the manuals and internet.
Recently an error showed up which I an unable to find a solution for.
The following script creates a regular polygon. The error occurs when it tries to write to the last index of the array. (functions.ael line 71, column 3 in assignment) left operand invalid array access)
Increasing the size of the array doesn't help much.
To use the script, you must create a path in lay-out mode and apply this script upon it. Then compile, set the default values, save and add it as a component to another lay-out. (Then the error appears)
Alternatively, use the files in attachment...
(I left my debug printouts enables so you can see what's going on...)
Any help would be appreciated!
Since a long time I stumbled upon this site when searching for some answers using google.
But recently I got a problem on which I don't find an answer immediately.
I'm using ADS to automatically create inductor lay-outs and simulate them.
Since some weeks, I drew these lay-outs manually but now I would like to parametrize them.
For that purpose, I am using macros and AEL scripts.
Because it is the first time I am writing AEL code, te likelihood that I'm introducing some bug is very big but most of the time I am able to fix it using the manuals and internet.
Recently an error showed up which I an unable to find a solution for.
The following script creates a regular polygon. The error occurs when it tries to write to the last index of the array. (functions.ael line 71, column 3 in assignment) left operand invalid array access)
Increasing the size of the array doesn't help much.
To use the script, you must create a path in lay-out mode and apply this script upon it. Then compile, set the default values, save and add it as a component to another lay-out. (Then the error appears)
Alternatively, use the files in attachment...
(I left my debug printouts enables so you can see what's going on...)
Code:
defun n_agon(n, radius)
{
fputs(stderr, "nagon start");
decl pnts;
//decl nb;
//nb = n;
pnts = {{0, 0}};
pnts=resize_array(pnts, 1, 0, n+1);
pnts=resize_array(pnts, 2, 0, 1);
pnts[0, 0] = radius * cos((PI / (2 * n)));
pnts[0, 1] = radius * sin((PI / (2 * n)));
fputs(stderr, identify_value(pnts));
fputs(stderr, "nagon loopstart");
decl i;
for(i=1; i<=n; i++)
{
pnts[i, 0] = radius * cos((i * 2 * PI / n) + (PI / (2 * n)));
pnts[i, 1] = radius * sin((i * 2 * PI / n) + (PI / (2 * n)));
fputs(stderr, strcat(i, ""));
}
fputs(stderr, "n+1=");
fputs(stderr, strcat(" ", n+1));
fputs(stderr, ",pnts=");
fputs(stderr, strcat(" ", array_upperBound(pnts, 1)));
fputs(stderr, identify_value(pnts));
decl end_pnts;
end_pnts = n+1;
fputs(stderr, strcat("end_pnts=", end_pnts, ",n=", n, ",upper1=", array_upperBound(pnts, 1), ",upper2=", array_upperBound(pnts, 2)));
pnts[end_pnts, 0] = radius * cos(PI / (2 * n));
pnts[end_pnts, 1] = radius * sin(PI / (2 * n));
fputs(stderr, "nagon finish");
return (pnts);
}
Any help would be appreciated!