well apart from doing what you've said (using A<1:5>) and modifying the pitch so that when you remove the unwanted pins everything is correct, the only other suggestion that I can make is to use the leCreatePin() SKILL function with a wrapper around it to use it multiple times, once per pin. You could use an enter function to gather points from the user (e.g. enterBox) and have a command form so that you can control the bus expansion part. This might be a lot of work if you are not going to use it all the time, so I'd suggest using the first approach.
In reply to skillUser:
Thanks a lot. I don't know much about SKILL, so probably I will use the first approach. Do you mean for example, I first creat a bus A<1:5>, delete A<2> and A<4> manually, then I get A<1:5:2> with desired pitch?
In reply to Finn:
Hi,Yes, that was the idea, basically to create the superfluous pins so that the automatic pin creation could be used, and then to delete the unwanted pins, either manually or through SKILL.The latter would be relatively easy to do, for example, theterminal objects can be found one at a time by using the SKILL function dbFindTermByName(), or something like this:
cv = geGetEditCellView()
a_terms = setof(term cv~>terms rexMatchp("A<" term~>name))
=> (db:215089524 db:215089592 db:215090640 db:215090688 db:215062840)
a_terms~>name=> ("A<5>" "A<4>" "A<3>" "A<2>" "A<1>")
even_a_terms = setof(term cv~>terms rexMatchp("A<" term~>name) && evenp(atoi(cadr(parseString(term~>name "<>"))))
=> (db:215089592 db:215090688)
There may be more things to remove...