DIY Layout Creator - software for easy drawing PCB, vero and perfboard layouts

Started by bancika, May 01, 2006, 08:00:21 PM

Previous topic - Next topic

dschwartz

is not necessary a mirrored image for transfer...but i think better resolution is needed...

bancika, about layers...simply a trace/parts/both switch will do..

and i dont know if is much to ask but i would be great if when you move a part, the traces moves too...
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

Quote
is not necessary a mirrored image for transfer...but i think better resolution is needed...

I don't think resolution will be an issue when you print directly from the application, it appears that Java prints drawings with higher resolution. Try to print something and you'll see. It's not aligned well (and maybe scaled well) but you'll get the point.

Quote from: dschwartz on December 16, 2007, 06:01:12 PM
bancika, about layers...simply a trace/parts/both switch will do..

and i dont know if is much to ask but i would be great if when you move a part, the traces moves too...

see, that's the problem. For both of these tasks program would have to know in advance about trace component, which breaks the base of my component engine: components should be independent of application.
For second item, I'll see if I could introduce relations between components (saying, resistor is related with solder pad and it automatically creates it), but it's still something I don't like too much. Components would have to know about each other, which sucks...

Cheers
The new version of DIY Layout Creator is out, check it out here


dschwartz

well i don´t know what you mean by "knowing in advance".. is something like loading the parts on the memory?..

and i don´t know if youre using a database or a text file or what to make this thing run..but i thought that was just filtering the layout like "select parts from engine where part_type=pcbtrace"..but obviously youre using a much more advanced approach...

well i´m just a dirty diper baby compared to you as far as programming concerns  :icon_redface: :icon_redface: :icon_redface:
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

the thing is, program does not know that it will have trace or or any other component installed at all. Everything is made completely abstract, layout is defined as an array or components. Component is abstract "thing" defined by two parts: component definition from XML file and component implementation from DIY file (user defined settings, like component value, position in the layout etc). So it shouldn't know or care if it has or does not have component X installed, it treats them all the same anyways. Currently, none of component names (like trace, resistor, tube) are mentioned in the source code *ever*. This change would require me to hard code something like you have written part_type=pcbtrace which is exactly the thing I'd like to avoid. And here's why: say I do hard code it today and tomorrow I come up with the idea to add solder pads. Besides making new XML file component I'd have to change the program as well because pads should be also visible when you export PCB. The day after that something else might come up, like I decide to rename pcbtrace component - another code change. Sounds messy and harder to maintain, right?
But, as I mentioned before, if you could toggle every layer on and off this could be done nicely and clean. Traces and pads are drawn in the same layer so selecting only that layer would give you what you need. Any clearer?
The new version of DIY Layout Creator is out, check it out here


dschwartz

yes.. i see, the layer approach is much better..
As i understood what you said..
the drawings are abstract, no special attributes for any component, just xml code interpreted as a drawing, not as a bunch of parts..

si, yes, the only way is to separate components and traces by layers, two or more xml drawings one over the other.. i see..

that approach is very efficient i think, but it difficults to make relationships between parts, therefore, it works just like a drawing tool with a library.. wich is really great!!!

but consider the potential of letting the code to know what´s what and interacts with what..  for example we could collaboratively, make a set of object rules..like "opamp must have V+ and gnd connected" or "R9 is not connected to anything" or "The drain of this fet is connected to ground"..

I know, i know..is beyond scope... but shows the potential of you GREAT work!!!!
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

Yeah, having relations would be the next step, but I'll have to think really hard how to make it good enough not to break any of good stuff I got with this engine so far.
The first problem with it I see is, how to describe relations in component model?? Relations could be quite complex.
The new version of DIY Layout Creator is out, check it out here


dschwartz

well..
dont try to implement it yet, or even try to think about it..just go on making your ideas work fine..

is so typical when SW projects crash when trying to satisfy every stakeholder....the goal here is to make a useful tool for Diyers to make their own PCB´s and layouts..not a super duper complete tool...leave that for tomorrow..

i´ll bet we all prefer a simpler, good working tool, over a tool full of features that works no so good..
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

good point, lets finish drawing model first. Once most of people are happy with what it can do, I could try to implement more complex stuff with one limit: not to screw up what's already there. That should be ok.
The new version of DIY Layout Creator is out, check it out here


scaesic

Quote from: bancika on December 17, 2007, 11:12:47 AM
good point, lets finish drawing model first. Once most of people are happy with what it can do, I could try to implement more complex stuff with one limit: not to screw up what's already there. That should be ok.

here's just an idea, dunno if you've thoguht of it before.

