Copyright (C) 1986-2011 by Daniel H. Hudgins, All Rights Reserved.
No part of "This Web Site" (HTML document), including associated files, may be: distributed, sublicensed, transmitted, copied, archived, mirrored, modified, bundled, embedded, sold, given away, rented, loaned, or shared in any form without express written permission in a formal Vendor agreement contract dated and signed in ink obtained directly from Daniel H. Hudgins by registered postal mail. All agreements for permission to distribute expire after a period no greater than one year from the date of the signing of the agreement by Daniel H. Hudgins. See the current "EULA" for information regarding limited copying and storage for the purpose of "Beta Testing" "This Web Site."
To view or use the current version of this Web page you may need to reload or refresh the display of this page by your browser. Just clicking on the browser's [Reload] or [Refresh] icon may not be enough to insure that all of the page's most current contents have been cached and displayed. Some browsers may have additional commands to help display the page's most current contents such as: holding down the [Shift] key and clicking on the [Reload] icon, holding down the [Control] key and clicking on the [Refresh] icon, holding down the [Control] and [Shift] keys and clicking on the [Refresh] icon, pressing the [Control] and [F5] keys, pressing [Control] and the [R] key, or some other combination of keys or clicks. Check to see which commands your HTML browser uses to load the most current page contents into its cache and then to display them onto the screen.
This Web site is dedicated to the thousands of "users" of my programs, those who have helped test my programs over the last 25 or so years, and especially those who shared their experiences with me.
You must read this notice: This is a licensed Web site (HTML document and associated files). You must read and agree to be legally bound in contract by the Terms of Use and conditions given in the End User License Agreement ("EULA"), Legal Notices, Instructions, Warnings, Disclaimers, and all other text in "SECTION: 0" of "This Web Site" (HTML document and associated files) before reading or using any of the information, software programs, and or files, contained in, linked to, and or associated with, "This Web Site" (HTML document and associated files). Any use or "Beta Testing" of "This Web Site" constitutes your acknowledgment of your full agreement with the current End User License Agreement ("EULA") and your decision to have this current license supersede all prior and contemporaneous agreements and understandings. Information and files in "This Web Site" (HTML document and associated files) have been placed here so that long time users of "The Author's" programs DANCAD3D.COM (tm) , DANCAD87.EXE (tm), DANCINEL.EXE (tm), DANCINES.EXE (tm) , DANCAM.EXE (tm) , or DANPLOT.EXE (tm) could help proofread the text of the documentation files or screens displayed, and also help test data files, example files, and or any software programs that might be made available from time to time, to aid "The Author" in finding mistakes, bugs, and other errors, omissions, defects, mistakes, and faults. Everything in "This Web Site" (HTML document and associated files) is "Beta Test", "Beta Code", Experimental, Preliminary, requires proofreading, or is being evaluated for possible revision, and is NOT warranted to be free of defect. To help "The Author" report any bugs, foul-ups, defects, or mistakes that you find, see "SECTION: 8" for instructions. "This Web Site" (HTML document and associated files) and all other files and programs by Daniel H. Hudgins are made available "AS IS" without warranty of any kind express, expressed, or implied. All offers and specifications are subject to change or discontinuation without notice of any kind. Please look over "SECTION: 8" of "This Web Site" before contacting "The Author."
The text in this section was derived from the v2.5 CAD manual, and has been updated somewhat, but differences between different releases of v2.5, v2.6 and v2.7 may mean that some of the information may not apply to the version you are using. Some adjustment may be required for versions prior or subsequent to v2.7A.
You may not distribute, sell, rent, share, or give away these HTML documentation files or printed copies of them. You may not extract text from these HTML documentation files for distribution, sale, rent, sharing, or giving away. You can use the [Print] option in your browser to make one copy for yourself to mark up in order to help me proofread the text for mistakes.
Documents may be available to download from time to time, you can check SECTION: 9 to see what the current situation with regard to downloadable files is. The names of these documentation files may change, and they may be edited, combined, or eliminated in the future, without notice.
You may need to adjust your browser for best viewing of the pre- formatted text by changing the "font" size using the commands in your browser (see the help in your browser, or use the pull-down menus in your HTML browser.) If some letters in words on the screen appear to be missing or scrambled try changing the font size in your browser as this sometimes happens even though the words are spelled correctly in the HTML code.
Use the "Edit, Find in page Ctrl+F" or "Edit, Find (in this page)... Ctrl+F" command in your browser to search for keywords within the documentation text in this HTML page. You will need to search over again in the other pages in this HTML document for the same keyword since your browser may not search for a keyword beyond the current page that is loaded.
DANCAD3D (tm) macro commands can used to write a macro "program" that will operate DANCAD3D (tm) automatically. DANCAD3D (tm) can also automatically generate an output macro file of these commands while you use the programs menus. Appendix B lists detailed information about many of the individual macro commands.
Steps to use Appendix B: Macro commands.
Read this section to learn what commands are available.
Use [W]rite from DANCAD3D (tm)'s main menu to write or edit macros.
Use the automatic [O]utput macro feature to automatically code these macro commands to a file while you use the menu commands.
This Appendix B contains information on the DANCAD3D (tm) macro programming commands that are available for your use in writing automatic CAD, CAE, or CAM programs. See the pages in this Web site that link to this page for additional information.
Below are details about macro commands that start with A.
PURPOSE: To change x, y, z, color, width, shape, or style value
of a line by the line's array number. The array numbers
are consecutive when the lines are loaded, entered or
appended.
MAIN MENU: [N] [A]
KEYWORD: ALTER
PARAMETERS: 11
TYPE: i......... Line number 1 to MaxLines, depends on memory.
r......... X1 -1E18 to 1E18.
r......... Y1 -1E18 to 1E18.
r......... Z1 -1E18 to 1E18.
r......... X2 -1E18 to 1E18.
r......... Y2 -1E18 to 1E18.
r......... Z2 -1E18 to 1E18.
i......... Color -127 to 127.
i......... Thickness 0 to 255.
i......... Shape 0 to 255 (Encoded, see Appendix N.)
i......... Style 0 to 255 (Encoded, see Appendix N.)
FORMAT: ALTER i r r r r r r i i i i
EXAMPLE: ALTER 747 0 0 4 367 0 9 1 1 0 0
INIT
LOAD 3D D:\P_365\EX_123.3D
LET |L -> LINES
APPEND 0 0 0 0 0 0 1 1 0 0
APPEND 0 0 0 0 0 0 1 1 0 0
LET |X = 47 |LET Y = 96
:LABEL
ALTER [ |L + 1 ] [ |X * -1 ] |Y 0 |X |Y 0 1 1 0 0
ALTER [ |L + 2 ] |X [ |Y * -1 ] 0 |X |Y 0 1 1 0 0
LET |X = [ |X - 1 ] LET Y = [ |Y - 1 ]
IF [ |X + |Y ] > 0 THEN GOTO :LABEL
HINT: This command is useful for having a few lines change in
an element from frame to frame. See also the macro
command LET for LET |var -> LINES to get a pointer to
the line segment numbers in DANCAD3D (tm)'s workspace.
PURPOSE: To animate a sequence of numbered frame files stored on
a fast harddisk or RAM disk. There is a pop-up options
menu to run the animation at different speeds and
directions as well as single step. While in ANIMATE
press [Return] to pop-up the menu. ANIMATE was updated
in v2.7A to support color frames in EGA, VGA, and SVGA
video modes. Also changed in v2.7A is that ANIMATE can
be started from TEXT_MODE and detect the video mode
required for many of the Pixel frame file types, see the
information below. In v2.7G ANIMATE was expanded to
support VESA 15 bpp, 16 bpp, 24 bpp "true-color", and 32
bpp video modes, and some delay options were added.
XMODES were added in v3.7N.
MAIN MENU: [F] [A]
KEYWORD: ANIMATE
PARAMETERS: 2 or more for XMODES see below,
TYPE: f......... Name of the pixel frame file set. Frames are
numbered by the file extension starting with
FILENAME.1 and going up to FILENAME.999.
i......... Initial setting for the inner-frame delay ms.
0 to 32767 milliseconds, e.g. 41 or 83.
For XMODE 1:
XMODE..... XMODE shift keyword.
i......... Mode code for XMODE, 1 for mode one.
c......... S L P D frame filename numbering mode type.
i......... Frame delay 0 to 32767 ms, try 41 ms.
i......... Start frame number.
i......... Last frame number.
f......... Filename of frame set.
For XMODE 2 and XMODE 3:
XMODE..... XMODE shift keyword.
i......... Mode code for XMODE, 2 or 3.
c......... S L P D frame filename numbering mode type.
r......... Frames per second, try 24.000.
i......... Frame recover limit, try 32.
i......... Frames per foot, try 16 for 35mm film.
i......... WAV samples per frame, 2000 for 48000 and 24 fps.
i......... SMPTE lock frame offset, try 1hr=86400 for 24fps.
i......... Display frame offset, try 0.
i......... Manual trigger offset, try 0 to -3.
i......... Auto trigger offset, try 0.
i......... Trigger mode 0 to 4.
0=None, press [Backspace] or [Space] to restart.
1=Tap [Ctrl] to start when you hear start slate.
2=Pulse automatic parallel port circuit beep start.
3=Master SMPTE LTC output to WAV player computer.
4=Slave SMPTE LTC input from WAV player computer.
Trigger mode 0 is for MOS or silent editing.
Trigger modes 1 and 2 require a start slate
or beep in the sound WAV file, trigger for
mode 1 you tap a key when you hear the start
sound, and 2 uses the circuit that sends a
pulse to the parallel port for automatic
start from the start tone or slate sound.
Trigger modes 3 and 4 require some SMPTE LTC
hardware hooked up to your computer. Trigger
mode 3 lets you use the Pick and View
commands in the Kinema Edit list, or the
ANIMATE command, to drive the WAV player
running on another computer (or the same
computer but that is not recommended), so
that when you stop and start the sound will
sync automatically. Trigger mode 4 is like 3
but the other way around, when you start and
stop the WAV player, i.e. Magix (tm), it
sends SMPTE LTC time code to the ANIMATE
command and the ANIMATE command shows the
corresponding SMPTE LTC time code. In
Trigger mode 4 you can also slave more than
one computer together to get different frames
to show in sync, like for multi camera
shooting, or to run the frames from an
external SMPTE LTC generator or tape playback
sync track, and such.
If Trigger mode is 0 to 2 then:
i.......... Trigger spacing 0 to 99999999.
i.......... Trigger skip 0 to 24.
i.......... Parallel Port to use, 1 to 3.
i.......... Parallel Port enable, 0 or 1.
If Trigger mode is 3 or 4 then:
i.......... SMPTE hardware type code, 1=Telcom T102 (tm).
i.......... Serial COM port, 1=COM1, 2=COM2, 3=COM3, 4=COM4.
i.......... BAUD rate, 9600 or 19200.
i.......... SMPTE sync source, 1=Crystal 2=Video signal.
If Trigger mode is 3 then:
i.......... Sound advance frames for run-up.
For all Trigger modes:
i......... Start frame number.
i......... Last frame number.
i......... Key frame number.
i......... Force key frame mode 0 or 1.
f......... Filename of frame set in mode 2 or
Filename for *.PFL frame list in mode 3.
After ANIMATE finishes XMODES 2 and 3 it saves some
values to the disk in the program directory,
HTKFRMAT.VAR = 1.00 (then version for the return values)
SHOTTYPE.VAR = S, L, P, or D for filename number type.
SHOTNAME.VAR = Filename for frame set or frame list.
HEADFRAM.VAR = Head frame number marked while in ANIMATE.
TAILFRAM.VAR = Tail frame number marked while in ANIMATE.
KEYFRAME.VAR = Key frame number marked while in ANIMATE.
These frame numbers and info can be read by an external
program, the macro, or another macro to do something
with the frames or to record data about the shot and
such.
FORMAT: ANIMATE f i or ANIMATE XMODES n ...
EXAMPLE: ANIMATE ROBOT_1 100
NAME 1 = SPUR2 0
LET |DELAY = 100
ANIMATE NAME 1 HERE |DELAY
ANIMATE XMODES 1 P 0 99999999 PIX\00000000.PIX
ANIMATE XMODES 2 D
24 32 16 2000 86400 0 0 0 3
1 1 19200 1 48
0 99999999 240 0 PIX\0.PIX
ANIMATE XMODES 3 D
24 32 16 2000 86400 0 0 0 3
1 1 19200 1 48
0 99999999 240 0 FILENAME.PFL
NOTE: The filename passed to ANIMATE can have an extension of
any value since the extension is stripped off and the
pixel file set is assumed to start with .1. This allows
the NAME command to pass the filename to the ANIMATE
command without problems. The video mode set for
DANCAD3D (tm) must be able to match the video mode set
when the pixel files were saved. The video board type is
selected from the small menu that comes up after the
opening screen when you run DANCAD3D (tm) from DOS.
If you start from TEXT_MODE the ANIMATE command will try
to find the right graphics mode for the Pixel file. You
should only try to load Pixel files that where saved in
video modes that your board, monitor, and the program
have been set-up to use.
The ANIMATE command has been configured to automatically
switch the video mode to the video mode used when the
Pixel files were saved by using one of the VESA 15, 16,
24, or 32 bpp (bits per pixel) video modes. When you
call the ANIMATE command in a macro it may be best to
precede ANIMATE with the macro TEXT command rather than
the GRAPH_MODE VESA command to force the video mode to
switch to the correct graphics mode based on the encoded
video mode of the first Pixel file in the animation
frame set. The internal pop-up menu in the ANIMATE
command switches the video board into a VGA mode so that
the text of the pop-up menu will display 80 column
rather than whatever the VESA mode is currently at, the
VESA mode is then reset after leaving the pop-up menu.
A delay option was added before the signal tone in the
cine film recorder output option so that the monitor can
stabilize before the image of each frame is exposed. A
post pop-up menu delay option has also been added to the
delay option in the pop-up menu for use when using a
monitor that goes black for a few seconds after changing
video modes.
In the ANIMATE command while the VESA 15, 16, 24, and 32
bpp modes are being used the pop-up menu switches the
video mode temporarily. On some video monitors the
monitor "blanks" the screen for a few seconds after the
video mode changes. When you select the cine recorder
exposure command from the ANIMATE command pop-up menu
you might miss the first few frames because the monitor
has not recovered from the video mode change after the
pop-up menu. To try to avoid this problem I have added
another delay value in the inner-frame delay prompt that
lets you enter a delay value so that the program will
pause long enough for the monitor to stabilize after the
video mode changes and thereby enable the first frame to
be exposed properly in the cine film recorder. This
delay can also be used to pause the program so you can
see the start of the other command options on slow
monitors. The delay value is entered in milliseconds,
so a value of 5000 would be a five second pause.
Since the VESA video mode code numbers do not set the
same video mode on all computers you will need to check
if the video cards and monitors are compatible with the
pixel files generated on one computer that you want to
display on another computer. Since the ANIMATE command
will automatically try to set the video mode that was
used when the pixel file was made, you should not use
the LOAD PIXEL, ANIMATE, or other commands that switch
the video mode when loading pixel files if the VESA mode
code used in saving the pixel file will not safely set
that mode on the computer you are using ANIMATE on to
load the pixel files. If the monitor does not support
the video mode that the pixel file will set the monitor
may lose sync, over heat, and possibly catch on fire.
If the monitor loses sync at any time turn it off
immediately.
The *.PFL Pixel frame list file is made by the Kinema
Edit list and loads frames from the Kinema project
Structure, so you cannot delete or move frames that are
listed in the *.PFL file if you want to view the edited
shots listed in that *.PFL file.
Be sure that the SMPTE hardware is powered and turned on
before you enter the ANIMATE command if you want to use
Trigger modes 3 or 4 since the program will lock up
waiting for the right signals from the Serial Port and
the Telcom T102 (tm) SMPTE LTC reader/writer. You can
tap the [Ctrl] key and [Q] and [Return] and ^[X] over
and over to try to unlock the system if you forget to
have the power the SMPTE LTC hardware before you enter
the ANIMATE command.
You can use the automatic output macro feature to code
the more complex ANIMATE XMODES to be more sure you have
all the values coded, press [O] in the main menu to turn
on the output macro command.
HINT: To exit the ANIMATE command press [Q], your macro will
then continue with the next macro command. To quit the
whole macro press [Control] and [X] after quitting the
ANIMATE command. For fastest sequencing try to put the
file set in the root directory of your harddisk or in an
expanded memory RAM disk. If you use the root directory
be careful that the total number of files does not
exceed the DOS limit (can be about 511.) If you get a
disk full error when your disk is not full it may be
from too many files in the root directory. If your DOS
uses the SMARTDRV command it may help by giving your
disk caching. Running a hard disk optimizer may help by
defragmenting, use it after you have written the pixel
files to the disk. See also the commands SAVE PIXEL,
LOAD PIXEL, LOOP, NAME, DELAY and SIGNAL for making
animated movies. Longer frame sets than ANIMATE
normally displays can be displayed by using the LOAD
PIXEL and DELAY commands directly, frames in a set can
then be stored on more than one harddisk.
PURPOSE: To add a line to the drawing workspace array. Use to
add lines to the element with the highest number or
following the BEGIN command to make an element one line
at a time. Allows you to write macros that produce
shapes from mathematical formulas.
MAIN MENU: [D] [?...] [D] [G] [./Del] [G] [0/INS]
KEYWORD: APPEND
PARAMETERS: 10
TYPE: r......... X1 -1E18 to 1E18.
r......... Y1 -1E18 to 1E18.
r......... Z1 -1E18 to 1E18.
r......... X2 -1E18 to 1E18.
r......... Y2 -1E18 to 1E18.
r......... Z2 -1E18 to 1E18.
i......... Color -127 to 127.
i......... Thickness 0 to 255.
i......... Shape 0 to 255 (Encoded, see Appendix N.)
i......... Style 0 to 255 (Encoded, see Appendix N.)
FORMAT: APPEND r r r r r r i i i i
EXAMPLE: APPEND [ |X1 * |S ] |Y1 0 [ |X2 * |S ] |Y2 0 1 1 0 0
; Add a line in z = 0 plane with x scaled.
; Use BEGIN to start a new element.
; See also macro keyword ENTER.
LET |X = 0 LET |Y = 0 LET |Z = 0
LET |XOLD = |X LET |YOLD = |Y LET |ZOLD = |Z
:LABEL
LET |X = [ |X + 1 ] LET |Y = [ SQR( |X ) / 25 ]
APPEND |XOLD |YOLD |ZOLD |X |Y |Z 1 1 0 0
LET |XOLD = |X LET |YOLD = |Y LET |ZOLD = |Z
LOOP :LABEL 24
HINT: Use APPEND to create curves and other shapes from
formulas by keeping the last point values in variables
|XOLD, |YOLD, and |ZOLD, then connecting the old point
to the current point to make a chain of line segments.
PURPOSE: The ARRAY macro command can be used to access individual
values in an array variable file. The array file is a
single file with values stored in it, the ARRAY command
can access each of the values by the index number to the
array. This is an alternative to making a set of
numbered array files for variables. New for v2.7A.
MAIN MENU: You may be able to read the array with the [W]rite command.
KEYWORD: ARRAY
PARAMETERS: 4 (for read mode)
TYPE: w......... mode = R or READ (there may be other modes later)
f......... the filename of an number array to read from.
f......... the filename of a number variable to put value in.
i......... the index of member in the array, 1 to n members.
FORMAT: ARRAY R f f i (for read mode)
EXAMPLE: ARRAY R MYARRAY.VAR VALUE.VAR INDEX.VAR
ARRAY R MYARRAY.VAR VALUE.VAR 467
NOTE: This macro command is used with the EXPAND_ARRAY macro
command, or for reading values from an array for an
animation or other macro use. If the index is out of
range a numeric error will probably be returned, and the
macro will be stopped with an error report.
HINT: See also macro EXPAND_ARRAY command.