CAD plug-in XPs from PK Data Optima32 - The module everybody needs
PK Data CAD plug-ins

Revision history

Welcome to the Optima32 documentation.

Optima32 index:
Line hatching Hatching is made a lot easier. The hatch is made up from pure lines so you will have no export problems.
SameAs Draw an object just like another. Now with options on how to draw it.
Keep settings Keep all your settings and restore them later in the session.
Flood fill Create a multipoly in any enclosed area. No more tedious work with creating multipolys (that turn out to be leaking).
Multi change Change any property of any object. You are free to change whatever you wish.
Sheet functions A set of new sheet functions, making sheets more useful.
Symbol editing A new way to edit symbols
Macro access to dimensions Set dimension styles from macros
Sample macros A few macros using Optima commands
Other stuff The rest that didn't fit with any of the above
Installation How to install optima, and the menus and icons that are added automatically.
Demo limitations What you can't do with the demo.
License information Don't forget this one.

Download the demo now!



Hatching - easier and better than ever

Hatching is easier than ever before with Optima 32. Just have a look at the example below. Optima 32 also solve the export problem. The hatch commands will only create regular lines. The lines will export as any other line, minimizing the possible conversion problems.

Scan (mark) the area to hatch
It is hard to automatically tell the CAD-program exactly what area to hatch. The HATCHS command lets you select what objects that make up the area and then asks you to drag (move the mouse with the left button pressed) over the area. Hatch lines are placed automatically in this area.

Example of how easy it is:

Original object Moving animation of HATCHS at work

While dragging the area you can use the SHIFT key to rotate the hatch lines by 90°. To do this press shift and the left mouse button at the same time.

If you place a hatch line by mistake, press CTRL and move back over the unwanted line. This works until you terminate the command. After that you will have to delete the line manually. Deleting a hatch line is easy since it is just regular lines grouped together.

Standard line hatch
There is also a command, HATCH for normal line hatch. If you have an uncomplicated closed group of objects (does not need to be a multipoly). You only have to select the objects that make up the area to hatch.

If the hatch don't come out the way you expected, try to use the HATCHS command. It is easier to define what area to hatch with HATCHS.

Standard line cross-hatch
The HATCHX command will cross hatch an area for you. The output will be the same as if you used HATCH twice and changed the hatch angle by 90° in between.

Flood fill and hatch
A short cut command to first flood fill an enclosed area with FLOOD and then hatch the resulting multipoly with HATCH is also available. The command is called FLOODHATCH.

Setting hatch options
The only settings you have to worry about for the hatching is the hatch angle and the distance between the hatch lines. These are set with the HATCHOPT command.

All the hatch commands will use the current drawing properties for the hatch lines.

Commands:
HATCHS Hatch an area by dragging the mouse.
HATCH Standard line hatching
HATCHX Standard line cross-hatching
FLOODHATCH Flood fill and then hatch an area
HATCHOPT Settings for all the hatch commands.


SameAs - a faster way to create drawings

There have been many versions of this command during the years. We have added some more functionality to this idea.

The SAMEASOPT dialog

SAMEAS copies all the properties from the object you select and launch the drawing command to create a new entity of the same type.

There are some objects that can be created with different commands. You set what command to use for these types with the SAMEASOPT dialog.

Set 2nd color
The second color is not a "sticky property" and the only way to set it, is with a change command after the entity is drawn. If you enable this option a change command will be performed transparently after you finish the drawing command.

Set circle size
If this option is enabled the default size for CIRD and CIRR will be set to the value of the pattern entity.

Cycle cmds
Cycle commands let you select what command to use after picking a pattern object. You can cycle through the commands by pressing the right mouse button. The left accepts the suggested command. Use this option if you use more than one command to create any of objects in the dialog box.

View macro
The view macro button will show what macro commands to use to change the values in the dialog. The values shown correspond to the items selected at the moment.

Intelligence
For polygons the command will try to figure out if the pattern polygon is created with the BOX, the RPOLY or with the POLY command and launch the correct command. If a symbol reference is selected as a pattern object, the INSSYM command will be launched with the same rotation and scaling as the pattern.

For dimensions horizontal and vertical dimensions will be used if this item is set in the SAMEASOPT dialog. All dimension and text settings will be copied from the pattern entity. For dimensions the settings will be stored in the standard setting.

