I was wondering is there is any gui development tools for SKILL, It is very tedious to type the FORM file in BNF format and try to debug it
I searched in the web to no avail, if anyone knows a tool which will let you design the SKILL forms graphically like the forms designer and output the form file please let me know
mean while I found out some tools that might be of interest
I used to write automated scripts using Autoit it has a free form designer called KODA
this will save the form file as a KXF file and which is a XML file and can output an autoit script which is similar to visual basic
If anyone write a script/tool convet the xml to BNF or autoit to BNF that would be great.
for example The output of the koda will look like
$Form1 = GUICreate("Board Template Editor", 752, 561, -1363, 199)$Tab1 = GUICtrlCreateTab(16, 24, 713, 521)GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)$TabSheet1 = GUICtrlCreateTabItem("Board Details")$Group1 = GUICtrlCreateGroup("Board Details Input", 32, 64, 681, 449)$Input1 = GUICtrlCreateInput("Input1", 152, 112, 121, 21)$Button1 = GUICtrlCreateButton("Button1", 64, 448, 75, 25)$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 128, 384, 97, 17)$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 280, 384, 97, 17)$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 424, 384, 97, 17)$Button2 = GUICtrlCreateButton("Button2", 160, 448, 75, 25)$Label1 = GUICtrlCreateLabel("Label1", 80, 120, 36, 17)$Label2 = GUICtrlCreateLabel("Label2", 80, 152, 36, 17)$Input2 = GUICtrlCreateInput("Input2", 152, 144, 121, 21)GUICtrlCreateGroup("", -99, -99, 1, 1)
In BNF it should look like
FORMFIXEDPORT 80 55HEADER "Board Template Editor"
TILETABSET "Board Details"FLOC 16 24TSSIZE 713 521TAB "Pack_Select"
Any help/leads on this regard will be much appreciated
I always try to build my forms dynamically within my main code. I have written small functions to create each of the form features such as buttons. Using this method, form development is much simplified and easier to maintain. You can find examples of these functions (although most will have been modified for public release) in some of the code I have posted.
In reply to eDave:
I agree with dave on his point, but then I think it will be easier for a skill developer to see theGUI first to visualize what he/she wants to do
long story short, I have written a perl script to do some trick
limitations and usage
1. type perl xml2bnf <filein.xml> <fileout.il> ( need XPATH to be installed with PPM)
2. use the tool from http://www.autoitscript.com/fileman/users/lookfar/formdesign.html to create the form file, rename the *.kxf to *.xml
3. place the windows-1251.enc in the same directory as the exe file
4. You can't put multiple tabs on the same form (not tested)
5. You can't nest Group under a Group
6. Only Button/Input/Combo/Radio/Checkbox is supported
7. I can't figure out to extract Combobox list (appreciate any help)
but here is the perl file
In reply to vramanan:
i am attaching the file again
I am thinking that there is some issue with the attachment so posting the perl code (depedant on XPATH, Math Round)
i have 2 files in the example_files.zip, one tpages.xml to test the script and windows-1251.enc, you should place it in the same location as that of the script
Save the following as xml2bnf.pl
This is the latest version of the Code
1. Support Lists
2. Support inital value on Edit fields
3. The form looks similar to the original xml file
Future Updates likely to include
1. Support for Multi-Line Text
2. Support for Grids
3. unique POP list for every ENUM Field
I just noticed the line "The forming syntaxes are NOT supported by the formeditor."
in the axlFormBNFDoc document.
So what is the formeditor??
In reply to Ejlersen:
according to cadence there used to be or there is an form editor for unix platforms
This will be like a GUI designer for skill like VBforms for VB
My intention is to use KODA form designer, which is a free tool to create autoit script GUI and convert it to skill code,
I have been successful in some aspects, I am still working on the code and will release the final code when time permits
se here is the what you have to do to see for yourself
1. install Koda auto it form designer, (follow the link in the first post)
2. create a form and save it, this will be saved as .kxf
3. rename it to .xml
4. run the perl script i have provided xml2bnf <input.xml> <output.il>
5. load the skill file in allegro and test the form
What perl package are you using. I tried to get the cadence\spb_16.1\tools\perl5 package to work, but it won't install.
1. please install the latest perl release from activestate website
2. after installation you go any command prompt and type ppm
3. now instal XML::XPath
4. create forms using koda designer
5. rename the *.kxf to *.xml
6. include the *.inc file i have attached in my previous email in the same location as the xml
7. run per.exe xml2bnf <input.xml> <output.il> in command prompt
Thanks for your suggestions, I'm however still experiencing some problems.
I'm running "perl xml2bnf.pl tpages.xml tpages.il" in a command prompt but get the following error "Can't locate Math/Round.pm in @INC <@INC contains: c:/Perl/site/lib C:/Perl/lib .> at xml2bnf.pl lin 8.
I've tried placing xml2bnf.pl and the enc file in the C:/Perl/lib directory (and at the same time in the directory with the xml file) but without any luck.
Found that the math::round package was not installed properly, so now it works.
Found the following issues with tpages.il after translation
- line 181 has 14 added at the front, which means the skill program won't load.
Besides from this, there's also some issue displaying the form file due to incorrect syntax.
However, if I run it on my first own form created in Koda it works very well. I'm sure this is something that has a future.
Edit the perl file and comment out line 196, it will work fine
I am working on a new version
these are the things I have done
1. Optimized the code (500 lines less than the original)
2. Added Support for Grids, Progress Bar, Track Bar, TreeView, ListView
3. Optimized the locations and Size of the fields, it looks like the original XML file
4. It will include the Value field for the Inputs
These are the things I will be working on
1. A Documentation explaining the entire process, FAQ, rational etc..
2. Support to include GRID-Column/Row logic(auto generate Skill code)
3. A possible GUI and auto-rename .kxf to .xml
4. A installation package which will auto install all the needed files neatly
I will release the new version when time permits
I think it works very well already.
I was actually thinking about making a description of this for a technical newsletter that we send out 1-3 times a month refering Danish users to get the perl script from this thread. Would that be ok with you.
You can see our technical newsletters (unfortunately in Danish) on http://www.nordcad.dk/dk/teknik__service/e-service/
Please let me know if this would be ok with you. You could email me directly at oe(at)nordcad.dk. I would offcourse give you the credit for the tool.
For what it is worth, I have done the following
1. updated the script with lots of bug fixes
2. Added a GUI interface
3. Added Help and info
4. created an installation package with standalone executable plus the source
Now you don't need to rename the KODA form .kxf to .xml, the gui will do the trick, no need to have the .inc in the same directory
no need to have perl installed, this is a standalone tool with all the help you need
Now you can get all the things by downloading the setup_xml2bnf.exe at
Now this thing can rest a little bit without bugging me
Enjoy and share atleast one utility you create with this to the community
Appreciate your feedback and comments
Not too sure if anyone else has tried this but I cannot get it to fire up.
I am using Vista 32 and 64 which might explain something BUT I have the Perl from AllState, added the XML::XPath, Math::Round, Tk 804 packages. The GUI does not start from the ".exe" and when I try to run the perl source through "perl xml2bnf.pl" at a command prompt I get a message about not being able to locate "Tk/NumEntry.pm", this presumably needs another Perl package but I can't seem to find a likely candidate listed in the available packages in PPM. I guess that the "Tk::ROText" might be missing as well.
OK, found that the NumEntry required is part of Tk::GBARR, got closer BUT "incvalue" is no longer an option for NumEntry, have to "hash" the "incvalue"s out to get the UI to run, but now the edits cannot be incremented by anything other than 1, the default "incvalue"
This might be flying but I wouldn't fancy actually taking off!