GtkCAD

Free modular CAD/CAM/CAE Software


Home

Requirements

Design

Screenshots

FAQ

Project Page

SVN

Bugs

Links

1. Revision History

  • 17 August 2000 - Document begun
  • 07 November 2000 - Document converted to HTML

    2. Business Justification:

    GtkCAD is being written because there are currently no CAD systems that have been developed for the LINUX operating system that meets the needs of the naval architecture community. This software is an attempt to fill those needs.

    3. Scope:

    3.1. Identification:

    This document pertains to GtkCAD which is being developed for the LINUX operating system using the GTK+ graphics toolkit on top of the X windowing system. Initial releases will be for Intel x86 architecture.

    Current software version is GtkCAD 0.1.0

    3.2. System Overview:

    GtkCAD will consist of 2 major programs. The first will be the Drawing editor (herein called GtkCAD). GtkCAD will be used by the end user to create and edit CAD drawings. The second component will be be a drawing viewer (herein called GtkViewer). GtkViewer will be used by users that need the ability to view CAD drawings, but do not have the authority to edit the documents.

    The design of GtkCAD should be very modular. So the end user should be able to decide at run time which modules to run at start-up and have the ability to change that selection during run time.

    3.3. Document Overview:

    Not applicable

    3.4. Referenced Documents:

    GNU Coding standards (http://www.cs.utah.edu/dept/old/texinfo/standards/standards_toc.html).

    Also see the Links page for futher related documentation.

    3.5. Definitions:

    CAD/CAM
    Computer Aided Design / Computer Aided Manufacturing
    GNU
    Free Software Foundation. ( Gnu is Not Unix ).
    GTK+
    GTK+ is an Open Source, Free Software GUI Toolkit, primarily developed for use with the X Window System.
    IGES
    Initial Graphics Exchange Standard. An international standard for the exchange of CAD/CAM data formats.
    LINUX
    UNIX-like operating system kernel developed by Linus Torvalds using open source methods.
    Vector [Graphics]
    A technique for representing a picture as points, lines, and other geometric entities.

    4.0. Requirements:

    4.1. Required States:

    Not applicable

    4.2. Functional Requirements:

  • Main application will be a basic vector drawing editor.
  • Loadable modules that will consist of a library of dynamically loadable modules that when loaded will enhance the functionality of the main application. (ie a module to add dimensions to a drawing).
  • The ability to save drawings to a file and load previously made drawings from a saved file.
  • The ability to plot drawings (ie abilty to produce a paper copy of the drawing).
  • The abilty to import IGES formatted drawings from other applications.

    4.2.1 Requirements of the Main Application:

    The main application is required to provide the following features:

  • The User Interface
  • All functions relating to the presentation of the drawing (ie rotation, scaling, projections, etc)
  • Drawing tools accessed thru Menus and toolbars to allow manipultion of the drawing.
  • The database for permanent storage of drawings.
  • API's to interface with loadable modules.

    4.2.2 Requirements for the loadable modules:

    This should have a seperate document for each module. The basic requirements is that each module should be able to access the data form the drawing. and manipulate that data without modifying it.

    4.3. Interface Requirements:

    4.3.1. List of component interfaces:

    External:

  • X windowing system running on LINUX o/s via the GTK+ toolkit

    Internal:

  • OpenGL API (trademark of SGI) using Mesa3D library
  • All dynamically loadable modules.
  • Internal database storage of drawing.

    4.3.2. Interface 1: X windows running on LINUX

    GtkCAD will be designed to run on the LINUX operating system, using Xwindows. It will use the GTK+ toolkit to provide the user interface and some basic processing.

    4.3.3 Interface 2: Dynamically loadable modules

    GtkCAD should set-up a series of API's that will allow dynamically loadable modules and external programs the ability to access the drawing object.

    4.3.4 Interface 3: The Internal database

    The drawing object will be stored in a database. This might be either flat files or a true Relational SQL database. Functions are needed to access the stored data.

    4.4. Data Requirements:

    There are two data requirements. The first is the data as it is stored in the database. The second is the data in RAM that is manipulated by GtkCAD during normal operation.

    The data stored in the database should be in real world coordinates. This must be translated to screen coordinates to be used by GtkCAD for display on a video screen.

    4.5 Performance and Reliability:

    To be written

    4.6 Failure Contigency:

    To be written

    4.7. Security Requirements:

    To be written

    4.8. Environmental Requirements:

    As mentioned above, GtkCAD will run under X Windows on the LINUX operating system.

    4.9. Hardware Interface Requirements:

    To be written

    4.10. Other Software Requirements:

    Should be compatible with othe CAD programs via IGES data format. All coding should comply with established GNU coding standards.

    4.11. Communication Requirements:

    To be written

    4.12. Design Constraints:

    To be written

    4.13. Deployment:

    To be written

    4.13.1 Upgrades:

    To be written

    4.13.2 New Installs:

    To be written

    4.14. Testing Environment:

    To be written

    5. Assumptions and Dependencies:

    To be written


  • Contact H. James Parker at developer@parkersailing.com