Commands:
SAMEAS Keep properties of pattern entity and launch drawing command
SAMEASOPT Settings for SAMEAS
SAMEASMC Macro command to set circle type
SAMEASMA Macro command to set arc type
SAMEASME Macro command to set ellipse type
SAMEASMT Macro command to set text type
SAMEASMD Macro command to set linear dimension type


Keep current settings

There are two small commands to save the current drawing properties and restore them later. They can be used in many situations. The reason they were introduced is if you like to return to the settings used before SameAs. You can then call SAVESETTINGS just before SAMEAS and GETSETTINGS when you wish to recall them later.

SAVESETTINGS will save the current settings for current drawing properties (all those you see on the statusbar), text properties and dimension properties. It will also save the state of Ortho, Grid, Snap and Lock.

People who write macros will also have use of these commands. Just remember that the calls cannot be nested.

Commands:
SAVESETTINGS Save current drawing properties
GETSETTINGS Restore saved drawing properties


Flood fill - turn any enclosed area into a multipoly

Flood fill will create a multipoly from any (nice) enclosed area. The entities don't have to have the endpoints connected, flood fill will fix that for you.

Example

Try to fill the region to the left. In FastCAD you will need make copies of all four entities, then trim all of them to their intersections. When you got this done you have to use MPOLY2 and hope the multipoly won't leak. Does it sound tempting? Why not use FLOOD instead?

With Flood all you have to do is to select all entities that make up edges and click inside. That's it!

Flood will trace all the edges and create a multipoly for you. The multipoly will be created in the same way as with the MPOLY2 command. Any selected closed object not on the edge will be included in the multipoly as well. These will create holes. Text are treated like closed objects.

Trickier situations
FLOOD can't handle all situations (you could come up with some nasty ones), but most nice cases will be handled. Some tips to get Flood to work better:

  • Select as few entities as possible. Ultimately only include those entities that make up the edges.
  • Explode complex objects. Especially closed polygons will be treated better if they are exploded to lines.
  • Select the inside point so that the first object to the right (angle 0°) is an object on the edge
  • Try to avoid large splines and ellipses.

Situations not solved
Here is a few of the things Flood won't handle: Example

  • An interior object that is closed but consists of more than one entity.
  • Entities crossing the edge, that has more than one intersection. Remember that we are only discussing selected entities, you can always deselect this kind of entities. In the example to the right the two on the upper line will cause problems, while the two on the lower line will be ok.
  • Large splines and ellipses. These will also take very long time to calculate.
  • Arcs that is tangent with other objects.
Commands:
FLOOD Flood fill an enclosed area


Multi change - change any property you wish

The MCHG command will let you change any group of properties for selected objects. The dialog can look a little complicated at first, but don't worry. You will soon figure out how it works.

The MCHANGE dialog

The setting area
The setting area is built up by two columns. The column to the left containing checkboxes to select if this property should be changed or not. The right column is the values to change to. For some properties there is a set button which allows you to select a new value from a dialog box.

Settings saved in the registry
A certain setting (all the information in the setting area) can be saved in the registry to be remembered for coming sessions. Clicking on a name in the list box will load that setting from the registry. To save the information in the settings area, click on Save and give them a name. If the name already exists that name will be replaced. The delete button will delete the selected name from the registry.

Selection code to use in macros
You will only have to worry about this value if you write macros. If you don't just ignore this box. For the macro users, use this value to specify the combination of the selected checkboxes.

Copy or set the current drawing properties
You can get and set the current drawing properties from this dialog. The radio buttons for all and selected chooses if all properties will be affected or just the ones marked by the checkboxes in the setting area. The get button will copy the properties from the drawing to the dialog box and the set button the other way around.

Get settings from pattern entity
When this option is enabled the values in the setting area is ignored (the checkboxes are still used to decide what properties that are affected). Instead you get to select a pattern entity and the properties are taken from that entity.

Create layers and sheets
If this option is enabled, layers and sheets will be created if they don't already exists in the drawing. This will only happen when loading a setting from the registry. If this option is disabled, non-existing layers and sheets will be ignored.


A few examples on how to use MCHANGE

Setting properties
The most straightforward is prepare a setting (and save it in the registry if it is a common one) and use this to change the properties of selected objects.

