structured asic xcellence framescript a case study demonstrating the power of framescript to...
TRANSCRIPT
Structured ASIC Xcellence
Framescript
A case study demonstrating the A case study demonstrating the power of Framescript to power of Framescript to automate the generation of a automate the generation of a Data Book or CatalogueData Book or Catalogue
Structured ASIC Xcellence
Reference data
The reference data The reference data comes from a .txt file comes from a .txt file which is generated by which is generated by a computer program.a computer program.
This file is the This file is the equivalent of 7000 equivalent of 7000 pages in either word or pages in either word or Framemaker.Framemaker.
Structured ASIC Xcellence
Text file
Note there is almost 1/2 million lines of text.
Structured ASIC Xcellence
Modifying the reference file
This reference file contains This reference file contains information required for the information required for the databook but not necessarily in the databook but not necessarily in the proper form.proper form.
Raw data must be transformed into Raw data must be transformed into usable data by running a PERL script usable data by running a PERL script on the reference file.on the reference file. Some information requires complex Some information requires complex
mathematical permutations of the raw mathematical permutations of the raw data. data. This is done with the PERL Script.This is done with the PERL Script.
Structured ASIC Xcellence
Text File after the PERL Script
Structured ASIC Xcellence
The Section in Blue
The section in blue above is transformed into the data sheet…..
Structured ASIC Xcellence
Finished Data Sheet
Structured ASIC Xcellence
How long to turn
into this?
Structured ASIC Xcellence
What do you think?
Manually, I would have to:
Cut and paste the name from the text file
Import a graphic
Import a table
Determine the size of the next three tables
Create the tables
Fill in the tables using the information in the text file
Structured ASIC Xcellence
Finished Data Book
is1700 Pages Long
Structured ASIC Xcellence
Not 1 button The results of the PERL script is a The results of the PERL script is a
Preliminary input data file that I use Preliminary input data file that I use as the input for my suite of scripts. (I as the input for my suite of scripts. (I did not write the PERL script.)did not write the PERL script.)
The complexity of the data required The complexity of the data required that I create a suite of scripts. This is that I create a suite of scripts. This is not a one button operation. not a one button operation.
Although it is possible for a less Although it is possible for a less complicated Data Book to be created complicated Data Book to be created with a one button process; and I will with a one button process; and I will demonstrate that in a few minutes.demonstrate that in a few minutes.
Structured ASIC Xcellence
Breaking down the
Preliminary file The preliminary file is very large. I The preliminary file is very large. I
was afraid that data would misalign was afraid that data would misalign and mismatch the the specifications and mismatch the the specifications to the wrong data sheet.to the wrong data sheet.
I used a system that created a I used a system that created a specifications file and a datasheet file specifications file and a datasheet file for for eacheach object to isolate each object object to isolate each object and each object’s specifications. In and each object’s specifications. In this way I reduced the possibility of this way I reduced the possibility of inputting the wrong data items. inputting the wrong data items.
Structured ASIC Xcellence
Open the text file in FM
Structured ASIC Xcellence
And Turn it into a
Specifications File
Structured ASIC Xcellence
Next I make a Data Sheet
Structured ASIC Xcellence
Each data sheet has:
A name in Heading 3 formatA name in Heading 3 format A description of the objectA description of the object A graphic of the objectA graphic of the object
All graphics are created in visio and All graphics are created in visio and saved as WMFs in a specific folder saved as WMFs in a specific folder
Up to 5 tables; each table getting the Up to 5 tables; each table getting the cell data from the Specifications file.cell data from the Specifications file.
Structured ASIC Xcellence
Text file after running the PERL Script
Script 2 createsCell names file
Script 1 creates Specifications files
Cell Names FileOR20POR20DOR30POR30D
OR20P
OR20D
OR30P
OR30D
OR20P
OR20D
OR30P
OR30D
Graphics Folder
OR20P
OR20D
OR30P
OR30D
Table #1
Script 3 creates Data Sheet files
OR20P
OR20D
OR30P
OR30D
Completed Data Sheets
Script 4 creates concatenated Book
File
One Doc Filein Book
Flow for creating a Data Book
Structured ASIC Xcellence
Script 1 Generating
Specification files
This script takes the preliminary file This script takes the preliminary file and searches for a specific phrase and searches for a specific phrase that precedes each name then, that precedes each name then,
opens a new document fileopens a new document file that that will contain the relevant data for a will contain the relevant data for a single object in the data booksingle object in the data book
Each object has a uniquely named Each object has a uniquely named specification file specification file
Structured ASIC Xcellence
Script 1 Cont’d
Copies each line of the preliminary Copies each line of the preliminary file one line at a time into the new file one line at a time into the new single object (specifications) doc file.single object (specifications) doc file.
When it finds the next name it saves When it finds the next name it saves and closes the single object and closes the single object (specifications) file using the name (specifications) file using the name as the filename.as the filename.
Structured ASIC Xcellence
All of the specification files
are : Unique and Unique and
have a unique have a unique namename
saved to a saved to a specified Path specified Path in a specific in a specific folderfolder
Structured ASIC Xcellence
Script 2
This script runs through the This script runs through the preliminary file and copies and preliminary file and copies and pastes only the paragraph containing pastes only the paragraph containing the object name. the object name.
It then removes all of the text in the It then removes all of the text in the paragraph except for the object paragraph except for the object name.name.
The script saves and closes the file.The script saves and closes the file.
The resulting file is a list of all of the The resulting file is a list of all of the Object names.Object names.
Structured ASIC Xcellence
Cell names File
Structured ASIC Xcellence
Script 3 This script:
opens the Object names fileopens the Object names file opens a new document using a opens a new document using a
predefined templatepredefined template copies the first name from the Object copies the first name from the Object
names filenames file opens the corresponding opens the corresponding
specifications filespecifications file
Structured ASIC Xcellence
Script 3 continued
The script runs through the The script runs through the specifications file and specifications file and Gives each data item a unique variable Gives each data item a unique variable
name name Counts the number of columns for each Counts the number of columns for each
table table Counts the number of rows for each table Counts the number of rows for each table Table 1
Table 2
Table 3
Structured ASIC Xcellence
Script 3 continued
Once all of the information is acquired Once all of the information is acquired for the identified Object the scriptfor the identified Object the script
copies the object name to the first copies the object name to the first paragraph of the new documentparagraph of the new document Formats the paragraph to Heading 3Formats the paragraph to Heading 3
Structured ASIC Xcellence
Script 3 continued
Runs a description subroutineRuns a description subroutine Inserts the results of the subroutine in Inserts the results of the subroutine in
paragraph 2 of the document.paragraph 2 of the document. Inserts the correct graphic (as Inserts the correct graphic (as
identified using the object name (this identified using the object name (this uses another subroutine)) from the uses another subroutine)) from the graphics folder.graphics folder.
Structured ASIC Xcellence
Script 3 continued
Inserts the first table (this table is not Inserts the first table (this table is not created by the script but inserted into created by the script but inserted into the doc from another folder using the doc from another folder using another subroutine) Everything is another subroutine) Everything is controlled by the object name.controlled by the object name.
Inserts 3, 4 or 5 blank tables (according Inserts 3, 4 or 5 blank tables (according to the object and the specifications to the object and the specifications required for the Data Book).required for the Data Book).
Each table has a name and table Each table has a name and table format.format.
Structured ASIC Xcellence
Script 3 continued
The second table is inserted with the The second table is inserted with the exact number of columns and rows exact number of columns and rows required by the specifications file.required by the specifications file.
Some Specifications files have more Some Specifications files have more data than the data sheets require data than the data sheets require and will sometimes add extra rows. and will sometimes add extra rows. For these instances I have a For these instances I have a “Tweaking script ” to remove extra “Tweaking script ” to remove extra empty table rows.empty table rows.
Structured ASIC Xcellence
Script 3 continued
The table is then filled in using:The table is then filled in using: the data the data the unique variable names the unique variable names corresponding values for each variable corresponding values for each variable
The Generated Data Sheet is saved The Generated Data Sheet is saved and closed to a folder again using and closed to a folder again using the object name.the object name.
The specifications file is closed The specifications file is closed without saving (this file was not without saving (this file was not changed).changed).
Structured ASIC Xcellence
Single Data Sheet
Structured ASIC Xcellence
Script 3 continued
This whole procedure is repeated for This whole procedure is repeated for each object name.each object name.
In my case one data book had 1200 In my case one data book had 1200 data sheets and a second had 1500.data sheets and a second had 1500.
Structured ASIC Xcellence
Data Books
Sometimes the data items change Sometimes the data items change and the data book needs to be and the data book needs to be regenerated. regenerated.
Structured ASIC Xcellence
All of the Data Sheet files
are :Unique and have Unique and have a unique namea unique namesaved to a saved to a specified Path in specified Path in a specific foldera specific folder
Structured ASIC Xcellence
Script 4
This script concatenates the This script concatenates the individual data sheets into a larger individual data sheets into a larger file identified by category of object.file identified by category of object.
These concatenated files become These concatenated files become files in the book file.files in the book file.
I have 10 to 20 files in the book. This I have 10 to 20 files in the book. This includes general information aside includes general information aside from the datasheets.from the datasheets.
Structured ASIC Xcellence
Book File
Structured ASIC Xcellence
Tweaking
I have about 5 or 6 scripts that tweak I have about 5 or 6 scripts that tweak the concatenated files. the concatenated files.
They:They: remove empty paragraphs remove empty paragraphs remove empty table rowsremove empty table rows Set column widths for each tableSet column widths for each table
Structured ASIC Xcellence
Global Find and Replace
A lot of tweaking is done using global A lot of tweaking is done using global find and replace to remove excess find and replace to remove excess characters.characters.
Structured ASIC Xcellence
If a conservative estimate to produce If a conservative estimate to produce a singe data sheet is 30 minutes then a singe data sheet is 30 minutes then
1600 * 0.5 Hrs = 800 hrs. or about 16 1600 * 0.5 Hrs = 800 hrs. or about 16 weeks for 1 writer.weeks for 1 writer.
I can run my scripts and tweak the I can run my scripts and tweak the results within one week.results within one week.
Structured ASIC Xcellence
Accuracy
The scripts increase accuracy of the The scripts increase accuracy of the data book by removing the human data book by removing the human error caused by hours of tedious error caused by hours of tedious cutting and pasting.cutting and pasting.
Structured ASIC Xcellence
Demonstration
Let's see it work on a small scale; Let's see it work on a small scale;
10 data sheets10 data sheets
Structured ASIC Xcellence
Tips for Framescript
Structured ASIC Xcellence
Find String
This command searches for any This command searches for any string string
This command cannot search using This command cannot search using wildcards.wildcards.
Structured ASIC Xcellence
Find FromTextLoc
The wildcard can only be used with The wildcard can only be used with this command.this command.
Warning Warning This command will find strings or This command will find strings or
wildcards but it returns the range of the wildcards but it returns the range of the paragraph. The pgf may be the first Pgf in paragraph. The pgf may be the first Pgf in Flow,but this find command jumps to the Flow,but this find command jumps to the range where the object is found but the range where the object is found but the paragraph (cursor location) does not paragraph (cursor location) does not change. The loop only moves one Pgf at a change. The loop only moves one Pgf at a time even though the find range may be time even though the find range may be at the end of the Doc.at the end of the Doc.
Structured ASIC Xcellence
Find InRange
Find InRange or InObject cannot Find InRange or InObject cannot search using wildcards.search using wildcards.
Structured ASIC Xcellence
Error
Not enough rows or columns in table.Not enough rows or columns in table. If there are more cell items than either If there are more cell items than either
rows or columns you will get an error for rows or columns you will get an error for the line of the New Text command. the line of the New Text command.
Look for the problem in the New Table Look for the problem in the New Table command where you specify the number command where you specify the number of columns and the number of rows.of columns and the number of rows.
Structured ASIC Xcellence
Remember the cursor
The cursor does not move when the The cursor does not move when the script changes the paragraph.script changes the paragraph.
Structured ASIC Xcellence
Don’t forget field codes!
Field codes let you move the cursor Field codes let you move the cursor location. location.
I use them in my concatenate script.I use them in my concatenate script.
They look like this:They look like this:
Execute FC HighFlow;Execute FC HighFlow;
Structured ASIC Xcellence
Apostrophes can be trouble
New Pgf PrevObject(vPgf) NewVar(vPgf) New Pgf PrevObject(vPgf) NewVar(vPgf) Text(’The second paragraph.’);Text(’The second paragraph.’);
This line was copied from ‘Framescript A This line was copied from ‘Framescript A Crash Course’ Crash Course’
The smart quotes were not understood The smart quotes were not understood when I ran my script and inserted “0” when I ran my script and inserted “0”
I changed the apostrophe to ' and the I changed the apostrophe to ' and the script worked fine.script worked fine.
New Pgf PrevObject(vPgf) NewVar(vPgf) New Pgf PrevObject(vPgf) NewVar(vPgf) Text(' The second paragraph.');Text(' The second paragraph.');
Structured ASIC Xcellence
Don’t forget to reset variables
to 0
When you create a variable and When you create a variable and assign a value to it remember at assign a value to it remember at some point in your script you will some point in your script you will want to reset the variable to 0 so in want to reset the variable to 0 so in the next iteration of the loop the the next iteration of the loop the script will not use an old value. script will not use an old value.
Structured ASIC Xcellence
Framescript editors
The editor I used was only good for The editor I used was only good for about 1000 lines of code then it hung about 1000 lines of code then it hung up.up.
I downloaded a free script editor I downloaded a free script editor from the internet.from the internet.
Structured ASIC Xcellence
Questions???