Routines to create IGES or STEP format mechanical CAD file
$500-5000 USD
ปิดแล้ว
โพสต์ มากกว่า 15 ปีที่ผ่านมา
$500-5000 USD
ชำระเงินเมื่อส่งงาน
Create graphics routines to support simple 3D CAD export program. Routines need to create a Workspace consisting of Library Parts and Simple 2D/3D Objects described by a series of lines and arcs.
The Library Part and output format may be either STEP or IGES.
The routines may be written in C, C++, C# or Perl
## Deliverables
**3D Routines Project Summary**
Create graphics routines to support simple 3D CAD export program. Routines need to create a Workspace consisting of Library Parts and Simple 2D/3D Objects described by a series of lines and arcs.
**Language and Operating System**
* Programming Language: C, C++, C# or PERL
* Operating System: Windows XP
**Programmer Experience**
The ideal candidate would have solid experience with data structures , would have some experience with the chosen CAD format, and would have access to the chosen CAD format specification.
**CAD File Format**
CAD File Format: Either IGES or STEP.
The IGES specification is available on the Web, but the STEP specification is not freely available. STEP is an ANSI specification with many subsections. ? Both IGES and STEP are “human readable?? ASCII formats. The IGES file format is fairly verbose, and does not look easy to disassemble. The STEP file format looks like it may be possible to be disassembled.
**Graphic Object Format Description**
The Workspace is composed of a collection of graphic objects positioned at different locations. The graphic objects are either Simple2D/3D Objects, or are IGES/STEP Library Parts imported from external files.
All positions and dimensions are in inches, and all angles are in degrees.
*? ? ? ? Workspace*
> The workspace is composed of whatever header information is required to create a valid CAD file format, plus a collection of Objects. Objects are either Simple 2D/3D Objects or more complicated imported IGES/STEP Library Parts.
>
> Each Object is placed in the workspace with a position and a rotation (e.g. X, Y, Z, Xtheta, Ytheta, Ztheta).? If the CAD format permits, the Object should have settable Reference, Name and Description fields.
*? ? ? ? Simple 2D/3D Objects*
> Simple 2D/3D Objects are made up of a combination of several lines and arcs (e.g., line, arc, line, line, line, line…):
* Line: Xstarting, Ystarting, Xend, Yend, LineWidth
* Arc: Xstarting, Ystarting, Xend, Yend, LineWidth, ArcDegrees, ArcRadius. Positive angle arcs are constructed counter-clockwise, from the starting position to the ending position. Negative angle arcs are constructed clockwise
> Simple Objects also have Height, Color and Texture. 2D Simple Objects have zero height. 3D Simple Objects are 2D Simple Objects that are extruded uniformly in either the positive or negative Z direction.? The surfaces of Simple Objects have uniform color and texture.
*? ? ? ? ? IGES/STEP Library Parts*
> IGES/STEP Library Parts are read in from external files and inserted as Objects into the Workspace. It is possible that these Parts can be simply inserted into the file without the Programmer understanding the intricacies of the CAD format.
**Routines**
* CreateWorkspace()
* CreateSimplePart()
* AddSimplePart() --? Note: there needs to be a way to add the same Simple Object twice as separate entities (e.g., that could be edited separately at a later time), and also a way to have multiple instances that refer to the same entity (e.g., that would all change together if the entity was changed at a later time).
* AddLibraryPart() --? Note: there needs to be a way to add the same Simple Object twice as separate entities (e.g., that could be edited separately at a later time), and also a way to have multiple instances that refer to the same entity (e.g., that would all change together if the entity was changed at a later time).
* AddHole() -- Add hole or cutout at location in particular direction and depth.
* CloseWorkspace()
**Optional Additional Work**
Create simple3D viewer with sliders to rotate and scale Workspace, possibly using OpenGL.
**Deliverables and Unit Testing**
* Source code, project file and description of tools and versions used to create and test code. Test program executable and source.
* The deliverable should include a test program that creates several objects, and loads several library parts in different orientations. It should be easily modifiable to create new objects and load new library parts.
Note that there are a variety of freeware and low-cost CAD tools available that can read and write IGES and STEP formats. These tools may prove helpful in creating test cases, and troubleshooting/viewing output files.
**Proposal Requirements
**
* The proposal should indicate the chosen CAD format and why it was chosen.
* The proposal should indicate the language and language tools to be used.
* The proposal should indicate any specifications and subsections that need to be purchased.
* The proposal should indicate any software or CAD tools that need to be purchased.
* The proposal should separately detail cost and time of doing “Optional Additional Work.??
**Other**
The data formats and structures described in this document are open to discussion.? This specification has been written without having detailed knowledge of the CAD formats and capabilities.