Lets say that you have all your dimensions on the layer "Dimension", in color red with blue text (2nd color) and the dimension style "Two decimals". To prepare a settings for this:

  • Check the boxes for layer, color, 2nd color and dimension.
  • Select the values for the selected properties. Layer should be set to Dimension, color to 2, 2nd color to 3 and dimension to Two decimals.
  • Make sure that "Get settings from pattern entity" is not checked.
  • Save the settings to the registry by clicking on the Save button and type for example "Standard dimension".
You are now ready to use this setting. Click OK to change the objects you wish. The next time you like to use the same settings, just click on the saved setting in the dialog box and click OK.

To create a macro for doing this, see Creating MCHANGE macros below.

Copy properties from a pattern object
Many programs (Word for example) has an icon with a brush there you can copy properties from an object onto other objects. This can also be done with the MCHANGE dialog.

Lets say that you like to copy line style, fill style, line width and pen thickness from one pattern object to your objects. To do this you have to:

  • Check the boxes for line style, fill style, line width and pen thickness in the setting area.
  • Check the box for "Get settings from pattern entity" (the values in the settings area is now ignored)
  • If you like to keep this setting, save it to the registry with the save button
All you have to do now is to click OK and select a pattern object. The checked properties will now be copied into the dialog and the command asks for what objects to change.

If you like to create a macro for doing this you will not need to save the setting to the registry, see Creating MCHANGE macros below on how to do it.

Changing the current drawing properties
The MCHANGE dialog can be used to set the current drawing properties (the properties used to create new objects). This can be done with macros but it is easier to do it with this dialog.

Lets say that you are about to draw a dimension and would like it to be like the in the first example above. If you saved the setting in the above example all you have to now is to:

  • Click on the setting in the list box (Did you name it Standard dimension?)
  • Select to only affect selected properties in the radio button
  • Click on Set to change the current drawing properties
You have now set up the current properties to draw standard dimensions. You can exit the dialog box with cancel and start to draw your dimension.

This feature also benefit from being called from a macro, see Creating MCHANGE macros below on how to do it.


Creating MCHANGE macros
If you use a setting often it will benefit a lot if being placed on a shortcut key or an icon. To do this you will have to create a macro. There are several macro functions to accomplish this, but best of all there is a wizard to help you write the macro!

Screenshots of the wizard with explanations

If you decide not to go for the wizard you will need some short comments:

  • Macro code
    Many commands ask for a macro code. The macro code describes a set of states of the checkboxes. Easiest is to get that from the dialog box for each configuration.
  • All
    Those commands that end with an A will not ask for a macro code, it will behave as if all checkboxes were selected.
  • Saved settings
    The MCHANGEM and MCHANGESC will ask for what setting to get from the registry. The name is one of the saved settings from the dialog box. The name is case sensitive.
  • Command names
    See the list below for a list of commands.


Commands:
MCHG Bring up the multi change dialog
MCHANGEP Multi change from pattern entity
MCHANGEPA Multi change all from pattern entity
MCHANGEPC Set current properties from pattern entity
MCHANGEL Multi change with the last settings
MCHANGEC Multi change from current properties
MCHANGECA Multi change all from current properties
MCHANGEM Multi change from registry setting
MCHANGESC Set current properties from registry settings
MCHANGEWIZARD Macro wizard for MCHANGE


Sheet functions - make sheets even more useful

Sheets are very useful, but FastCAD lacks a few commands dealing with sheets.

Displaying the current sheet name
The current sheet name is not displayed on the status bar. All the sheet commands that change the active sheet will display what sheet is activated in the track section (to left on the status bar). The sheet name will be displayed until the next FastCAD command is activated.

You can use the SSHOWNAME if you like to see what sheet that is currently active

Go to next or previous sheet
You can step to the next or previous sheet using the commands SNEXT and SPREV.

If you have "Auto hide all sheets except current and COMMON" turned on, you will get the next or previous sheet in the list. The old sheet will be hidden and the new sheet will of course be visible. If the auto hide option is turned off the next (or previous) visible sheet will be activated.

Show or hide all sheets
You can hide all sheets except the current and common sheet via the "Auto hide all sheets except current and COMMON" option, but there is no fast way to show all of them again.

The show all sheets (SSHOWA) and hide all sheets (SHIDEA) in Optima, will turn of the auto hide option and set all sheets except the current and common to be visible or hidden.

