kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #02466
Re: Joining the dev group
-
To:
kicad-devel@xxxxxxxxxxxxxxx
-
From:
Matt Wright <ausinine@...>
-
Date:
Sat, 2 May 2009 09:39:34 +0800
-
In-reply-to:
<49FADF33.9040100@...>
--0016e6469c045a68250468e40053 Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
2009/4/30 Vesa Solonen <vsolonen@...>:
>
>
> On Thu, 30 Apr 2009, Matt Wright wrote:
>
>> While I was using Kicad there were a few features that would have improved
>> my own personal usage,
>> particularly in gerbview. One of these is the ability to mirror blocks
>> (maybe not much use if you're
>> getting the pcb manufactured, but I use it for home etching).
>
> Could you explain a bit more why would you need block mirroring in home
> etching? Doesn't mirrored printing or plotting work? Sometimes I have
> done "print panelization" for toner transfer prcess by hand (text editor)
> from PS files, but Inkscape works too if you don't have too complicated
> design. Inkscape seems to crash. Oh, and nice to see more interest in
> developing Kicad.
>
> -Vesa
Mirrored printing would work fine, except my printer driver doesn't
support it. Exporting and panelizing/mirroring in external programs or
by hand would work too, but it seemed to me like this was not an ideal
workflow. Before using kicad I tried exporting to SVG with gerbv to
mirror in Inkscape, but ran into problems when the process didn't
preserve dimensions correctly. I haven't found an easy to use open
source program to panelize or post-process gerber files, and I was
thinking putting some work into gerbview might take it some way
towards this goal, and provide a more cohesive workflow in the
process.
Thanks for the tips on paper choice, too.
2009/5/1 Dick Hollenbeck <dick@...>
>
>
> Matt Wright wrote:
> >
> >
> > Hi all,
> >
> > I've recently started using Kicad, and so far I've found it the best
> > of the alternatives I've tried. I'll probably be using it a lot in the
> > future so I'd like to contribute to the project, if there's anything I
> > can do to help.
> >
> > My name is Matt Wright. I'd probably count as a relative beginner
> > programmer of C++ - I don't have much experience working on team
> > projects or contributing to open source programs.
> >
> > While I was using Kicad there were a few features that would have
> > improved my own personal usage, particularly in gerbview. One of these
> > is the ability to mirror blocks (maybe not much use if you're getting
> > the pcb manufactured, but I use it for home etching). I've attached a
> > small patch, if you're interested. I've tried to follow existing code
> > style, but please let me know if there's anything you'd like done
> > differently.
> Matt,
>
> Thanks for the patch. It looks pretty good. I have two suggestions:
>
> 1) change your two while loops to for loops:
>
> for( TRACK* track = m_Pcb->m_Track; track; track = track->Next() )
>
> This way we can see the track = track->Next() which is part of the
> iteration. If the iterated block was smaller this would not be as big
> of a concern.
>
> 2) Put in a Doxygen compatible comment in the header file. The Doxygen
> config file is setup for header file precidence so we want nice comments
> in the header. I usually don't put any comment in the *.cpp file, as it
> means duplicate maintenance.
>
> See function INSPECTOR::Inspect() in base_struct.h as a good example.
> Then run Doxygen on your project and look at the HTML results of your
> comment and others. You can use the <p> to put in a paragraph into the
> output.
>
> If you resubmit the patch I will commit it.
Done and done. Thanks for the suggestions, modified patch is attached.
> >
> > On a related note, I know this has been asked a few times on the
> > mailing list, but just to double-check my understanding, what is the
> > etiquette with changes to the program? It seems like there are a few
> > locations for work to be done - TODO.txt and the bug and feature
> > tracking pages. Any I've missed? I think it's been said before that
> > small changes can just be submitted (for people with svn write
> > permissions of course). Is this still accurate?
> Yes.
>
> > What's the suggested procedure for larger changes like most additional
> > features? Bouncing the idea and implementation plan off the mailing
> > list first?
>
> Since you are a beginner it would be appreciated if you can post the
> patches any larger than say 10 lines to this list for awhile.
Sure, no problem. I'll do that until I get told otherwise.
> > Adding an entry to the feature tracker and waiting for comment?
>
> Well if you don't plan on coding it yourself, putting it on the tracker
> will keep it from getting lost. Things on this list get lost, and in
> fact anybody that is not subscribed to this list will never even see any
> attachments to it. Those that subscribe can get the whole attachment as
> I recall.
>
> Dick
I've got no problem coding the changes, my concern was that ideas
might not match plans for kicad as a whole, or the implementation
might not be the best option to take. When in doubt, I'll probably see
if there are any objections on the mailing list first.
--0016e6469c045a68250468e40053 Content-Type: text/x-patch; charset=US-ASCII; name="20090502_gerbview_mirror_block.patch"
Content-Disposition: attachment;
filename="20090502_gerbview_mirror_block.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fu7n8d411
SW5kZXg6IGdlcmJ2aWV3L29ucmlnaHRjbGljay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2VyYnZpZXcv
b25yaWdodGNsaWNrLmNwcAkocmV2aXNpb24gMTc0NykKKysrIGdlcmJ2aWV3L29ucmlnaHRjbGlj
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICAgICAgICAgICAgICAgICBQ
b3BNZW51LT5BcHBlbmQoIElEX1BPUFVQX1BMQUNFX0JMT0NLLCBfKCAiUGxhY2UgQmxvY2siICkg
KTsKICAgICAgICAgICAgICAgICBQb3BNZW51LT5BcHBlbmQoIElEX1BPUFVQX0NPUFlfQkxPQ0ss
IF8oICJDb3B5IEJsb2NrIChzaGlmdCBtb3VzZSkiICkgKTsKICAgICAgICAgICAgICAgICBQb3BN
ZW51LT5BcHBlbmQoIElEX1BPUFVQX0RFTEVURV9CTE9DSywgXyggIkRlbGV0ZSBCbG9jayAoY3Ry
bCArIGRyYWcgbW91c2UpIiApICk7CisgICAgICAgICAgICAgICAgUG9wTWVudS0+QXBwZW5kKCBJ
RF9QT1BVUF9NSVJST1JfWF9CTE9DSywgXyggIk1pcnJvciBCbG9jayIgKSApOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFBvcE1lbnUtPkFwcGVuZCgg
SURfUE9QVVBfQ0FOQ0VMX0NVUlJFTlRfQ09NTUFORCwgXyggIkNhbmNlbCIgKSApOwpJbmRleDog
Z2VyYnZpZXcvZWRpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2VyYnZpZXcvZWRpdC5jcHAJKHJldmlz
aW9uIDE3NDcpCisrKyBnZXJidmlldy9lZGl0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYg
KzEwMCw3IEBACiAgICAgewogICAgIGNhc2Ugd3hJRF9DVVQ6CiAgICAgY2FzZSB3eElEX0NPUFk6
CisgICAgY2FzZSBJRF9QT1BVUF9NSVJST1JfWF9CTE9DSzoKICAgICBjYXNlIElEX1BPUFVQX0RF
TEVURV9CTE9DSzoKICAgICBjYXNlIElEX1BPUFVQX1BMQUNFX0JMT0NLOgogICAgIGNhc2UgSURf
UE9QVVBfWk9PTV9CTE9DSzoKQEAgLTI4Nyw2ICsyODgsMTIgQEAKICAgICAgICAgSGFuZGxlQmxv
Y2tFbmQoICZkYyApOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgSURfUE9QVVBfTUlSUk9S
X1hfQkxPQ0s6CisgICAgICAgIEdldFNjcmVlbigpLT5CbG9ja0xvY2F0ZS5tX0NvbW1hbmQgPSBC
TE9DS19NSVJST1JfWDsKKyAgICAgICAgR2V0U2NyZWVuKCktPkJsb2NrTG9jYXRlLlNldE1lc3Nh
Z2VCbG9jayggdGhpcyApOworICAgICAgICBIYW5kbGVCbG9ja0VuZCggJmRjICk7CisgICAgICAg
IGJyZWFrOworCiAgICAgY2FzZSBJRF9HRVJCVklFV19QT1BVUF9ERUxFVEVfRENPREVfSVRFTVM6
CiAgICAgICAgIGlmKCBnZXJiZXJfbGF5ZXIgKQogICAgICAgICAgICAgRGVsZXRlX0RDb2RlX0l0
ZW1zKCAmZGMsIGdlcmJlcl9sYXllci0+bV9TZWxlY3RlZF9Ub29sLCAoKFBDQl9TQ1JFRU4qKUdl
dFNjcmVlbigpKS0+bV9BY3RpdmVfTGF5ZXIgKTsKSW5kZXg6IGdlcmJ2aWV3L2Jsb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBnZXJidmlldy9ibG9jay5jcHAJKHJldmlzaW9uIDE3NDcpCisrKyBnZXJi
dmlldy9ibG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw2ICsxNzQsMTIgQEAKICAgICAg
ICAgICAgIEJsb2NrX0RlbGV0ZSggREMgKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAg
IGNhc2UgQkxPQ0tfTUlSUk9SX1g6IC8qIE1pcnJvciovCisgICAgICAgICAgICBHZXRTY3JlZW4o
KS0+QmxvY2tMb2NhdGUubV9TdGF0ZSA9IFNUQVRFX0JMT0NLX1NUT1A7CisgICAgICAgICAgICBE
cmF3UGFuZWwtPk1hbmFnZUN1cnNldXIoIERyYXdQYW5lbCwgREMsIEZBTFNFICk7CisgICAgICAg
ICAgICBCbG9ja19NaXJyb3JfWCggREMgKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAg
IGNhc2UgQkxPQ0tfUk9UQVRFOiAvKiBVbnVzZWQgKi8KICAgICAgICAgICAgIGJyZWFrOwogCkBA
IC0xOTIsNyArMTk4LDYgQEAKIAogICAgICAgICBjYXNlIEJMT0NLX0FCT1JUOgogICAgICAgICBj
YXNlIEJMT0NLX1NFTEVDVF9JVEVNU19PTkxZOgotICAgICAgICBjYXNlIEJMT0NLX01JUlJPUl9Y
OgogICAgICAgICBjYXNlIEJMT0NLX01JUlJPUl9ZOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KQEAgLTM2Niw2ICszNzEsNjYgQEAKIH0KIAogCisvKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZCBXaW5FREFfQmFzZVBjYkZyYW1lOjpC
bG9ja19NaXJyb3JfWCggd3hEQyogREMgKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqICBGdW5jdGlvbiB0byBtaXJyb3IgaXRlbXMg
aW4gdGhlIGN1cnJlbnQgc2VsZWN0ZWQgYmxvY2sKKyAqLworeworICAgIGludCAgICAgeG9mZnNl
dCA9IDA7CisgICAgd3hQb2ludCBvbGRwb3M7CisKKyAgICBvbGRwb3MgPSBHZXRTY3JlZW4oKS0+
bV9DdXJzZXVyOworICAgIERyYXdQYW5lbC0+TWFuYWdlQ3Vyc2V1ciA9IE5VTEw7CisKKyAgICBH
ZXRTY3JlZW4oKS0+bV9DdXJzZXVyID0gb2xkcG9zOworICAgIERyYXdQYW5lbC0+TW91c2VUb0N1
cnNvclNjaGVtYSgpOworICAgIEdldFNjcmVlbigpLT5TZXRNb2RpZnkoKTsKKyAgICBHZXRTY3Jl
ZW4oKS0+QmxvY2tMb2NhdGUuTm9ybWFsaXplKCk7CisKKyAgICAvKiBDYWxjdWxhdGUgb2Zmc2V0
IHRvIG1pcnJvciB0cmFjayBwb2ludHMgZnJvbSBibG9jayBlZGdlcyAqLworICAgIHhvZmZzZXQg
PSBHZXRTY3JlZW4oKS0+QmxvY2tMb2NhdGUubV9Qb3MueCArIEdldFNjcmVlbigpLT5CbG9ja0xv
Y2F0ZS5tX1Bvcy54CisgICAgICAgICAgICAgICsgR2V0U2NyZWVuKCktPkJsb2NrTG9jYXRlLm1f
U2l6ZS54OworCisgICAgLyogTW92ZSB0aGUgVHJhY2sgc2VnbWVudHMgaW4gYmxvY2sgKi8KKyAg
ICBmb3IoIFRSQUNLKiB0cmFjayA9IG1fUGNiLT5tX1RyYWNrOyAgdHJhY2s7ICB0cmFjayA9IHRy
YWNrLT5OZXh0KCkgKQorICAgIHsKKyAgICAgICAgaWYoIElzU2VnbWVudEluQm94KCBHZXRTY3Jl
ZW4oKS0+QmxvY2tMb2NhdGUsIHRyYWNrICkgKQorICAgICAgICB7CisgICAgICAgICAgICBtX1Bj
Yi0+bV9TdGF0dXNfUGNiID0gMDsKKyAgICAgICAgICAgIHRyYWNrLT5EcmF3KCBEcmF3UGFuZWws
IERDLCBHUl9YT1IgKTsgICAvLyBlcmFzZSB0aGUgZGlzcGxheQorICAgICAgICAgICAgdHJhY2st
Pm1fU3RhcnQueCA9IHhvZmZzZXQgLSB0cmFjay0+bV9TdGFydC54OworICAgICAgICAgICAgdHJh
Y2stPm1fRW5kLnggICA9IHhvZmZzZXQgLSB0cmFjay0+bV9FbmQueDsKKworICAgICAgICAgICAg
Ly8gdGhlIHR3byBwYXJhbWV0ZXJzIGFyZSB1c2VkIGluIGdlcmJ2aWV3IHRvIHN0b3JlIGNlbnRy
ZSBjb29yZGluYXRlcyBmb3IgYXJjcy4KKyAgICAgICAgICAgIC8vIG1vdmUgdGhpcyBjZW50cmUK
KyAgICAgICAgICAgIHRyYWNrLT5tX1BhcmFtID0geG9mZnNldCAtIHRyYWNrLT5tX1BhcmFtOwor
ICAgICAgICAgICAgdHJhY2stPkRyYXcoIERyYXdQYW5lbCwgREMsIEdSX09SICk7IC8vIHJlZHJh
dyB0aGUgbW92ZWQgdHJhY2sKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIE1vdmUgdGhlIFpv
bmUgc2VnbWVudHMgaW4gYmxvY2sgKi8KKyAgICBmb3IoIFNFR1pPTkUqIHpzZWdtZW50ID0gbV9Q
Y2ItPm1fWm9uZTsgenNlZ21lbnQ7IHpzZWdtZW50ID0genNlZ21lbnQtPk5leHQoKSApCisgICAg
eworICAgICAgICBpZiggSXNTZWdtZW50SW5Cb3goIEdldFNjcmVlbigpLT5CbG9ja0xvY2F0ZSwg
enNlZ21lbnQgKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHpzZWdtZW50LT5EcmF3KCBEcmF3
UGFuZWwsIERDLCBHUl9YT1IgKTsgICAvLyBlcmFzZSB0aGUgZGlzcGxheQorICAgICAgICAgICAg
enNlZ21lbnQtPm1fU3RhcnQueCA9IHhvZmZzZXQgLSB6c2VnbWVudC0+bV9TdGFydC54OworICAg
ICAgICAgICAgenNlZ21lbnQtPm1fRW5kLnggICA9IHhvZmZzZXQgLSB6c2VnbWVudC0+bV9FbmQu
eDsKKworICAgICAgICAgICAgLy8gdGhlIHR3byBwYXJhbWV0ZXJzIGFyZSB1c2VkIGluIGdlcmJ2
aWV3IHRvIHN0b3JlIGNlbnRyZSBjb29yZGluYXRlcyBmb3IgYXJjcy4KKyAgICAgICAgICAgIC8v
IG1vdmUgdGhpcyBjZW50cmUKKyAgICAgICAgICAgIHpzZWdtZW50LT5tX1BhcmFtID0geG9mZnNl
dCAtIHpzZWdtZW50LT5tX1BhcmFtOworICAgICAgICAgICAgenNlZ21lbnQtPkRyYXcoIERyYXdQ
YW5lbCwgREMsIEdSX09SICk7IC8vIHJlZHJhdyB0aGUgbW92ZWQgem9uZSB6ZWdtZW50CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgRHJhd1BhbmVsLT5SZWZyZXNoKCBUUlVFICk7Cit9CisK
KwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog
dm9pZCBXaW5FREFfQmFzZVBjYkZyYW1lOjpCbG9ja19EdXBsaWNhdGUoIHd4REMqIERDICkKIC8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KSW5kZXg6
IGluY2x1ZGUvd3hQY2JTdHJ1Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbmNsdWRlL3d4UGNiU3RydWN0
LmgJKHJldmlzaW9uIDE3NDcpCisrKyBpbmNsdWRlL3d4UGNiU3RydWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxNiwxMSArMzE2LDQxIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBnYXJkZSwgaW50IHRyYWNldmlhLCBpbnQgbW9kZXRyYWNlICk7CiAK
ICAgICAvKiBCbG9jayBvcGVyYXRpb25zOiAqLworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIEJs
b2NrX0RlbGV0ZQorICAgICAqIGRlbGV0ZXMgYWxsIHRyYWNrcyBhbmQgc2VnbWVudHMgd2l0aGlu
IHRoZSBzZWxlY3RlZCBibG9jay4KKyAgICAgKiBEZWZpbmVkIHNlcGFyYXRlbHkgaW4gcGNibmV3
IGFuZCBnZXJidmlldworICAgICAqCisgICAgICogQHBhcmFtIERDIEEgZGV2aWNlIGNvbnRleHQg
dG8gZHJhdyBvbi4KKyAgICAgKi8gICAgCiAgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgIEJs
b2NrX0RlbGV0ZSggd3hEQyogREMgKTsKICAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgQmxv
Y2tfUm90YXRlKCB3eERDKiBEQyApOwogICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICBCbG9j
a19JbnZlcnQoIHd4REMqIERDICk7CisgICAgLyoqCisgICAgICogRnVuY3Rpb24gQmxvY2tfTW92
ZQorICAgICAqIG1vdmVzIGFsbCB0cmFja3MgYW5kIHNlZ21lbnRzIHdpdGhpbiB0aGUgc2VsZWN0
ZWQgYmxvY2suCisgICAgICogTmV3IGxvY2F0aW9uIGlzIGRldGVybWluZWQgYnkgdGhlIGN1cnJl
bnQgb2Zmc2V0IGZyb20gdGhlIHNlbGVjdGVkIGJsb2NrJ3Mgb3JpZ2luYWwgbG9jYXRpb24uCisg
ICAgICogRGVmaW5lZCBzZXBhcmF0ZWx5IGluIHBjYm5ldyBhbmQgZ2VyYnZpZXcKKyAgICAgKgor
ICAgICAqIEBwYXJhbSBEQyBBIGRldmljZSBjb250ZXh0IHRvIGRyYXcgb24uCisgICAgICovCiAg
ICAgdm9pZCAgICAgICAgICAgICAgICAgICAgIEJsb2NrX01vdmUoIHd4REMqIERDICk7Ci0gICAg
dm9pZCAgICAgICAgICAgICAgICAgICAgIEJsb2NrX0R1cGxpY2F0ZSggd3hEQyogREMgKTsKKyAg
ICAvKioKKyAgICAgKiBGdW5jdGlvbiBCbG9ja19NaXJyb3JfWAorICAgICAqIG1pcnJvcnMgYWxs
IHRyYWNrcyBhbmQgc2VnbWVudHMgd2l0aGluIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYmxvY2sg
aW4gdGhlIFggYXhpcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBEQyBBIGRldmljZSBjb250ZXh0
IHRvIGRyYXcgb24uCisgICAgICovCisgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgIEJsb2Nr
X01pcnJvcl9YKCB3eERDKiBEQyApOworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIEJsb2NrX0R1
cGxpY2F0ZQorICAgICAqIGNvcGllcy1hbmQtbW92ZXMgYWxsIHRyYWNrcyBhbmQgc2VnbWVudHMg
d2l0aGluIHRoZSBzZWxlY3RlZCBibG9jay4gCisgICAgICogTmV3IGxvY2F0aW9uIGlzIGRldGVy
bWluZWQgYnkgdGhlIGN1cnJlbnQgb2Zmc2V0IGZyb20gdGhlIHNlbGVjdGVkIGJsb2NrJ3Mgb3Jp
Z2luYWwgbG9jYXRpb24uCisgICAgICogRGVmaW5lZCBzZXBhcmF0ZWx5IGluIHBjYm5ldyBhbmQg
Z2VyYnZpZXcKKyAgICAgKgorICAgICAqIEBwYXJhbSBEQyBBIGRldmljZSBjb250ZXh0IHRvIGRy
YXcgb24uCisgICAgICovCisgICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICBCbG9ja19EdXBs
aWNhdGUoIHd4REMqIERDICk7CiAKIAogICAgIC8vIGxheWVyaGFuZGxpbmc6Cg== --0016e6469c045a68250468e40053--
Follow ups
References