Commit 58a05afb authored by dickelbeck's avatar dickelbeck
Browse files

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.
parent 1aaa7a9b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -5,6 +5,14 @@ Please add newer entries at the top, list the date and your name with
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>
================================================================================
++pcbnew
+12 −0
Original line number Diff line number Diff line

# 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} )
+21 −2
Original line number Diff line number Diff line
@@ -188,7 +188,26 @@ if(APPLE)
    set(MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
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)
    set_target_properties(pcbnew PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
+73 −0
Original line number Diff line number Diff line
<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>
+0 −25
Original line number Diff line number Diff line
"<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."