Set active sheet
FastCAD only offers one method to set the active sheet and that is via the SHEET dialog box. Optima adds two new methods for you.

Set sheet by name
Set sheet by name (SSET) is most useful for menu and macro customizations. The command will prompt you for a sheet name and set that name if the sheet exists.

Set sheet by pattern
Set the same sheet as another object (SSETP). Just select the pattern object and that sheet is set active. This command is actually an example of what multi change can do, it is just a shortcut to MCHANGEPC 1;

Hide sheet
FastCAD includes a command to hide a sheet given its name (HIDESHT), so Optima only adds a command to hide sheet by pattern (SHIDEP). The sheet of the selected pattern object will be hidden.

Get sheet name
There is a function for macro programmers to retrieve the current sheet name. The SGETNAME function will take a macro variable to store the current name in. If the common sheet is active "Common (not on any sheet)" is stored.

Create sheet book
Finally is here a command to import drawing into sheets that are created automatically. You will have to create a bookmark file with the drawings to convert into one drawing with each of the drawings on different sheets.

Three ways to create a bookmark file

  1. The FastCAD bookmark command - Bookmarks are normally created with the BOOKMARK command in FastCAD, see the FastCAD documentation for more information. This is the easiest way to do it if you only have a few files to add.
     
  2. FastCAD NED editor - NED is shipped with FastCAD DOS and with the XP development toolkit (free download from the FastCAD web-site). It has a feature to import a directory listing, which is useful. Try this:
    • Start Ned with a new file, like ShtTest.bkm
    • Press ESC (brings up the menu) and D (Dir insert), specify the FastCAD directory and a filemask: C:\FCAD32\*.FCW
    • Press ESC (brings up the menu) and P (Prefix), and give the directory again C:\FCAD32\ or just a # and press A for all.
    • Press ESC (brings up the menu) and E to exit and save the file
    This is useful to import all files by a file mask and you already have NED installed.
     
  3. With the DOS dir command - It is easy to create bookmark files from the DOS-prompt using the DIR command. To create the same file as in the example above, try this:

    DIR /B /S C:\FCAD32\*.FCW > ShtTest.bkm

    The flag /B causes the output to only be filenames and the flag /S includes all sub directories. You need to use /S to get the whole path to the file as a side effect of this you will also get all sub-directories.
    This method is most useful if you actually want to include all sub directories.
     

