This is just some FunCAD documentation that I am working on. This project is work in progress.

FunCAD Goals and Requirements

This is where I list the various goals and requirements for the FunCAD project.

2.1 Overall Goals and Requirements

The overall goals and requirements are:

Have Fun
My ultimate goal is to have fun. For me, writing software is fun.
Platform Independent
FunCAD is intended to run on Linux, Windows, and MacOS.
3D Graphics
3D graphics support are assumed. FunCAD will run on top of OpenGL and GLUT.
Parameterized
Support for parameterized design is required.
Recursive
It is assumed that a project consists of sub-projects, sub-sub-projects, etc. There will be no artificial constraints on the number of sub-projects.
XML
File formats will be XML based.
Unified Bill of Materials
The bill of materials will support both electronic and mechanical parts.
Web and Printer Friendly
It will be easy to print out views and display them as web pages.
Documentation Friendly
It will be easy to generate instructions for assembling and manufacturing stuff.
Unlimited Undo
Support unlimited undo.
Tutorial Support
Provide the ability to generate the tutorial material in batch mode.

2.2 Mechanical CAD Goals and Requirements

The mechanical CAD/CAM goals and requirements are:

xxx
xxxx

2.3 Electrical_CAD_Goals_and_Requirements

The electronic CAD goals and requirements are:

Supplant HobECAD
HobECAD was the previous ECAD system that I designed that runs on top of the X11 window system. FunCAD will be able to read in HobECAD files, but there is no need to output HobECAD files.
Interoperate with pcb
pcb is an open source printed circuit program that runs on top of X11. The goal is to be able to read and write pcb format files.
Gerber and Excellon
Provide good Gerber (RS-274X) and Excellon drill file support.
Drill Rack
Frequently manufacturers let you use drills from a pre-specified drill set for free and charge you extra for different sizes. The drill holes should specify a minimum size and perhaps a maximum size.
Surface Mount
Support surface mount components.
G-code Generation
Support generation of outlines for mechanical etching systems.
No layer restrictions
Support an arbitrary number of layers.
No size restrictions
Support fairly large boards.
Support Schematic Capture
Support the entering of schematics.
Multiple Boards and Schematics
Support concurrent work on multiple boards and schematics.
Schematic and Board Cross Check
Allow the verification that a board implements all of the componts in a schematic.
Design Rule Check
Allow the verification that the PCB's do not violate minimum line widths and trace separations.
Multiple Line Thicknesses
Allow multiple line thicknesses.
Mechanical Interference Check
Detect mechanical interferance problems.
Assembly Instructions
Support the generation of assembly instructions.
Easy Part Addition
Allow easy addition of new parts.
Signal Compatibility Checking
Allow checking of signals for compatibilty.
Header File Generation
Support header file generation for software.
Allow Multiple Grids
Support multiple grids.


Copyright (c) 2005 by Wayne C. Gramlich All rights reserved.