drawing program
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 316
CAD::Drawing 0.26
CAD::Drawing is a Perl module with methods to create, load, and save vector graphics. more>>
CAD::Drawing is a Perl module with methods to create, load, and save vector graphics.
SYNOPSIS
The primary intention of this module is to provide high-level operations for creating, loading, saving and manipulating vector graphics without having to be overly concerned about smile floormats. As the code has seen more use, it has also drifted into a general purpose geometry API.
The syntax of this works something like the following:
A simple example of a (slightly misbehaved) file converter:
use CAD::Drawing;
$drw = CAD::Drawing->new;
$drw->load("file.dwg");
my %opts = (
layer => "smudge",
height => 5,
);
$drw->addtext([10, 2, 5], "Kilroy was here", %opts);
$drw->save("file.ps");
This is a very basic example, and will barely scratch the surface of this modules capabilities. See the details for each function below and in the documentation for the backend modules.
<<lessSYNOPSIS
The primary intention of this module is to provide high-level operations for creating, loading, saving and manipulating vector graphics without having to be overly concerned about smile floormats. As the code has seen more use, it has also drifted into a general purpose geometry API.
The syntax of this works something like the following:
A simple example of a (slightly misbehaved) file converter:
use CAD::Drawing;
$drw = CAD::Drawing->new;
$drw->load("file.dwg");
my %opts = (
layer => "smudge",
height => 5,
);
$drw->addtext([10, 2, 5], "Kilroy was here", %opts);
$drw->save("file.ps");
This is a very basic example, and will barely scratch the surface of this modules capabilities. See the details for each function below and in the documentation for the backend modules.
Download (0.039MB)
Added: 2007-04-24 License: Perl Artistic License Price:
925 downloads
File::Drawing 0.01
File::Drawing release, revise and retrieve contents to/from a drawing program module. more>>
File::Drawing release, revise and retrieve contents to/from a drawing program module.
SYNOPSIS
##########
# Subroutine interface
#
use File::Drawing qw(
dod_date dod_drawing_number number2pm pm2number obsolete
broken backup);
$date = dod_date($sec, $min, $hour, $day, $month, $year);
$drawing_number = dod_drawing_number( );
$pm = number2pm($drawing_number, $repository);
$drawing_number = pm2number($drawing_number, $repository);
$old_value = config( $option );
$old_value = config( $option => $new_value);
(@all_options) = config( );
obsolete($drawing_number, $repository);
broken($drawing_number, $repository);
($file, $backup_file) = backup($drawing_number, $repository, $dir);
######
# Class Interface
#
use File::Drawing;
$default_options = defaults(@options);
$old_value = $default_options->config( $option );
$old_value = $default_options->config( $option => $new_value);
(@all_options) = $default_options->config( );
$drawing = new File::Drawing($contents, $white_tape, $pod, $file_contents, $drawing_number, $repository);
$drawing = File::Drawing->retrieve($drawing_number, @options);
$error = $drawing->release(@options);
$error = $drawing->revise(@options);
$date = $drawing->dod_date($sec, $min, $hour, $day, $month, $year);
$drawing_number = $$drawing->dod_drawing_number( );
$pm = $drawing->number2pm($drawing_number, $repository);
$drawing_number = $drawing->pm2number($drawing_number, $repository);
$drawing->obsolete($drawing_number, $repository);
$drawing->broken($drawing_number, $repository);
($file, $backup_file) = $drawing->backup($drawing_number, $repository, $dir);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The File::Drawing program module uses American National Standards for drawings as a model for storing data. Commercial, governement and casual orgainizations have stored information over the centuries as drawings. Drawings probably evolved from the census that the Romans rulers, started back when Rome was a little frontier town. In other words, the practices of the drafting displines have evolved over time and have stood the test of time.
Any deviation must be a crystal clear advantage. Many of the practices are in place to avoid common and costly human mistakes that obviously a computerize drafting system will not make. A good approach is to make the computerized data structure optimum for computers and have the computer render the computerized data into a form that meets the drafting standards.
The File::Drawing program module, uses the Perl program module name as a drawing repository, drawing number combination. The contents of the drawing is contained in the program module file. The < File::Drawing > program module established methods to retrieve contents from a program module drawing file, create an Perl drawing object with the contents, and methods to release and revise the contents in a program module drawing file from a Perl drawing object. Other popular methods for computerize date are the SQL and XML. Perl has a wide range of program modules using these approach.
In this time in history, the Drawings are highly standardize and even subject to Internationl standarization agreements. The Drawing Sheet Size and Format conform to ANSI Y14.1-1975 or its successor. The drawing has a box with zone numbers running right to left alon the top and bottom, and zone letters running bottom to top along the sides. There is a section inside the box, lower right corner with the blocks for such things as the title, drawing number, current revision, authoriztion, and sheet number. There is an expandable four column table in the top right corner to record the revision history.
<<lessSYNOPSIS
##########
# Subroutine interface
#
use File::Drawing qw(
dod_date dod_drawing_number number2pm pm2number obsolete
broken backup);
$date = dod_date($sec, $min, $hour, $day, $month, $year);
$drawing_number = dod_drawing_number( );
$pm = number2pm($drawing_number, $repository);
$drawing_number = pm2number($drawing_number, $repository);
$old_value = config( $option );
$old_value = config( $option => $new_value);
(@all_options) = config( );
obsolete($drawing_number, $repository);
broken($drawing_number, $repository);
($file, $backup_file) = backup($drawing_number, $repository, $dir);
######
# Class Interface
#
use File::Drawing;
$default_options = defaults(@options);
$old_value = $default_options->config( $option );
$old_value = $default_options->config( $option => $new_value);
(@all_options) = $default_options->config( );
$drawing = new File::Drawing($contents, $white_tape, $pod, $file_contents, $drawing_number, $repository);
$drawing = File::Drawing->retrieve($drawing_number, @options);
$error = $drawing->release(@options);
$error = $drawing->revise(@options);
$date = $drawing->dod_date($sec, $min, $hour, $day, $month, $year);
$drawing_number = $$drawing->dod_drawing_number( );
$pm = $drawing->number2pm($drawing_number, $repository);
$drawing_number = $drawing->pm2number($drawing_number, $repository);
$drawing->obsolete($drawing_number, $repository);
$drawing->broken($drawing_number, $repository);
($file, $backup_file) = $drawing->backup($drawing_number, $repository, $dir);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The File::Drawing program module uses American National Standards for drawings as a model for storing data. Commercial, governement and casual orgainizations have stored information over the centuries as drawings. Drawings probably evolved from the census that the Romans rulers, started back when Rome was a little frontier town. In other words, the practices of the drafting displines have evolved over time and have stood the test of time.
Any deviation must be a crystal clear advantage. Many of the practices are in place to avoid common and costly human mistakes that obviously a computerize drafting system will not make. A good approach is to make the computerized data structure optimum for computers and have the computer render the computerized data into a form that meets the drafting standards.
The File::Drawing program module, uses the Perl program module name as a drawing repository, drawing number combination. The contents of the drawing is contained in the program module file. The < File::Drawing > program module established methods to retrieve contents from a program module drawing file, create an Perl drawing object with the contents, and methods to release and revise the contents in a program module drawing file from a Perl drawing object. Other popular methods for computerize date are the SQL and XML. Perl has a wide range of program modules using these approach.
In this time in history, the Drawings are highly standardize and even subject to Internationl standarization agreements. The Drawing Sheet Size and Format conform to ANSI Y14.1-1975 or its successor. The drawing has a box with zone numbers running right to left alon the top and bottom, and zone letters running bottom to top along the sides. There is a section inside the box, lower right corner with the blocks for such things as the title, drawing number, current revision, authoriztion, and sheet number. There is an expandable four column table in the top right corner to record the revision history.
Download (0.063MB)
Added: 2006-06-22 License: Perl Artistic License Price:
1219 downloads
CAD::Drawing::IO 0.26
CAD::Drawing::IO are I/O methods for the CAD::Drawing module. more>>
CAD::Drawing::IO are I/O methods for the CAD::Drawing module.
This module provides the load() and save() functions for CAD::Drawing and provides a point of flow-control to deal with the inheritance and other trickiness of having multiple formats handled through a single module.
Utility Functions
These are simply inherited by the CAD::Drawing module for your direct usage.
outloop
Crazy new experimental output method. Each entity supported by the format should have a key to a function in %functions, which is expected to accept the following input data:
$functions{$ent_type}->($obj, %data);
The %data hash is passed verbatim to each function.
$count = $drw->outloop(%functions, %data);
In addition to each of the $ent_type keys, functions for the keys before and after may also be defined. These (if they are defined) will be called before and after each entity, with the same arguments as the $ent_type functions.
is_persistent
Returns 1 if $filename points to a persistent (directory / db) drawing.
$drw->is_persistent($filename);
<<lessThis module provides the load() and save() functions for CAD::Drawing and provides a point of flow-control to deal with the inheritance and other trickiness of having multiple formats handled through a single module.
Utility Functions
These are simply inherited by the CAD::Drawing module for your direct usage.
outloop
Crazy new experimental output method. Each entity supported by the format should have a key to a function in %functions, which is expected to accept the following input data:
$functions{$ent_type}->($obj, %data);
The %data hash is passed verbatim to each function.
$count = $drw->outloop(%functions, %data);
In addition to each of the $ent_type keys, functions for the keys before and after may also be defined. These (if they are defined) will be called before and after each entity, with the same arguments as the $ent_type functions.
is_persistent
Returns 1 if $filename points to a persistent (directory / db) drawing.
$drw->is_persistent($filename);
Download (0.039MB)
Added: 2006-10-25 License: Perl Artistic License Price:
1096 downloads
CAD::Drawing::IO::PgDB 0.03
CAD::Drawing::IO::PgDB is a Perl module with PostgreSQL save / load methods. more>>
CAD::Drawing::IO::PgDB is a Perl module with PostgreSQL save / load methods.
This module is considered pre-ALPHA and under-documented. Its use is strongly discouraged except under experimental conditions. Particularly susceptible to change will be the table structure of the database, which currently does not yet even have any auto-create method.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "circ" or $filename is a directory containing a ".circ" file.
$fact = check_type($filename, $type);
Back-End Input and output methods
The functions load() and save() are responsible for determining the filetype (with forced types available via $opt->{type}.) These then call the appropriate load< thing > or save< thing > functions.
load
Loads a CAD::Drawing object from an SQL database. $spec should be of the form required by the database driver.
$opts->{auth} = ["username", "password"] may be required to create a connection.
$drw->load($spec, $opts);
save
$drw->save($spec, $opts);
cleardb
Deletes the drawing and all of its entities from the database.
$drw->cleardb();
Internals
parse_options
Allows options to come in through the $spec or %opts.
%options = parse_options($spec, %opts);
sort_addr
Sorts through @addr_list and returns a hash of array references for each entity type.
%these = sort_addr($layer, @addr_list);
<<lessThis module is considered pre-ALPHA and under-documented. Its use is strongly discouraged except under experimental conditions. Particularly susceptible to change will be the table structure of the database, which currently does not yet even have any auto-create method.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "circ" or $filename is a directory containing a ".circ" file.
$fact = check_type($filename, $type);
Back-End Input and output methods
The functions load() and save() are responsible for determining the filetype (with forced types available via $opt->{type}.) These then call the appropriate load< thing > or save< thing > functions.
load
Loads a CAD::Drawing object from an SQL database. $spec should be of the form required by the database driver.
$opts->{auth} = ["username", "password"] may be required to create a connection.
$drw->load($spec, $opts);
save
$drw->save($spec, $opts);
cleardb
Deletes the drawing and all of its entities from the database.
$drw->cleardb();
Internals
parse_options
Allows options to come in through the $spec or %opts.
%options = parse_options($spec, %opts);
sort_addr
Sorts through @addr_list and returns a hash of array references for each entity type.
%these = sort_addr($layer, @addr_list);
Download (0.008MB)
Added: 2007-03-17 License: GPL (GNU General Public License) Price:
952 downloads
CAD::Drawing::IO::Image 0.02
CAD::Drawing::IO::Image is a Perl module with output methods for images. more>>
CAD::Drawing::IO::Image is a Perl module with output methods for images.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "img" or $filename matches one of the ImageMagick type extensions.
$fact = check_type($filename, $type);
Methods
load
Requires vectorization...
load();
save
save();
image_color
image_color($color, $data);
<<lessRequisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "img" or $filename matches one of the ImageMagick type extensions.
$fact = check_type($filename, $type);
Methods
load
Requires vectorization...
load();
save
save();
image_color
image_color($color, $data);
Download (0.005MB)
Added: 2007-03-17 License: Perl Artistic License Price:
952 downloads
xdraw 1.1
xdraw is a small application that is used to draw onto an X display. more>>
xdraw is a small application that is used to draw onto an X display.
It is useful to specify certain regions of interest to people watching the screen.
The procedure currently works for single entire screens with their contents on hold.
The display is frozen as long as the drawing is taking place, and continues when the drawing is finished.
INSTALL
$ ./configure
$ make
$ su -c "make install"
- Altering the Prefix:
$ ./configure --prefix=/usr
- Other Options:
$ ./configure --help
<<lessIt is useful to specify certain regions of interest to people watching the screen.
The procedure currently works for single entire screens with their contents on hold.
The display is frozen as long as the drawing is taking place, and continues when the drawing is finished.
INSTALL
$ ./configure
$ make
$ su -c "make install"
- Altering the Prefix:
$ ./configure --prefix=/usr
- Other Options:
$ ./configure --help
Download (0.013MB)
Added: 2006-10-06 License: GPL (GNU General Public License) Price:
1117 downloads
CAD::Drawing::Manipulate::Transform 0.26
CAD::Drawing::Manipulate::Transform is a Perl module with Matrix methods for CAD::Drawing. more>>
CAD::Drawing::Manipulate::Transform is a Perl module with Matrix methods for CAD::Drawing.
Provides 3D transformation methods (based on traditional matrix algorithms) for Drawing.pm objects.
Coordinate System
All of these methods assume a RIGHT-HANDED coordinate system. If you are using a left-handed coordinate system, you are going to have trouble, trouble, trouble. We arent making video games here!
<<lessProvides 3D transformation methods (based on traditional matrix algorithms) for Drawing.pm objects.
Coordinate System
All of these methods assume a RIGHT-HANDED coordinate system. If you are using a left-handed coordinate system, you are going to have trouble, trouble, trouble. We arent making video games here!
Download (0.039MB)
Added: 2007-03-16 License: GPL (GNU General Public License) Price:
953 downloads
CAD::Drawing::Manipulate::Graphics 0.26
CAD::Drawing::Manipulate::Graphics - Gimp meets CAD. more>>
CAD::Drawing::Manipulate::Graphics - Gimp meets CAD.
Methods
All of these are CAD::Drawing methods (I force my own inheritance:)
image_init
Initialize the image at $addr based on the value at the fullpath key. This establishes the contained Image::Magick object and loads the image into memory in the image_handle key.
$drw->image_init($addr);
image_crop
Crops an image and its definition (actually, changes its insert point) according to the points given by @crop_points (which maybe had better be within the object (but I dont really sweat that.))
@crop_points should be in world coordinates as follows:
@crop_points = (
[$lower_left_x , $lower_left_y ],
[$upper_right_x, $upper_right_y],
);
# note that you can get these as
# ($drw->getExtentsRec($something))[0,2]
$drw->image_crop($addr, @crop_points);
image_scale
Scales both the image and the definition by $scale, starting at @base_point.
$drw->image_scale($addr, $scale, @base_point);
image_rotate
This leaves the definition orthoganal, expands the underlying image object, and resets the insert point and size properties accordingly.
$drw->image_rotate($addr, $angle, @point);
The current implementation does not handle the change to the image clipping boundary.
image_swap_context
This involves a scaling of the image (the contexts should be aligned over each other at this point or everything will go to hell.) Do your own move / rotate / crop before calling this, because all this does is to scale the underlying image object such that the vec property of the image definition at $dest_addr can be used correctly.
Note that this does not "swap" the image to $dest_addr, rather it uses the image definition of $dest_addr to change the image object and definition at $source_addr.
Also note that the image must fit completely inside (I think) of the destination in order for the composite to work correctly.
$drw->image_swap_context($source_addr, $dest_addr);
<<lessMethods
All of these are CAD::Drawing methods (I force my own inheritance:)
image_init
Initialize the image at $addr based on the value at the fullpath key. This establishes the contained Image::Magick object and loads the image into memory in the image_handle key.
$drw->image_init($addr);
image_crop
Crops an image and its definition (actually, changes its insert point) according to the points given by @crop_points (which maybe had better be within the object (but I dont really sweat that.))
@crop_points should be in world coordinates as follows:
@crop_points = (
[$lower_left_x , $lower_left_y ],
[$upper_right_x, $upper_right_y],
);
# note that you can get these as
# ($drw->getExtentsRec($something))[0,2]
$drw->image_crop($addr, @crop_points);
image_scale
Scales both the image and the definition by $scale, starting at @base_point.
$drw->image_scale($addr, $scale, @base_point);
image_rotate
This leaves the definition orthoganal, expands the underlying image object, and resets the insert point and size properties accordingly.
$drw->image_rotate($addr, $angle, @point);
The current implementation does not handle the change to the image clipping boundary.
image_swap_context
This involves a scaling of the image (the contexts should be aligned over each other at this point or everything will go to hell.) Do your own move / rotate / crop before calling this, because all this does is to scale the underlying image object such that the vec property of the image definition at $dest_addr can be used correctly.
Note that this does not "swap" the image to $dest_addr, rather it uses the image definition of $dest_addr to change the image object and definition at $source_addr.
Also note that the image must fit completely inside (I think) of the destination in order for the composite to work correctly.
$drw->image_swap_context($source_addr, $dest_addr);
Download (0.039MB)
Added: 2006-10-25 License: Perl Artistic License Price:
1094 downloads
CAD::Drawing::IO::Tk 0.04
CAD::Drawing::IO::Tk is a Perl module with GUI I/O methods for CAD::Drawing. more>>
CAD::Drawing::IO::Tk is a Perl module with GUI I/O methods for CAD::Drawing.
This module is considered extremely pre-ALPHA and its use is probably deprecated by the time you read this.
Methods
There is no constructor for this class, its methods are inherited via CAD::Drawing::IO
Thoughts
Need to re-structure the entire deal to have its own object which belongs to the drawing object (or does the drawing object belong to this object?) Either way, we need to be able to build-up into interactive commands (possibly using eval("$drw->$command"); ?)
Ultimately, the focus here will likely drift toward supporting perlcad and enabling use of perlcad from within CAD::Drawing scripts. However, the nature of lights-out scripting vs the nature of on-screen drafting is quite different, so there will be some tricks involved. Once each entity has its own class, the ability to install callbacks and the resolution of notifications should get easier. But, there will still be the issue that a debug popup does not know it will appear when the entities are created, while a drafting viewport does (or does it?)
Possibly, adding a list of tk-ids to each $obj as it is drawn would be a good starting point, but this gets us into trouble with multiple viewports.
show
Creates a new window (no options are required.)
$drw->show(%options);
Available Options
forkokay => bool -- Attempt to fork the new window
window => MainWindow -- Use the pre-existing Tk object
stl => Message -- Use pre-existing Message widget
size => [W,H] -- Specify window size in pixels
width => W -- alias to size
height => H -- ditto
center => [X,Y] -- Center the drawing at (X,Y)
scale => factor -- Zoom by factor (default to fit)
bgcolor => color -- defaults to "white"
hang => boolean -- if not, you just get the canvas widget
items => @list -- sorry, not compatible with select_addr :(
Draw
Draws geometry on the Tk canvas $cnv. List of items to draw must be specified via addresses stored in $options{items}.
The newest fad (:e) is the $options{tag} argument, which uses addr_to_tktag() to tag the item.
$drw->Draw($cnv, %options);
tkbindings
Setup the keybindings.
$drw->tkbindings($mw, $cnv);
text_size_reset
text_size_reset($cnv);
free_dist
free_dist();
windowzoom
Creates temporary bindings to drawing a rubber-band box.
windowzoom($cnv);
tksetview
No longer used
$drw->tksetview($cnv, %options);
scalebox
Returns the scaling required to create a view which most closely matches @ext to @size of canvas.
$scale = $drw->scalebox(@size, @ext);
dsp subroutine refs
each of these should do everything necessary to draw the item on the canvas (but they might like to have a few options available?) and then return a list of the Tk ids of the created items. Caller will then assign identical tags to each id which is returned by each per-entity call.
tkpoint
Returns only the first and second element of an array reference as a list.
@xy_point = tkpoint(@pt);
addr_to_tktag
Returns a stringified tag of form: ### ###
my $tag = $drw->addr_to_tktag($addr);
tktag_to_addr
Returns an anonymous hash reference which should serve as an address, provided that $tag is a valid < layer >###< type >###< id > tag (and that the entity exists in the $drw object (check this yourself.)
my $addr = $drw->tktag_to_addr($tag);
<<lessThis module is considered extremely pre-ALPHA and its use is probably deprecated by the time you read this.
Methods
There is no constructor for this class, its methods are inherited via CAD::Drawing::IO
Thoughts
Need to re-structure the entire deal to have its own object which belongs to the drawing object (or does the drawing object belong to this object?) Either way, we need to be able to build-up into interactive commands (possibly using eval("$drw->$command"); ?)
Ultimately, the focus here will likely drift toward supporting perlcad and enabling use of perlcad from within CAD::Drawing scripts. However, the nature of lights-out scripting vs the nature of on-screen drafting is quite different, so there will be some tricks involved. Once each entity has its own class, the ability to install callbacks and the resolution of notifications should get easier. But, there will still be the issue that a debug popup does not know it will appear when the entities are created, while a drafting viewport does (or does it?)
Possibly, adding a list of tk-ids to each $obj as it is drawn would be a good starting point, but this gets us into trouble with multiple viewports.
show
Creates a new window (no options are required.)
$drw->show(%options);
Available Options
forkokay => bool -- Attempt to fork the new window
window => MainWindow -- Use the pre-existing Tk object
stl => Message -- Use pre-existing Message widget
size => [W,H] -- Specify window size in pixels
width => W -- alias to size
height => H -- ditto
center => [X,Y] -- Center the drawing at (X,Y)
scale => factor -- Zoom by factor (default to fit)
bgcolor => color -- defaults to "white"
hang => boolean -- if not, you just get the canvas widget
items => @list -- sorry, not compatible with select_addr :(
Draw
Draws geometry on the Tk canvas $cnv. List of items to draw must be specified via addresses stored in $options{items}.
The newest fad (:e) is the $options{tag} argument, which uses addr_to_tktag() to tag the item.
$drw->Draw($cnv, %options);
tkbindings
Setup the keybindings.
$drw->tkbindings($mw, $cnv);
text_size_reset
text_size_reset($cnv);
free_dist
free_dist();
windowzoom
Creates temporary bindings to drawing a rubber-band box.
windowzoom($cnv);
tksetview
No longer used
$drw->tksetview($cnv, %options);
scalebox
Returns the scaling required to create a view which most closely matches @ext to @size of canvas.
$scale = $drw->scalebox(@size, @ext);
dsp subroutine refs
each of these should do everything necessary to draw the item on the canvas (but they might like to have a few options available?) and then return a list of the Tk ids of the created items. Caller will then assign identical tags to each id which is returned by each per-entity call.
tkpoint
Returns only the first and second element of an array reference as a list.
@xy_point = tkpoint(@pt);
addr_to_tktag
Returns a stringified tag of form: ### ###
my $tag = $drw->addr_to_tktag($addr);
tktag_to_addr
Returns an anonymous hash reference which should serve as an address, provided that $tag is a valid < layer >###< type >###< id > tag (and that the entity exists in the $drw object (check this yourself.)
my $addr = $drw->tktag_to_addr($tag);
Download (0.008MB)
Added: 2007-03-17 License: Perl Artistic License Price:
952 downloads
ZDraw
ZDraw is a fairly basic drawing applet used to demonstrate the concept of persistence in a drawing applet. more>>
ZDraw is a fairly basic drawing applet used to demonstrate the concept of persistence in a drawing applet. What do I mean by persistence? Well, take most of the "demo" drawing applets available on the net. If you put the applet into the background, resize it, or partially/fully cover it with another window, then the "hidden" portion of the applet loses any drawings that were made.
A simple (and rudimentary) solution to this can be easily implemented using a Vector and creating a new object class LineObject within which we can store the start and end points of each line, together with its colour. Then, when we can override public void paint( Graphics g ) and insert some code that iterates through each element of the vector, repainting each line segment. This way, everytime the applet redraws itself, all of the lines will be repainted, and thus will not be lost!
<<lessA simple (and rudimentary) solution to this can be easily implemented using a Vector and creating a new object class LineObject within which we can store the start and end points of each line, together with its colour. Then, when we can override public void paint( Graphics g ) and insert some code that iterates through each element of the vector, repainting each line segment. This way, everytime the applet redraws itself, all of the lines will be repainted, and thus will not be lost!
Download (0.003MB)
Added: 2007-03-12 License: GPL (GNU General Public License) Price:
956 downloads
DrawPile 0.4.0
DrawPile is a collaborative drawing program, similar to OpenCanvas. more>>
DrawPile is a collaborative drawing program, similar to OpenCanvas. It is currently under planning stages. DrawPile project will use Qt4 and will be available for Windows, Linux and MacOS.
<<less Download (0.16MB)
Added: 2007-04-10 License: MIT/X Consortium License Price:
931 downloads
CAD::Drawing::IO::Compressed 0.26
CAD::Drawing::IO::Compressed is a Perl module to load and save compressed data. more>>
CAD::Drawing::IO::Compressed is a Perl module to load and save compressed data.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "compressed" or $filename has a ".gz" extension (probably the best way.)
$fact = check_type($filename, $type);
Compressed I/O functions
These use File::Temp and compression modules to create a compressed version of most supported I/O types (FIXME: need a tar scheme for directory-based formats (currently unsupported))
save
$drw->save($filename, %opts);
load
$drw->load($filename, %opts);
<<lessRequisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "compressed" or $filename has a ".gz" extension (probably the best way.)
$fact = check_type($filename, $type);
Compressed I/O functions
These use File::Temp and compression modules to create a compressed version of most supported I/O types (FIXME: need a tar scheme for directory-based formats (currently unsupported))
save
$drw->save($filename, %opts);
load
$drw->load($filename, %opts);
Download (0.039MB)
Added: 2007-03-16 License: Perl Artistic License Price:
953 downloads
CAD::Drawing::IO::PostScript 0.03
CAD::Drawing::IO::PostScript is a Perl module with PostScript output methods. more>>
CAD::Drawing::IO::PostScript is a Perl module with PostScript output methods.
I would like this module to both load and save PostScript vector graphics, but I have not yet found a suitable PostScript parsing package.
This module should be considered pre-ALPHA and untested. Some features rely on the authors hacks to PostScript::Simple, which may or may not have been incorporated into the CPAN distribution of PostScript::Simple. For bleeding-edge code, see http://ericwilhelm.homeip.net.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "circ" or $filename is a directory containing a ".circ" file.
$fact = check_type($filename, $type);
Methods
load
load();
save
$drw->save($filename, %opts);
PostScript::Simple::setpscolor
PostScript::Simple::setpscolor();
<<lessI would like this module to both load and save PostScript vector graphics, but I have not yet found a suitable PostScript parsing package.
This module should be considered pre-ALPHA and untested. Some features rely on the authors hacks to PostScript::Simple, which may or may not have been incorporated into the CPAN distribution of PostScript::Simple. For bleeding-edge code, see http://ericwilhelm.homeip.net.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "circ" or $filename is a directory containing a ".circ" file.
$fact = check_type($filename, $type);
Methods
load
load();
save
$drw->save($filename, %opts);
PostScript::Simple::setpscolor
PostScript::Simple::setpscolor();
Download (0.008MB)
Added: 2007-03-17 License: Perl Artistic License Price:
952 downloads
CAD::Drawing::IO::Split 0.26
CAD::Drawing::IO::Split is a Perl module that allows fast distributed text file methods. more>>
CAD::Drawing::IO::Split is a Perl module that allows fast distributed text file methods.
Requisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "split" or $filename is a directory (need a tag?)
$fact = check_type($filename, $type);
Load/Save Methods
Concept here is to strip data down to the absolute bare minumum in an effort to find a generic and extensible incarnation of same.
save
Saves data into $toplevel_directory under a directory for each layer, each type, and a file for each id.
save($drw, $toplevel_directory, %options);
Requires that the directory already exists.
Selective saves not yet supported.
Unfortunately, the file-formats are rather primitive and the code needs refactoring. These are nowhere near stable, so dont expect version compatibility yet!
Needs a clear_all_like => $regex option.
load
load($drw, $toplevel_directory, %options);
%options may include selective-load arguments
Naming Functions
_dir_list
@list = _dir_list($dir);
_sp_filename
Creates nested directories which are required to save %obj and returns the filename which should be saved into.
_sp_filename(%obj, %data);
Inherited Methods
clear_dir
Removes layers (and items) from the split directory $dir.
Defaults to removing all.
$drw->clear_dir($dir, %options);
Available options:
like => qr/regex/, # if regex matches layer name
not_like => qr/regex/, # negative of above (compounded)
check_select() options:
%options is passed through CAD::Drawing::Defined::check_select(), so the selections returned by it will be utilized here.
select_layers => @layer_list,
select_types => @types_list,
Returns the number of items removed or undef() if $dir does not exist.
<<lessRequisite Plug-in Functions
See CAD::Drawing::IO for a description of the plug-in architecture.
check_type
Returns true if $type is "split" or $filename is a directory (need a tag?)
$fact = check_type($filename, $type);
Load/Save Methods
Concept here is to strip data down to the absolute bare minumum in an effort to find a generic and extensible incarnation of same.
save
Saves data into $toplevel_directory under a directory for each layer, each type, and a file for each id.
save($drw, $toplevel_directory, %options);
Requires that the directory already exists.
Selective saves not yet supported.
Unfortunately, the file-formats are rather primitive and the code needs refactoring. These are nowhere near stable, so dont expect version compatibility yet!
Needs a clear_all_like => $regex option.
load
load($drw, $toplevel_directory, %options);
%options may include selective-load arguments
Naming Functions
_dir_list
@list = _dir_list($dir);
_sp_filename
Creates nested directories which are required to save %obj and returns the filename which should be saved into.
_sp_filename(%obj, %data);
Inherited Methods
clear_dir
Removes layers (and items) from the split directory $dir.
Defaults to removing all.
$drw->clear_dir($dir, %options);
Available options:
like => qr/regex/, # if regex matches layer name
not_like => qr/regex/, # negative of above (compounded)
check_select() options:
%options is passed through CAD::Drawing::Defined::check_select(), so the selections returned by it will be utilized here.
select_layers => @layer_list,
select_types => @types_list,
Returns the number of items removed or undef() if $dir does not exist.
Download (0.039MB)
Added: 2007-03-16 License: Perl Artistic License Price:
952 downloads
JFDraw 1.8.0
A vector graphics application and library package. more>>
JFDraw is a Java vector graphics drawing application and library package. It is focused on vector graph drawing field.
It is useful for mechanical, electronic, architectural graph drawing applications, or even business process or workflow graphs.
Enhancements:
- Text may be aligned to the left, middle, or right.
- Angles may be rotated in either a fixed or arbitrary fashion.
- A new text drawing method is used to make it clearer.
- The JFX/XML format import/export feature was remvoed from the menus in JFDraw Free Full version.
- A new logger is used for all the JFDraw debugging/running information.
- Fields were added for integer ID, string ID, name, and description in Abstract Object, so all shapes now have those four customized properties for programming.
<<lessIt is useful for mechanical, electronic, architectural graph drawing applications, or even business process or workflow graphs.
Enhancements:
- Text may be aligned to the left, middle, or right.
- Angles may be rotated in either a fixed or arbitrary fashion.
- A new text drawing method is used to make it clearer.
- The JFX/XML format import/export feature was remvoed from the menus in JFDraw Free Full version.
- A new logger is used for all the JFDraw debugging/running information.
- Fields were added for integer ID, string ID, name, and description in Abstract Object, so all shapes now have those four customized properties for programming.
Download (0.53MB)
Added: 2005-10-28 License: GPL (GNU General Public License) Price:
1457 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above drawing program search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed