> >Is there any way within Protel 99SE's PCB tool to cause the view to be
> >from the bottom of the board rather than from the front?
> >
> >Ray Mitchell
> Yes (sort of)
> http://www.considered.com.au/Protel01.htm#CSFlipViewer
> Geoff Harland and I were working on a more difficult server to completely
> flip the database around an axis.  We struck multiple problems including
> different flip methods required for different objects due to
> inconsistencies in the SDK, the undo stack not seeming to log everything
> correctly and problems with extracting the layer pairs and some other
> stuff.  Some of these are presumably solvable with enough knowledge about
> the bugs in the SDK and some seem to be completely undocumented or
> unimplemented aspects of the SDK.  This development is pretty much on hold
> - a beta version was released but that was withdrawn.
> The above server will allow some a sort of bottom view.
> Ian Wilson

There is another possibility, but due care needs to be exercised if using
it. That possibility is to select *everything* in the PCB file, and then
mirror this about a vertical axis or horizontal axis.

Since the release of SP6 (for Protel 99 SE), you will be presented with a
warning box if the items about to be mirrored include components, because
producing Gerber files from mirrored components will result in PCBs that
can't have "real world" components installed on them. As such, if you do go
for this option, you will then need to re-mirror everything again (and
before producing Gerber files). (And when you do re-mirror everything again,
the same warning box will be re-invoked; Protel is not "conscious" of
whether components are currently in a mirrored state or not, because (unlike
String objects) Component objects do *not* (currently) incorporate a
Mirrored field (something which I am hoping will be rectified in Phoenix

If you add any new components to the PCB file while this is in a mirrored
state, you should then mirror such components as well (to match the
currently mirrored state of previously placed components, while keeping in
mind that the second mirroring of the PCB file will *toggle* the
(non-Protel-registered) mirrored status of *all* components within the PCB
file at that time).  That consideration is one example of why you need to be
careful if you run with this procedure.

Other aspects of going with this procedure is that Coordinate and Dimension
objects do *not* "mirror" properly (and that indeed is also a problematic
aspect with the alternative concept of "inverting" PCBs). However, as a PCB
file has to be re-mirrored again at a later stage (to restore all components
to an un-mirrored state), the associated problems are of a temporary nature
(but re-check the locations and properties of any Coordinate objects
following the second mirroring).

Because it does not have all of the features of Protel 99 SE, I believe that
I could *probably* implement an inverting server for use with Protel 98.
While I have written *most* of the associated code, I would still need to do
a bit more work before I could release this (and I would probably only do so
if anyone expressed an interest in having this provided). *Maybe* an
inverting server could be provided (in due course) for use with Phoenix, if
the SDK files (and associated documentation) provided for that prove to be
up to par, but in the absence of appropriate assistance from Altium, I do
not envisage that Ian Wilson and I could complete the inverting server that
we started on for use with Protel 99 SE.

If anyone is interested, it is my belief that an "off-line" inverting
utility could be created for use with Protel 99 SE, as long as the PCB file
to be inverted was saved in ASCII format. This would be "off-line" in the
sense that the PCB file would need to be saved/exported (in ASCII format),
the contents of the file then manipulated by the utility, and the
thus-modified file then re-imported/re-opened again. (Ian and I had been
working on a more ambitious plan to implement an "on-line" inverter, in
which the PCB file would be inverted while this was currently open. With
hindsight, we weren't originally aware that the SDK files and associated
documentation were not up to par for implementing this particular task.)

It should be noted that when a PCB file is inverted, all components in the
PCB file remain in an *un-mirrored* state, and you could, if you so wanted,
produce "kosher" (/"halal"/etc) Gerber files from a PCB file that is
currently inverted (or at least from a PCB file that has been "deeply"
inverted, rather than just "standardly" inverted). Inverting a PCB is a
*different* procedure to mirroring this (though one aspect they do have in
common is selecting the location of a mirroring/inverting axis, and whether
this (axis) is vertical or horizontal).

Conceptually, you can "manually" invert a PCB file, but that would normally
be time-consuming, as a number of steps would be required, and there would
be many ways you could put a foot wrong while doing so. (Think of the moves
required to get the *last* face totally correct for a Rubik's cube, and the
potential to scramble the cube if you blunder with any of the required moves
at the time. While inverting a PCB file would not be as difficult, there is
still the possibility of doing something incorrectly, and/or overlooking
some of the necessary procedures; as such, your PCB file could potentially
end up as scrambled as an unsolved Rubik's cube.) As such, even the use of
an "off-line" inverting utility would normally be a preferable

Geoff Harland.
E-Mail Disclaimer
The Information in this e-mail is confidential and may be legally
privileged. It is intended solely for the addressee. Access to this
e-mail by anyone else is unauthorised. If you are not the intended
recipient, any disclosure, copying, distribution or any action taken
or omitted to be taken in reliance on it, is prohibited and may be
unlawful. Any opinions or advice contained in this e-mail are
confidential and not for public display.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
* To leave this list visit:
* http://www.techservinc.com/protelusers/leave.html
* Contact the list manager:
* 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