On 1/3/2011 3:36 PM, Dick Hollenbeck wrote: > On 01/03/2011 01:58 PM, Dick Hollenbeck wrote: >> Wayne, >> >> I just made a commit that fixes some minor issues to a commit I made last >> night, and I can now see the inheritance mechanism working really pretty >> well. >>
Dick, I've attached the changes I made to the library part file specification last night. I updated all of the coordinates for dimensionless units. All I did was divide all of the coordinates by 50 (mils). I added a short blurb about logical coordinates. I also renamed route_pin_swap and route_alt_swap to hint_pin_swap and hint_alt_swap. I think route is too tool specific. A hinting system that is tool agnostic makes more sense to me. >> Today is a company holiday I was not aware of, so that gives me another day >> to work on this stuff in an active mode. My normal mode would be more >> intermittent, or weekend centric, than what I can spend on it today. Always a nice surprise. >> >> I will make another commit very late this evening, and then take a less >> active role for the remainder of the week, which could give you some time on >> it. I'll start messing around with it tonight as I have some to kill tonight. >> >> ================= >> >> Units: >> >> My thinking is that we do not have units, but if you wanted to name them >> they might be: >> >> "pin intervals", "pin spaces", or "pin deltas", which means of course, the >> standard minimum distance between two pins in the new EESCEMA. >> >> A value of 1 pin delta is what you'd often see in the Sweet strings, >> *between* pins, in either X or Y axes. I was thinking more in terms of logical units. All items that are connectible (pins, wires, labels, etc.) must have integer units to guarantee connectivity. All non-connectible items (lines, text, etc.) can have non-integer units as well. This way it doesn't matter internally what EESchema uses as it's coordinate scalar other than making sure you don't overflow or underflow the integer. >> >> >> ================= >> >> Internal Units: >> >> Do we want integers, floats, or doubles. (Haven't looked at the GAL yet to >> see what it likes.) If integers, then we need some internal unit. >> >> My suggestion there would be to use 1000 pin deltas. > > oops, I meant: > > My suggestion there would be to use 1/1000th of a pin delta as the internal > unit. Seems reasonable if you want to use 32 bit coordinates. > > >> This would give us the granularity to position within a 1/1000th of a normal >> minimum pin delta. And would give us the ability on the high end to go >> >> 4 billion (int32_t) / 1000 = 1 million pins per X or Y axis. I don't know if there would be a significant performance hit using 64 bit integers on 32 bit systems. I doubt it would be much of an issue for EESchema. Also, don't define it as an int32_t. Otherwise, it won't build on MSVC as stdint.h is not defined. Use wxInt32 instead. I learned this one the hard way. Wayne >> >> This way we simply multiple the Sweet strings coordinates by 1000 as we >> parse them into internal units. >> >> 10000 would also be reasonable, if you wanted to position something between >> pins within 1/10000th of a pin delta. >> >> What do folks think? >> >> Dick >> > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp >
eeschema_part_sexpr_format_EN.odt
Description: application/vnd.oasis.opendocument.text
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

