Have you ever reread one of your own answers, only to realize you answered the WRONG question?Originally posted in cdnusers.org by J.C. Roberts
I'm such an idiot. My appologies for the previous post.
textBlocks are C-structs (a.k.a "user defined objects"), are read only
by default and in general, there is no public SKILL interface for
There is a way around the problems and you can create textBlock objects
programatically in SKILL but the way to do it is highly convoluted.
Dave said, "I am running an interactive command so calling a script is not an option."
Actually, it is an option. The way this is done is you write a script
file, execute the script file in the background in another instance of
allegro, and then reload the database in your current instance.
The script file does the work you want (adding a textblock), saves the
database and exits. A second instance of Allegro is launched in
-nographic mode along with the script through the
(axlRunBatchDBProgram...) function in your first instance, so you never
see the second instance. When the second instance is finished, the
first instance of Allegro reloads the database and continues execution
of your SKILL program.
The only problem with this approach is that for that short time while
the second instance of Allegro runs in the background, you have two
licenses checked out.
The attached code adds a single textBlock to your database. Also, this
same method is useful for deleting all those unwanted layers from parts
(*.dra) when they've been dumped from a board.