← Back to team overview

kicad-developers team mailing list archive

Re: Append board in pcbnew

 

On 7/16/08, Moses O McKnight <moses@...> wrote:
>
> Hi Dick,
>
> Yes, I'm doing this for panelization.
>
> I don't know how it worked before because this is the first time I tried
> it.
>
> I expected it to import the board into the current file, without
> changing the file name, or current file settings.

This whole concept seems a bit awkward to me for pcbnew. I would have added
this functionality to the gerber viewer and not to pcbnew. If the gerber
viewer had this functionality along with the ability to save to panelized
gerbers, this might have been a better strategy in an alternate world.

I'm not sure that the component not moving had anything to do with with
> trying to append the boards. It would work sometimes but not work most
> of the time. I haven't tried the same operation on the original board
> yet.


This last paragraph is not clear. Please elaborate.

I think I see several other bugs as well and maybe some ideas for
> improvement. One thing is that pcbnew seems to lose the track and via
> sizes randomly. Sometimes they will be there when you open pcbnew up
> and then later they will be gone (they don't come back either). I
> haven't had them vanish during a session though. My idea is that maybe
> one could define a list of track and via sizes that would stay with the
> file until you changed them on purpose. And maybe have via hole sizes
> for each via size.


I agree. I would like to find time to implement "net classes". A net
class would contain a number of attributes of tracks and vias. Then any net
could be assigned a net class, and more than one net could be assigned the
same net class. There would be a default net class for any net not assigned
a net class. This would significantly enhance the routing within pcbnew as
well as the specctra export to freerouter. If you have not tried freerouter
yet, do so to get a clearer idea what I am talking about. You can also
read the specctra file format spec. (By the way, the real value of free
router to me has been its superior push and shove manual routing, not the
autorouting.)

The pcbnew "history mechanism" for via and track attributes could easily be
replaced with net class support.

I cannot think why your history records are occassionally disappearing, I
don't recall experiencing that. But I would not be inclined to fix it given
my statements above about net classes.


Another idea is to either change the net names when you append a board
> so there are no nets connected between boards, or make each board be its
> own object so we could re-read a netlist for each board.



I see you also are struggling with the whole concept of board import into
pcbnew. See my comments above about doing it in gerber viewer as an
alternative.

I'll be looking at the source code and trying to see if I can find out
> how things work so I can help work on some things if I get time. Any
> pointers as to how the code is structured would be great!



Run doxygen on the code, search this list for instructions on how to do
that. Then look at the class inheritance diagrams created in the html pages
generated.

Then get a good editor which has built-in multi-file grep functionality. I
use jedit.

Dick
 ------=_Part_28122_13423838.1216307032447 Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

<br><br><div><span class="gmail_quote">On 7/16/08, <b class="gmail_sendername">Moses O McKnight</b> &lt;<a href="mailto:moses@...";>moses@...</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Dick,<br> <br> Yes, I&#39;m doing this for panelization.<br> <br> I don&#39;t know how it worked before because this is the first time I tried<br> it.<br> <br> I expected it to import the board into the current file, without<br>
changing the file name, or current file settings.</blockquote><div><br>This whole concept seems a bit awkward to me for pcbnew.&nbsp; I would have added this functionality to the gerber viewer and not to pcbnew.&nbsp; If the gerber viewer had this functionality along with the ability to save to panelized gerbers, this might have been a better strategy in an alternate world.<br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> I&#39;m not sure that the component not moving had anything to do with with<br> trying to append the boards.&nbsp;&nbsp;It would work sometimes but not work most<br>
of the time.&nbsp;&nbsp;I haven&#39;t tried the same operation on the original board<br> yet.</blockquote><div><br>This last paragraph is not clear.&nbsp;&nbsp; Please elaborate.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I think I see several other bugs as well and maybe some ideas for<br> improvement.&nbsp;&nbsp;One thing is that pcbnew seems to lose the track and via<br> sizes randomly.&nbsp;&nbsp;Sometimes they will be there when you open pcbnew up<br> and then later they will be gone (they don&#39;t come back either).&nbsp;&nbsp;I<br>
haven&#39;t had them vanish during a session though.&nbsp;&nbsp;My idea is that maybe<br> one could define a list of track and via sizes that would stay with the<br> file until you changed them on purpose.&nbsp;&nbsp;And maybe have via hole sizes<br>
for each via size.</blockquote><div><br>I agree. &nbsp; I would like to find time to implement &quot;net classes&quot;.&nbsp; A net class would contain a number of attributes of tracks and vias.&nbsp; Then any net could be assigned a net class, and more than one net could be assigned the same net class.&nbsp; There would be a default net class for any net not assigned a net class.&nbsp; This would significantly enhance the routing within pcbnew as well as the specctra export to freerouter.&nbsp; If you have not tried freerouter yet, do so to get a clearer idea what I am talking about.&nbsp;&nbsp; You can also read the specctra file format spec.&nbsp; (By the way, the real value of free router to me has been its superior push and shove manual routing, not the autorouting.)<br>
<br>The pcbnew &quot;history mechanism&quot; for via and track attributes could easily be replaced with net class support.<br><br>I cannot think why your history records are occassionally disappearing, I don&#39;t recall experiencing that.&nbsp; But I would not be inclined to fix it given my statements above about net classes.<br>
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> Another idea is to either change the net names when you append a board<br> so there are no nets connected between boards, or make each board be its<br>
own object so we could re-read a netlist for each board.</blockquote><div><br><br>I see&nbsp; you also are struggling with the&nbsp; whole concept of board import into pcbnew.&nbsp; See my comments above about doing it in gerber viewer as an alternative.<br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> I&#39;ll be looking at the source code and trying to see if I can find out<br> how things work so I can help work on some things if I get time.&nbsp;&nbsp;Any<br>
pointers as to how the code is structured would be great!</blockquote><div><br><br>Run doxygen on the code, search this list for instructions on how to do that.&nbsp; Then look at the class inheritance diagrams created in the html pages generated.<br>
<br>Then get a good editor which has built-in multi-file grep functionality.&nbsp; I use jedit.<br><br>Dick<br><br></div></div><br>
 ------=_Part_28122_13423838.1216307032447-- 




Follow ups

References