Make the source file to the specctra freerouter help panel be html, not *.h

This makes it easier to preview the page in a browser.  Then autogenerate
    the *.h file from the html using a CMake script.
This commit is contained in:
dickelbeck 2009-12-03 06:25:35 +00:00
parent 1aaa7a9bf2
commit 58a05afbab
5 changed files with 114 additions and 27 deletions

View File

@ -5,6 +5,14 @@ Please add newer entries at the top, list the date and your name with
email address. email address.
2009-Dec-3 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
Make the source file to the specctra freerouter help panel be html, not *.h
This makes it easier to preview the page in a browser. Then autogenerate
the *.h file from the html using a CMake script.
2009-Nov-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr> 2009-Nov-05 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================ ================================================================================
++pcbnew ++pcbnew

12
CMakeModules/Html2C.cmake Normal file
View File

@ -0,0 +1,12 @@
# CMake script file to process a text file by wrapping every line in double quotes.
# Input file must not abuse quotes, staying with single quotes is probably best.
set( lines "" )
file( STRINGS ${inputFile} lines )
file( WRITE ${outputFile} "// Do not edit this file, it is autogenerated by CMake from an HTML file\n" )
foreach( line ${lines} )
file( APPEND ${outputFile} "\"" ${line} "\"\n" )
endforeach( line ${lines} )

View File

@ -188,7 +188,26 @@ if(APPLE)
set(MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) set(MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
endif(APPLE) endif(APPLE)
add_executable(pcbnew WIN32 MACOSX_BUNDLE ${PCBNEW_SRCS} ${PCBNEW_EXTRA_SRCS} ${PCBNEW_RESOURCES})
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help_html.h
COMMAND $(CMAKE_COMMAND)
-DinputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help.html
-DoutputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help_html.h
-P ${CMAKE_MODULE_PATH}/Html2C.cmake
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help.html
COMMENT "creating ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help_html.h
from ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help.html"
)
#add_dependencies( dialog_freeroute_exchange.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help_html.h )
set_source_files_properties( dialog_freeroute_exchange.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialog_freeroute_exchange_help_html.h )
add_executable(pcbnew WIN32 MACOSX_BUNDLE ${PCBNEW_SRCS}
${PCBNEW_EXTRA_SRCS}
${PCBNEW_RESOURCES}
)
if(APPLE) if(APPLE)
set_target_properties(pcbnew PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) set_target_properties(pcbnew PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)

View File

@ -0,0 +1,73 @@
<html>
<!-- This file is used to autogenerate a *.h file, but you can load it into a browser to preview -->
<h1>Freerouter Guidelines:</h1>
<ol>
<li> in pcbnew: establish the number of layers, and save the new *.brd file.</li><br>
<li> in a text editor: load the board (*.brd) file, and edit the layer names and types.
These should look something like this:
<ul>
<li>Layer[0] Back signal</li>
<li>Layer[1] Power power</li>
<li>Layer[2] V2_Signal signal</li>
<li>Layer[3] H1_Signal signal</li>
<li>Layer[4] Ground power</li>
<li>Layer[15] Front signal</li>
</ul><br>
Notice that after the layer name there is a layer type field, either 'signal' or 'power'.
Any layer identified as 'power' will be removed from the layer menu in Freerouter,
as this will be assumed to contain a power zone.
</li><br>
<li> in pcbnew: re-load the board, and establish board perimeter.</li><br>
<li> in pcbnew: load in the netlist so you have all the components defined and instantiated.</li><br>
<li> in pcbnew: establish any zones, inclusive of net association.</li><br>
<li> in pcbnew: do the degree of component placements you are comfortable with.
It is a little easier to accurately position components in pcbnew than in
freerouter, but either will work.</li><br>
<li> in pcbnew: set up the netclasses. Power traces might be a little thicker
than signal traces. If so, add a netclass called 'power'.
Make its traces thicker than what you establish for netclass 'Default'.
Set trace width, spacing and vias for each netclass.</li><br>
<li> in pcbnew: export to DSN.</li><br>
<li> load up freerouter (keep it running for any subsequent iterations of 5) through 16) here).</li><br>
<li> in freerouter: load the project's *.dsn file. Immediately after a load, all
components and traces (if any) will initially be 'fixed'. This is a 'lock
in place' toggle that you can undo by selecting a region with your mouse
and then selecting 'Unfix' from the menu. Occassionally you may want to
re-fix a trace or a part, if only temporarily. This keeps it locked in
place.
</li><br>
<li> useful, not mandatory: in freerouter: set your move snap modulus, which seems
to default to 1 internal unit.
20 mils in x and in y is about reasonable.</li><br>
<li> in freerouter: finish placing any components, you can change sides of a part
here also, rotate, whatever.</li><br>
<li> in freerouter: route the board, and save frequently to a *.dsn file while
routing in case of power loss. Pick the menu option for saving a full *.dsn
file, not a session file (yet). The full freerouter *.dsn file is a superset
format, one that can be reloaded in the event of a power loss. Whereas the
*.ses file is not a complete design, but only with the *.brd file
constitutes a full design. So it is important to backup your work to a
*.dsn file while routing in case of power loss.</li><br>
<li> in freerouter: when done, or when you want to back import, then save as a session file, *.ses.</li><br>
<li> in pcbnew: backimport the session file</li><br>
<li> in pcbnew: at this point the zones have to be refilled. One way to do that
is to simply run DRC.</li>
</ol>
</html>

View File

@ -1,25 +0,0 @@
"<b>Guidelines:</b><br><br>\
<b>1)</b> in pcbnew: establish board perimeter.<br>\
<b>2)</b> in pcbnew: establish any zones, inclusive of net association.<br>\
<b>3)</b> in pcbnew: load in the netlist so you have all the components defined and instantiated.<br>\
<b>4)</b> in pcbnew: do the degree of component placements you are comfortable with.<br>\
It is a little easier to accurately position components in pcbnew than in freerouter, but either will work.<br>\
<b>5)</b> in pcbnew: set up the netclasses. power traces might be a little thicker.<br>\
so add a netclass called \"power\".<br>\
Make its traces thicker than what you establish for netclass \"Default\".<br>\
Set spacing and vias for each netclass.<br>\
<b>6)</b> in pcbnew: export to DSN.<br>\
<b>7)</b> load up freerouter (keep it running for any subsequent iterations of 6) through 14) here ).<br>\
<b>8)</b> in freerouter: load the project's *.dsn file.<br>\
<b>9)</b> useful, not mandatory: in freerouter: set your move snap modulus, which seems to default to 1 internal unit.<br>\
20 mils in x and in y is about reasonable.<br>\
<b>10)</b> in freerouter: finish placing any components, you can change sides of a part here also, rotate, whatever.<br>\
<b>11)</b> in freerouter: route the board, save frequently to a *.dsn file<br>\
while routing, in case of power loss, not yet a session file but a full *.dsn file.<br>\
The full freerouter *.dsn file is a superset format,\
one that fully defines the board and can be reloaded between power outages,\
whereas the *.ses file is not a complete design,\
but with the *.brd file constitutes a full design.<br>\
<b>12)</b> in freerouter: when done, or when you want to back import, then save as a session file, *.ses.<br>\
<b>13)</b> in pcbnew: backimport the session file<br>\
<b>14)</b> in pcbnew: at this point the zones have to be refilled. One way to do that is to simply run DRC."