At 03:40 PM 10/18/01 -0600, Colby Siemer wrote:
>Ted,
>
>The reason Protel will not import the gerber properly is because of the way
>the DCodes are done in the CAMTastic version being used.
>
>Protel needs to have the DCode listed each time, it does not assume the last
>used DCode if it is missing.  CamTastic only lists it one time until the
>code changes then it lists it again.

Note that this refers to the D-Code for flash or for draw, which is D01 or 
D02, I forget which is which. The line format, at least the usual one, is

X[x1]Y[y1]Dnn*

where x1 and y1 are integers formatted according to the settings. When you 
want to examine a file, it can be useful to set zero suppression to none, 
so every coordinate will be the same length. That makes it easy to set up 
field in a database.

Anyway, the RS-274 standard is that a parameter remains the same unless it 
is changed. So if you have, for example, two points with the same X 
coordinate, you could draw a line between the two without having to specify 
the X coordinate twice. Protel reads this correctly.

The same thing is true for the D-codes which specify the aperture. One does 
not have to specify the aperture over and over again, it simply remains 
what it was when it was last set.

It had never occurred to me that the D-command at the end of the line would 
be the same way. But it is. A line like
X[xvalue]*
will either draw or flash depending on the last used D-code. The asterisk 
is sufficient in that case. (CR/Line Feed is irrelevant to Gerber code as I 
recall, but it is usually used, makes it much easier to read! And Protel 
might require it, I think.)

I could not see any option in CAMtastic which would control this feature in 
the output. CAMtastic apparently assumes that it is universally known; 
indeed, it should be. It was an error for the Protel programmers to assume 
that imported gerber was Protel-generated. Yes, they might not have wanted 
to implement the full standard, but this item was trivial. It would 
probably take me about twenty minutes to write a program to restore the 
D-codes, and that is long because I haven't done any programming recently, 
and I tend to make lots of dumb mistakes.

If someone has the time and inclination to write it, we could put up a 
utility to restore the missing D-codes. The algorithm is
1. read line, drop asterisk
2. parse D-code, save as X$
3. if no D-code, write previous X$ at end
4. add asterisk
5. write line
back to 1 until file end.



[EMAIL PROTECTED]
Abdulrahman Lomax
Easthampton, Massachusetts USA

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
*
* To leave this list visit:
* http://www.techservinc.com/protelusers/leave.html
*
* Contact the list manager:
* mailto:[EMAIL PROTECTED]
*
* Forum Guidelines Rules:
* http://www.techservinc.com/protelusers/forumrules.html
*
* Browse or Search previous postings:
* http://www.mail-archive.com/proteledaforum@techservinc.com
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to