When people move a component they want the trace to stay connected, but this requires the component parts to be coupled in a way which makes the program more complicated.

Here's a partial solution - have components drawn with pcb pads attached on the end of their leads (which you could turn on/off in the properties of the component - because you dont need a pcb pad if you're drawing a vero/strip). That way if you want to shift a resistor along a length of trace, then the pcb pad moves with it, if you move it off the trace you'll just have to re-draw the trace. which seems fine to me as moving a resistor along a length of pre-exsisting trace should be irrelevent, but moving it to an abitrary point requires a little more thought - hence it shouldnt be a problem to re-draw the trace.

bancika

your idea is good from the standpoint of relations between components. But I don't like it for two reasons:

  • Those solder pads would be a part of resistor and would belong to the same drawing layer, so it would make complicated to "extract" just the PCB part of the layout for export
  • Related with the previous, those pads would have nothing in common with "regular" pads you would create from the menu, so we loose in consistency...
The new version of DIY Layout Creator is out, check it out here


scaesic

Quote from: bancika on December 17, 2007, 01:56:45 PM
your idea is good from the standpoint of relations between components. But I don't like it for two reasons:

  • Those solder pads would be a part of resistor and would belong to the same drawing layer, so it would make complicated to "extract" just the PCB part of the layout for export
  • Related with the previous, those pads would have nothing in common with "regular" pads you would create from the menu, so we loose in consistency...

your first point is a very good one, but i dont think it'd be impossible.

The second point i'm not convinced on, surely this would mean that the pcb pad component then becomes a means to input/output/offboard wiring only, which has a different function and doesnt necesarily NEED to be consistent, and it'd cut down a hell of a lot on the amount of pcb pads you'd need to place. Despite this, if they were aesthetically identical, then would it make a differece?


In any case, this is just for arguments sake, i don't think it's necessary at all.

a second partial solution: have the program automatically place the pcb pad component where the lead ends are - i knwo this requires some coupling which you want to avoid though.

dschwartz

bancika, please dont let us place the solder pads for each part!!! we will go crazy!!!
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

Quote from: dschwartz on December 17, 2007, 02:18:22 PM
bancika, please dont let us place the solder pads for each part!!! we will go crazy!!!

haha, I hope you won't have to :)
The new version of DIY Layout Creator is out, check it out here


dschwartz

 :icon_rolleyes: i think is a must...
just imaging placing 140 solder pads..ouch!!!
----------------------------------------------------------
Tubes are overrated!!

http://www.simplifieramp.com

bancika

Another thing that makes it little more complicated. How can we know if we need to create child pads or not? Boards are treated just like any other components, so there's no way to know if we have PCB or stripboard (you can have both at the same time). It would be annoying to create pads all time, imagine deleting 140 pads you didn't want :icon_lol:
The new version of DIY Layout Creator is out, check it out here


scaesic

Quote from: bancika on December 17, 2007, 04:33:41 PM
It would be annoying to create pads all time, imagine deleting 140 pads you didn't want :icon_lol:

Except you could have an option to turn the auto creation off, you could call it "pcb mode".

bancika

I'll have to think about it and get back to you guys, really don't want to make whole thing more complicated than it has to be.
Cheers
The new version of DIY Layout Creator is out, check it out here


bancika

I placed new alpha here http://www.storm-software.co.yu/diylc/diylc_alpha.zip
A few new components added (hope you like them), few smaller improvements, combo box support for component properties (so now you can choose font style, jack type and stuff like that), metric ruler is more precise, library is scrollable, etc.
Hope you like it.
The new version of DIY Layout Creator is out, check it out here


scaesic

one thing i'd really like. If the ascii delete key worked to delete items.
Drop down list of fonts would be good too.

otherwise, the library is becoming pretty full.

something that i find pretty weird is, if you continually rotate an item using the rotate button, it'll go for a walk across the screen, nothing to worry about unless you continually roatate items.

bancika

yeah, keyboard ceased to work when I introduce scrollbox, before that delete and arrow keys were working just fine...I'll fix that.
As far as rotation is concerned, it's not a simple issue. Consider simple component like trace, contained of two control points. When you try to rotate it, program will choose center of trace but rounded to the nearest grid node. Without rounding you could end up with points not aligned to the grid once you rotate. So the problem is when distance between points is an odd number. Also, problem is when you have more than one control point, like schematic symbols. They have two points + one point for text. Program finds center of triangle formed by those 3 points and rotates around it. With current engine, it's not possible to exclude control point when rotating.
The new version of DIY Layout Creator is out, check it out here