I would love to see the cross-probing interface opened up, so that someone can plug it into KiCad.
Free download zofzpcb.com (http://www.zofzpcb.com/)
Thanks,
TCP or UDP interface, crossprobe and navigation - i mean exact the same camera position and rotation, that is what i am thinking of. To form something like shared desktop.
Later, to overcome "corporate firewalls", it shoukd be using http and third server, maybe.
At the moment there are two: WM_COPYDATA and file based. I will put them to the webpage.
Thanks,
TCP or UDP interface, crossprobe and navigation - i mean exact the same camera position and rotation, that is what i am thinking of. To form something like shared desktop.
Later, to overcome "corporate firewalls", it shoukd be using http and third server, maybe.
At the moment there are two: WM_COPYDATA and file based. I will put them to the webpage.
Your software seems very interesting, really.
Can you explain your reason to make a freeware with that kind of restrictive license? Or do you plan to eventually make it commercial?
If you plan to keep it freeware? Why that EULA? Why not making it Open Source?
Despite your software seems really very interesting with many nice feature, I'm afraid of propietary software these days for different reasons. Some of them are: Vendor lock-in, expensive cost, security, unable to modify or port it to other platforms...
The current cross-check interfaces description: WM_COPYDATA and file, can be downloaded at http://www.zofzpcb.com/Cross-Check.html (http://www.zofzpcb.com/Cross-Check.html)
Anyway, i am willing to create the tcp interface. And maybe Kicad have already something done about this. There also is a idea to make adobe pdf plugin, many cad systems create schematics with rich annotations. Then click able pdf.The current cross-check interfaces description: WM_COPYDATA and file, can be downloaded at http://www.zofzpcb.com/Cross-Check.html (http://www.zofzpcb.com/Cross-Check.html)
Excellent! Thanks for your quick response to the suggestion too. I think the file based interface can work between Windows app on Linux and a native Linux app like KiCad
I'll give it a try when the open-sourcenative Linuxmultiplataform version has been released.
...
Despite your software seems really very interesting with many nice feature, I'm afraid of propietary software these days for different reasons. Some of them are: Vendor lock-in, expensive cost, security, unable to modify or port it to other platforms...
Fixed! ;)... until then, let us wingows and wine people enjoy the nice app, you can continue with gEDA. ;)I'll give it a try when the open-sourceFixed! ;)native Linuxmultiplataformmultiplatform version has been released.
Fixed! ;)... until then, let us wingows and wine people enjoy the nice app, you can continue with gEDA. ;)I'll give it a try when the open-sourceFixed! ;)native Linuxmultiplataformmultiplatform version has been released.
bug report...Thanks,
1) color preset not saved correctly. when i set all layers colors and save, next time i changed color preset and set back to my theme, color changed to what i did not pick. the only way afaik to restore desired color is by saving rendered board in a file.
2) gui issue: why dont pan with right click? universe rotate for right click is less practical imho. keep pressing shift may induce carpal tunnel on my left hand. any other sw capable of single hand navigation.
3) gui issue: mousewheel scroll zoom too slow, i cant set the zoom rate. many scroll to get desired zoom may induce carpal tunnel in my index finger.
4) sometime saving and reloading color preset generates error (see attached picture)
my platform, WinXP SP3 32bit. anyway some of the previous issues discussed sometime ago have been solved, keep up the good work. i'm learning to populate 3d component, any easy clue without using orcad?
also how do it make the core/prepeg opaque? i dont have specific whole opaque gerber for the board, i only have board outline and zofpcb just render it as... an outline. i dont want to keep disabling and enabling the bottom (or top) layers/slikscreen/mask while rotating the pcb top to bottom and back. non opaque board messing the view with crisscrossing bottom and top traces (and copper pours) as arrowed below...It looks like some aspects of my stack-layer are not intuitive. I am doing auto insert of FR4 if you set the board thickness. This is quite hidden, one must select the board outline to see the total-thickness setting (and the board outline must be there...). It is the second time I see that someone missed this. - Important! Of course Auto does it all, if it works... Of course you have discovered the "volume" slider later.
This library might be useful for you...Thanks, a quite interesting idea. By reading the doc, I found out that I can use compiled shaders from direct3D in openGL :)
https://github.com/bkaradzic/bgfx
This library might be useful for you...Thanks, a quite interesting idea. By reading the doc, I found out that I can use compiled shaders from direct3D in openGL :)
https://github.com/bkaradzic/bgfx
But the biggest part of code to handle would be DXUT - and especially DXUTgui - that is a user interface framework for Direct3D. As far as I see, there is no abstraction layer for this in bgfx and I still need to find a new fitting GUI "widget" library, common for both Direct3D and OpenGL, then convert to it, first in the windows version.
Tried this tool, it crashed on my gerbers (using under VMWare mind you).OK, I can repeat the crash - thanks. In my case it seems to be related to drills. Also - need to remember - I need to implement a step and repeat and the new nested repeat commands. Might be important for panelizing. About the number of parameters - I have been already making problems to myself and hopefully solved it. see the picture - it is a single aperture :)
You can grab them here if you want to test:
http://sparks.gogo.co.nz/crashygerb.zip (http://sparks.gogo.co.nz/crashygerb.zip)
FWIW, these gerbs were created as a merge of a number of boards with a (still beta) panelizing tool. Some other gerb viewers also have problems with them, so you are not alone.
Circuit People's tool gets it right (http://circuitpeople.com/)
KiCad's gerbview mostly gets it right (some silk funnyness).
The current git version of Geda's gerbv gets it right provided you increase the maximum arperture parameters from 102 to something larger (and recompile) (https://github.com/sleemanj/gerbv/blob/master/README.md). These gerber's include polygons with a couple hundred parameters (100+ points), going by comments in gerbv's source it may be that there used to be a limit of 50 points in the gerber spec, but the current gerber spec I believe may have up to 5000 points.
Maybe that was a wrong decision. I wanted the performance even on weak graphic cards. I have seen performance boost when using 3D only / full screen mode. (e.g. the old method - allow to reduce resolution in 3D mode.) Now this is not that important and it would be a opportunity to switch to use the OS native GUI. I have to think it over.This library might be useful for you...Thanks, a quite interesting idea. By reading the doc, I found out that I can use compiled shaders from direct3D in openGL :)
https://github.com/bkaradzic/bgfx
But the biggest part of code to handle would be DXUT - and especially DXUTgui - that is a user interface framework for Direct3D. As far as I see, there is no abstraction layer for this in bgfx and I still need to find a new fitting GUI "widget" library, common for both Direct3D and OpenGL, then convert to it, first in the windows version.
A lot of the 3D apps I've worked on separate the 2D UI from the 3D rendering. The 2D UI is implemented in a per-platform fashion using the native OS widgets. The 3D rendering is tied to a canvas placed in the 2D UI. 3D text is still an issue but that's rather unavoidable.
Tried this tool, it crashed on my gerbers (using under VMWare mind you).
You can grab them here if you want to test:
http://sparks.gogo.co.nz/crashygerb.zip (http://sparks.gogo.co.nz/crashygerb.zip)
FWIW, these gerbs were created as a merge of a number of boards with a (still beta) panelizing tool. Some other gerb viewers also have problems with them, so you are not alone.
Circuit People's tool gets it right (http://circuitpeople.com/)
KiCad's gerbview mostly gets it right (some silk funnyness).
The current git version of Geda's gerbv gets it right provided you increase the maximum arperture parameters from 102 to something larger (and recompile) (https://github.com/sleemanj/gerbv/blob/master/README.md). These gerber's include polygons with a couple hundred parameters (100+ points), going by comments in gerbv's source it may be that there used to be a limit of 50 points in the gerber spec, but the current gerber spec I believe may have up to 5000 points.
The bug was related to the board outline processing. I am in the middle of other fixes, but here is a current build which can read your project.
>Quote from: timofonic on January 10, 2016, 02:25:00 AM (https://www.eevblog.com/forum/index.php?topic=53561.msg838825#msg838825)This library might be useful for you...Thanks, a quite interesting idea. By reading the doc, I found out that I can use compiled shaders from direct3D in openGL :)
>https://github.com/bkaradzic/bgfx (https://github.com/bkaradzic/bgfx)
But the biggest part of code to handle would be DXUT - and especially DXUTgui - that is a user interface framework for Direct3D. As far as I see, there is no abstraction layer for this in bgfx and I still need to find a new fitting GUI "widget" library, common for both Direct3D and OpenGL, then convert to it, first in the windows version.
>ImGUI: A bloat-free graphical user interface library for C++.
- Outputs vertex buffers to be rendered the 3D-pipeline enabled application.
- Fast.
- Portable.
- Renderer agnostic.
- No specific build process is required. You can add the .cpp files to your project or #include them from an existing file.
- Self-contained within a few files that you can easily copy and compile into your application/engine: imgui.cpp, imgui.h, imgui_demo.cpp, imgui_draw.cpp, imgui_internal.h, imconfig.h (empty by default, user-editable), stb_rect_pack.h, stb_textedit.h, stb_truetype.h
- No external dependencies.
- Your code passes mouse/keyboard inputs and settings to ImGui (see example applications for more details).
- As opposed to UI for the average end-user, it’s designed to:
- Enable fast iteration.
- Empower programmers to create content creation tools and visualization/debug tools.
- It favors simplicity and productivity.
- Toward this goal it lacks certain features normally found in more high-level libraries.
- Particularly suited to integration in:
- Realtime 3D applications.
- Fullscreen applications.
- Embedded applications.
- Games.
- Any applications on consoles platforms where operating system features are non-standard.
can anyone tell me if this softwareHi, there is no automatic DFM/DRC check at the moment. There are:
1. can measure the size of the keepout layer like cam350?
2. can automatically find and output the width of the smallest via, narrowest trace/space?
zofz,
Very impressive work you have done, this project saved my life (well at least countless hours trying to trace the board and check/compare footprints, component orientation, etc), was working on a project that was made by a very good programmer, but as we know most programmers assume that you "know all", and in the end I had somewhat broken bom, pdf with schematics and gerbers with poor silkscreen with no outlines for component orientation.
It would be very nice if you will have free time and of course if it's possible to link Altium generated schematic PDFs to gerber viewer, so you can click on part in pdf and it shows on which two pads you need to solder the part when you have 6x6 matrix of identical pads which has no outline to show you on which two pads to put the part :)
P.S. it would be nice if you could setup some donation system (maybe paypal), so the guys and gals can support your work, as we know these things consume lots of time and you need to pay your bills...
Best Regards,
Mantas.
Hi,Hi,
It is a really impressive software.
And non of pricey tools have similar nice 3D capability (except Zuken CR-8000 for 100000$).
But I'm in trouble with long name files.
I couldn't recognise layers manually as you can see on the picture.
Any possibility to port to Linux?Hi, Linux and OSX port is on the list, but it is not a priority. I know it works with Wine - a temporary solution.
I'm in the process of migrating completely to Linux and I will really miss ZofzPCB.
I have not been seeing the GUI crash, finally I have corrected 2 bugs.
.....on one of my boards (still under dev) the silkscreen on the underside happens to cross directly over some THP's. From the topside looking through the holes you can see the silkscreen jumping across the pad......should really be broken by the pad/hole.
I quickly tested withI will download and test. I do not see the board outline on the screen shot - it might be source of problems with solder mask.
https://github.com/FPGAwars/icezum/tree/master/src-kicad
and used Altium File names.
I could do the subtracting (silkscreen minus solder mask), as a option. But first I need to rewrite the flattening - it takes too long time for some projects, and I do not want to make it more complicated now......on one of my boards (still under dev) the silkscreen on the underside happens to cross directly over some THP's. From the topside looking through the holes you can see the silkscreen jumping across the pad......should really be broken by the pad/hole.
Another angle is to say that is correct - usually silkscreen is pulled back from pads, and some EDA have a option to avoid pads, (I think some do this by 'plot-white') so anything that does not avoid pads (& holes), is considered an issue that needs upstream fixing.
Many thanks zofz. Nice program. Noticed using Eagle it wanted the ".dri" file not the txt drill file. Some parts not rendered properly but that's probably the IPC D 356 and eagle. now I just have to read up the help files on how to use correctly.I still need to add more components to tables, and tune up pin-pad ordering/fitting, e.g. using the above project (https://github.com/FPGAwars/icezum/tree/master/src-kicad) as a next example for testing. Also, It must be possible to overwrite the automatic guessing of components.
:-+
Wow- This is very impressive.
I quickly tested with
https://github.com/FPGAwars/icezum/tree/master/src-kicad (https://github.com/FPGAwars/icezum/tree/master/src-kicad)
and used Altium File names.
It looks 99.5% ok, with some minor issues / quirks / puzzles
* Long file names do not fit in the file-views, and there seems no way to resize those ?
* I see a strange effect, where Holes with no traces, show under hover, but all those with traces show no holes ?
( The holes that do appear and tag, look fine, so the drill file must have read ok)
Looks almost deliberate, but unexpected ?
* when I enable IPC356, 3D nicely (magically!) appears in most cases, but in a one (U6) some strange slight spin is seen ?
There are some vias-as-parts (Via**) still to be cleaned in this test example, so the large area over TQFP144 is a 'false positive'
Addit: I see U6 is an unusual 16 pin SO (2/6/2/6), so maybe the angle is just a fit-artifact of trying to align over that ?
It seems to have different pin-pitch on each of 2 chosen pin sides ? - so is trying to make sense of the less common footprint.
I had a look at the IPC D 356 file on parts particularly the x,y,r sizes positions. As you can see, a few parts were not rendered or are not right:
Capacitors rendered too low in height;
a few T092 transistors not rendered correctly, their tops are too low like the caps);
An IC wide SOIC16 not rendered at all; Inductor not rendered (looks like SIL pins);
JST XH 2.5mm pitch connector not rendered (base of board);
Another ZR 1.5mm pitch JST not rendered properly (near LQFP64);
Crystal HC49S not rendered correctly;
wire pads not rendered correctly (look like pins) (VIAs ok);
Image sensor ICX453AQ (large device) not rendered properly, should be on bottom "16" layer.
Is there a way I can fix these issue? I have played with Eagle 3D and POV Ray and made my own parts before. But, that might give a nice image, but it's just eye candy, it hasn't the in depth analysis and details your program has! :-+
Don't worry about the part off the board, that's just me!
.....Now you can hide or swap THT to another side, by a right mouse click menu...
1. Board Outline file was assumed to be .gbr - it looks that it should be .gm1 - I have changed it by hand or should that be a rule?KiCad usually puts Board outline on layer Edge.Cuts
2. KiCad generated plated and not plated drill files. Both files should be plated. I am not drilling thru the top/btm copper in a case of not plated holes, assuming the copper is not there. This is why the holes was not visible from top/bottom.
...... So obviously I have no clue what is the height of the electrolytic cap.Tables and BOM mapping can give good results, but are of course more work.
...
In this release I have been adding a table based library, including R and C (and L) 0603, 0802
..
In the meanwhile, I am trying to load BOM and identify columns, map components from BOM to IPC356. Unfortunately there are very fuzzy rules about component naming and component footprint naming.
Great - That's looking improved :)There are so many options or styles. Maybe I should read the file description file for the major packages - of course the format (or rather layout) is temporary - not too stable, or, perform more testing...1. Board Outline file was assumed to be .gbr - it looks that it should be .gm1 - I have changed it by hand or should that be a rule?KiCad usually puts Board outline on layer Edge.Cuts
I applied the Altium naming, as that seemed to import better, so I guess that maps Edge.Cuts to some Gerber name.
Yes, you are right - that is a bug. (Now on BugList.)2. KiCad generated plated and not plated drill files. Both files should be plated. I am not drilling thru the top/btm copper in a case of not plated holes, assuming the copper is not there. This is why the holes was not visible from top/bottom.
I'm not following this exactly ?
I would expect all holes to appear in the viewer, and if there is some means to show plated/non plated that is nice.
Even just a hover-check would be ok, but a copper/fibreglass type colour render for plated/npth would be cool...
ie a hole should not be discarded or not shown in a viewer.
In the test I did, it looked like the non-trace-connected holes did render as expected.
Maybe easier is to add a column to the BOM file? There should be a number of universal fields in the component description in any CAD package....... So obviously I have no clue what is the height of the electrolytic cap.Tables and BOM mapping can give good results, but are of course more work.
...
In this release I have been adding a table based library, including R and C (and L) 0603, 0802
..
In the meanwhile, I am trying to load BOM and identify columns, map components from BOM to IPC356. Unfortunately there are very fuzzy rules about component naming and component footprint naming.
Some simpler means to communicate height is needed.. I did see someone mention a nifty trick a while back, of using the Line width to encode the Height.
I just tried this in KiCad, and it saves and Gerber plots to 6 decimals in mm.
That allows line widths to .01 mm and gives up to 4 more digits for height, which could be (fixed point) any of 9.999mm or 99.99mm or 999.9mm
Pick one - perhaps 99.99mm, covers reasonable heights, and anything > 100mm can always use a 3D table, and 99.99 tolerates 5 decimal digit mm gerber files as 99.9mm . (not all PCB products can plot to 6 decimals in mm)
This could give a simple user-3D-option, whereby they can just edit their library, and not need any more associations at all.
KiCad can currently create and plot footprint info to these non copper layers
PFR_Widths-F.Fab.gbr
PFR_Widths-F.SilkS.gto
PFR_Widths-F.CrtYd.gbr
PFR_Widths-B.Fab.gbr
PFR_Widths-B.SilkS.gto
PFR_Widths-B.CrtYd.gbr
Q: Is there enough info in the IPC356 and gerber files to relate outline info to a component ? My guess is no ?
I'm wondering about the best way to extrude here...
I see Kicad can remove Silkscreen over Pads, which it does by a simple dual plot process in one file
first Outlines at %LPD*% (Plot Dark),
then Pads(mask) at %LPC*% (Plot Clear) to remove any silk outline info within the pad regions
That could allow an outline on Silk layer, (safely removed over pads), but the pre-removal outline is fraction-scaled-extruded to give height.
User would nominate the Gerber file containing the (fractional encoded) height info, and the rest is simple software ?
Maybe easier is to add a column to the BOM file? There should be a number of universal fields in the component description in any CAD package....
Yes, the solution is technically possible. But I believe this feature will be rarely used, especially after the final solution is implemented. The height is not the only problem. See attached picture, also with capacitors. I need to solve the components dimensions and shapes input, in more universal way.Maybe easier is to add a column to the BOM file? There should be a number of universal fields in the component description in any CAD package....
Yes, I agree a BOM extension is useful, but BOMs can get complex, and they are not always PCB-Centric.
Some are controlled from the SCH side, and others are run by SpreadSheet/DataBase managers... so getting the information into the BOM, can involve many steps and turf arguments....
My suggestion was not meant to displace BOM, just to give a very simple means to 'sneak' Height info into standard Gerber Files.
It is not as 'clever' as full mapping, but it is simple to implement for the user, and I think does not need too much software inside a viewer ?
I'll check other PCB sw for Gerber precision support. KiCad looks very good here, with 6 decimals in mm.
Addit:
KiCad defaults to this useful 1 um precision.
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
Mentor's PADS has some strange historic limit of 8 digits in Gerber, plus it internally stores to only 5 decimal digits-mm, so it can only give
%FSLAX35Y35*%
ie 3.5, which is still enough to export PCBs of 999.99mm to 99.9mm of suffix-height precision, using the 3.5 format.
I would propose that mm units be the default for suffix-height.
%MOMM*%
I was looking for a 3D Gerber View and found this.This are OK. can you send me your gerbers? let me see this - bug@zofzpcb.com
I am quite new to this all, using Easy EDA and the Gerbers from them will let your viewer error on
%FSLAX24Y24*%
or
G90*
Am *I* doing something wrong or is it the Gerber file?
Best,
Carsten
I was looking for a 3D Gerber View and found this.
I am quite new to this all, using Easy EDA and the Gerbers from them will let your viewer error on
%FSLAX24Y24*%
or
G90*
Am *I* doing something wrong or is it the Gerber file?
Best,
Carsten
I have broken the ice, but still the most complex primitives are to be converted.
I have broken the ice, but still the most complex primitives are to be converted.excellent work !
I have made checkboxes for the external copper and silkscreen. I do not know if anything else makes sense.I have broken the ice, but still the most complex primitives are to be converted.
What about silkscreens?
Are these in scope?
I have made checkboxes for the external copper and silkscreen. I do not know if anything else makes sense.I have broken the ice, but still the most complex primitives are to be converted.
What about silkscreens?
Are these in scope?
If it is exported for the thermal simulation, then everything would be needed, but it will drive people to problems, because of the file size, memory and time used. So, only the copper and silkscreen for this version.
I have made checkboxes for the external copper and silkscreen. I do not know if anything else makes sense.
If it is exported for the thermal simulation, then everything would be needed, but it will drive people to problems, because of the file size, memory and time used. So, only the copper and silkscreen for this version.
I would love to see a browser-based version of this. Very cool.check out https://www.altium.com/viewer/ (https://www.altium.com/viewer/) design and gerber viewer, 2D and 3D
I have made checkboxes for the external copper and silkscreen. I do not know if anything else makes sense.I have broken the ice, but still the most complex primitives are to be converted.
What about silkscreens?
Are these in scope?
If it is exported for the thermal simulation, then everything would be needed, but it will drive people to problems, because of the file size, memory and time used. So, only the copper and silkscreen for this version.
please please please use the OS functions for the file open & dialog boxe
i dont see scopes etc being given away.
think how much better your software would be if it was funded properly?
take on more programmers to increase productivity.
is it better to sell 100 with £1 profit or sell 1 with £100 profit?
Not quite that simple. You might have a significant number of users for your free or low-cost product, but double the price and watch most of them disappear. Where is the funding going to come from for the new mouths you now have to feed? Maybe bumping up the price of the product to compensate, and now you have an even more niche clientele.
i think my main point was giving stuff away wont make you rich.
Easy-PC gave away one of their lesser pcb design packages and went on to sell the new version for £379 a go and did ok.
this killed off a lot of cheaper packages.
Kicad is now the main free package i have to compete with.
i agree about bloatware as Easypc forum is full of people complaining about bugs.
Getting rich / making money isnt always the point. If that was your point, I think you might be in the wrong thread.
If you would like to offer software as a business there is nothing wrong with that, have at it.
Competing with the free stuff makes it better for the users. Because now, you have to offer something that's worth paying for.
Those who cant or wont compete, either improve their offerings-- or die away.. it it the natural law of things.
ZofZ is doing great things and he should keep going and keep a free offering. I for one, am thankful for his dedication.
Right-click menu for component model and parameters (like elcap height) - I am still working on it. I hope to release this in couple of weeks.
First of all, thanks for the software. I had been using it on and off for a few years now. Nothing commercial, just my own PCBs. I would use it to verify other viewers that just seemed to misbehave. Yours ran without issue as a visual confirmation. I downloaded the latest version and started to play around with which features are free and which are not. No problem with licensing some extras. Well I was able to right click on the component and do adjustments to shape, size etc. Now when I right click on the component, I cannot adjust anything as the "Body Builder" menu option is gone. Is there a limitation as to how many times I can use that function? I've used it for about a day, See the attached "Modify" photo. Thanks.It looks like the "Parametric" model generator is disabled. It could be caused by the end of license validity, as the modeler is a "premium" feature. Or it can be caused by configuration - see picture.
Quote from: zofz on 2017-02-26, 23:41:03 (https://www.eevblog.com/forum/index.php?topic=53561.msg1146718#msg1146718)Right-click menu for component model and parameters (like elcap height) - I am still working on it. I hope to release this in couple of weeks.
I downloaded the free version. So the real answer is that it was working and has a limited time functionality? You haven't quite answered the question.The same image can operate in the premium mode and in the free mode:
Hi ZofZ and the group,yes.
Does anybody know if the viewer supports blind vias? That vias that only go from layer 1 to 2 on a 4 layer board.
Many thanks!!
Regards,
Jay_Diddy_B