Create the book drawing
To create the book drawing, you have to do three simple steps:

  • Start a new drawing with NEW (if you don't want to add the sheets to the current drawing)
  • Run SBOOK and select the bookmark file to use. You will get a blue list box telling you any error messages.
  • Save the drawing new drawing.

A little more advanced options
Even though SBOOK accepts bookmark files, they don't have to be simple bookmark files, there are a couple of more options as well.

  • The filename listed on each row in the bookmark file can be any valid FastCAD filename (names that LOADM accepts). Most useful is the use of # for the FastCAD home directory.
  • The sheet name doesn't have to the same as the filename. By adding a | (pipe) directly after a filename in the "bookmark" file, you can type the sheet name directly after the pipe. Example which will assign the name Logotype to the Fcdlogo.fcw file: #Fcdlogo.Fcw|Logotype
  • The file order in the bookmark file decides the order in the generated book file. Just reorder the files to get the sheets in the order you prefer.

An example to try
Included in the installation is a file called SBOOK_EX.BKM. If you have installed the example drawings with FastCAD you can try to import that file as an example.

Copy to visible sheets
The command will copy the selected entities to all visible sheets. If the source entities not are on the common sheet they will be duplicated. The recommended use is to draw the entities on the common sheet, distribute them to the target sheets and then delete them from the common sheet.

Front (on this sheet) and Back (on this sheet)
The ordinary FastCAD FRONT and BACK commands ignore sheets. The front and back commands in Optima, will put the entities in the front or in the back on the current sheet. If any entity is on another sheet than the current it will be moved to the current sheet.


Commands:
SNEXT Go to next sheet
SPREV Go to previous sheet
SSHOWA Show all sheets
SHIDEA Hide all sheets
SSHOWNAME Show current sheet name
SSET Set sheet by name
SSETP Set sheet by pattern
SHIDEP Hide sheet by pattern
SBOOK Create a sheet book from a bookmark file
COPYVIS Copy to visible sheets
SFRONT Front (on this sheet)
SBACK Back (on this sheet)


Symbol editing - a new way to edit symbols

Editing lots of symbols is tedious to do. Rearranging them is almost impossible. Optima provides a way to convert all symbol definitions to sheets and then back again. As sheets ou can rearrange them, perform changes of multiple symbols etc.

Convert all symbols to sheets
The first step is to convert all synbol definitions to sheets. In order to do this, there may not be any sheets present in the drawing. After conversion all the symbol definitions are deleted and they will all appear as sheets.

Editing symbols as sheets
The Optima sheet commands will let you move around between the sheets in an easy way. The sheet dialog allow you to add new sheets, delete others and rearrange them.

By showing multiple sheets, change commands can be performed on multiple sheets (symbols) at the same time.

Converting sheets back to symbols
Finally you need to convert the sheets back to symbol definitions. This requires that there is no symbol definitions already in the drawing.

View all symbols in a drawing
The SYMOUT command will create a new drawing with small thumbnail pictures of all symbols, with the symbol name below.


Commands:
SYMTOSHT Convert symbols definitions to sheets
SHTTOSYM Convert sheets to symbols definitions
SYMOUT Create a drawing with all symbols in a matrix


Set dimension properties from the macro language

FastCAD provides no way to set dimension properties from the macro language. With Optima you can set any dimension property in the current dimension style.

List the current settings
The easiest way to figure out how to set properties is to list the current settings. The command DSLSTCUR will do this for you. A text window with a list of commands to return to the current setting is displayed. To save this as a file click on the T-icon and select Save As.

Commands:
DSFONT Set dimension font
DSTPOS Set text position
DSTHGT Set text height
DSDECP Set number of deciaml places
DSALEN Set arrowlength
DSAHGT Set arrowhead height
DSASTYLE Set arrowhead style type
DSTOLON Turn on tolerance and set tolerance values
DSTOLOFF Turn off tolerance
DSPREFIX Set prefix
DSSUFFIX Set suffix
DSLDROFS Set offset leader dimension point
DSLDREXT Set extend leader past text value
DSCMARKON Turn on show center mark
DSCMARKOFF Turn off show center mark
DSCLINEON Turn on show center line
DSCLINEOFF Turn off show center line
DSTXALGNON Turn on align text with arrows
DSTXALGNOFF Turn off align text with arrows
DSLSTCUR List current settings


A few sample macros using Optima macro features

Below are a few samples of what you can do in the macro language with the sheet functions in Optima.

Number all sheets
This one numbers all sheets starting with 1


' This macro will number all sheets except common with a number
' starting at 1 and increasing for each sheet
MACRO SHEETNUMBER
GP Position 0,0
GN Page 1
SSET;
:loop
SNEXT
IFERR end
textm Page
Position
GN Page Page+1
IFP Page loop
:end
ENDM

Put the sheet name on each sheet
This one places the sheet name on all sheets


' This macro will mark all sheets except common with its name.
MACRO SHEETNAME
GP Position 0,0
SSET;
:loop
SNEXT
IFERR end
SGETNAME SName
textm SName
Position
IFP 1 loop
:end
ENDM

Export sheets as DWG files
Only visible sheets are normally exported as DWG, but this macro export each sheet as a separate file.


' This macro will export all sheets as DWG files with [file namne]+_SHEET_+[sheet name]
MACRO SDWGOUT
GFNSP FName *.DWG
IFERR end
SAUTOHIDEON
SSET;
:loop
SNEXT
IFERR end
SGETNAME SName
GL DName FName
APND DName _SHEET_
APND DName SName
APND DName .DWG
SAVEASM DName
IFP 1 loop
:end
ENDM

Copy to visible sheets
This one duplicates the COPYVIS command


' This macro will copy all selected
' entities (picked by selbyp) to all
' visible sheets except the common
' sheet
' Objects to be copied are preferrably
' drawn on the common sheet (they will
' otherwise be duplicated on the source
' sheet).

MACRO SMCOPY
SELSAVE
SELBYP
SAUTOHIDEOFF
SSET;
:loop
SNEXT
IFERR end
SGETNAME SName
COPYSHT SName
IFP 1 loop
:end
SELREST
ENDM


The rest...

Here is the rest of the stuff that didn't fit under any of the above topics. Something might be useful for you...

Get the current drawing name
The GETDWGNAME returns the current drawing name to a macro variable. This can be used to automatically place the curent drawing name on a template.

Remove the extension
If you like to use the current drawing name to save in a different format the NOEXTENSION will remove anything after the last dot including the last dot.

Change a color sequence
The CINC command let you increase (or derease) the color of you objects. If you like to change a group objects using different colors of green to blue ones, this is the command for you.

Composite filled objects
The CFILL commands let you turn any filled object into two objects with differnt fillstyles and colors for the back and front one. This could be used to generate more complex fill effects.

Commands:
GETDWGNAME Get current drawing name to a macro variable
NOEXTENSION Remove extension from a filename
CINC Increment the color with a +/- number
CFILL Create a composite object with different fillstyles
CFILLM Macro version of CFILL
CFILLC Change selected objects according to CFILL


Installation and menus

The Optima32 module is installed by downloading the demo from our web-site, then just run the installation file. Be sure to give your FastCAD or EasyCAD folder.

An Optima menu will automatically appear to the right. It includes all Optima commands (except some macro commands). If you haven't configured any icons the "custom icons 3" will include icons for some Optima commands as well. Just click on the hammer button and select "custom icons 3".

If you don't want to customize your menu don't bother with reading the rest of this section.

If you customize your menus you can turn the standard Optima menu off by giving the command OPTIMAMENUOFF. The state is saved in the registry so the menu won't be coming back unless you type OPTIMAMENUON to turn it back on.

If you like to reuse whole or part of the Optima menu, the code for the MNU-file looks like:

Optima:
Flood fill:|FLOOD;
------:
Hatch scan:|HATCHS;
Line hatch:|HATCH;
Line cross hatch:|HATCHX;
Flood fill and hatch:|FLOODHATCH;
Hatch settings:|HATCHOPT;
Set 45° hatch angle:|HATCHOPT;;45;
Set 135° hatch angle:|HATCHOPT;;135;
-----:
Same as:|SAMEAS;
Same as settings:|SAMEASOPT;
-----:
Save current settings:|SAVESETTINGS;
Restore current settings:|GETSETTINGS;
-----:
Multi change:|MCHG;
Multi change macro wizard:|MCHANGEWIZARD;
Copy style properties:|MCHANGEP 252;
-----:
Next sheet:|SNEXT;
Previous sheet:|SPREV;
Show all sheets:|SSHOWA;
Hide all sheets:|SHIDEA;
Set sheet by pattern:|SSETP;
Hide sheet by pattern:|SHIDEP;
Create sheet book from bookmark:|SBOOK;
Copy to visible sheets:|COPYVIS;
Front (on this sheet):|SFRONT;
Back  (on this sheet):|SBACK;
-----:
SymDefs to Sheets:|SYMTOSHT;
Sheets to SymDefs:|SHTTOSYM;
Create Symbol list file:|SYMOUT;
-----:
Optima documentation:|OPENDOC Optima32.html;

The following goes into your IMN-file

#702,O-FLOOD.BMP:[Flood fill]|FLOOD;
#703,O-HATCHS.BMP:[Hatch scan]|HATCHS;
#704,O-HATCH.BMP:[Line hatch]|HATCH;
#705,O-HATCHX.BMP:[Line cross hatch]|HATCHX;
#706,O-HATCHO.BMP:[Hatch options]~HATCHOPT;
#707,O-HTO45.BMP:[Hatch angle 45°]~HATCHOPT;;45;
#708,O-HTO135.BMP:[Hatch angle 135°]~HATCHOPT;;135;
#710,O-SAMEAS.BMP:[Same As]|SAMEAS;
#711,O-MCHANG.BMP:[Multi change]|MCHANGE;
#712,O-CPPROP.BMP:[Copy style properties]|MCHANGEP;252;

Commands:
OPTIMAMENUON Turn on the Optima menu and icons
OPTIMAMENUOFF Turn off the Optima menu


Limitations in the Optima32 demo

We would like you to be able to try Optima32 as much as possible (and encourage you to buy the product). Therefor we have a demo version with all functions enabled, but you can not save your work. On startup you will get an option to try Optima (and disable save) or disable Optima and use the CAD program as normal.

To see how powerful Optima is - download the demo now!




Please read the license information!




The content of this site and our XPs are copyright © 1999-2000 to PK Data.