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:
parent
1aaa7a9bf2
commit
58a05afbab
|
@ -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
|
||||||
|
|
|
@ -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} )
|
|
@ -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)
|
||||||
|
|
|
@ -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>
|
|
@ -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."
|
|
Loading…
Reference in New Issue