Copyright (C) 1986-2008 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 22 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) , 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 read "SECTION: 8" of "This Web Site" (HTML document and associated files) before trying to contact "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 B.
PURPOSE: For computer to make an audio beep.
MAIN MENU: NA
KEYWORD: BEEP
PARAMETERS: None
TYPE: NA
FORMAT: BEEP
EXAMPLE: BEEP ; Alert operator.
ECHO Put Disk No. 6 in Drive B:, then press [Return]. %%
WAIT ; Stop for action to be performed.
NAME 5 = FRAMES 0
:LABEL
LOAD PIXEL NAME 5 NEXT
BEEP { Operator would press camera's cable release. }
DELAY 1000
LOOP :LABEL 100
:B
BEEP
DELAY 5000 { About every 5 seconds until ^[X] is pressed. }
GOTO :B
HINT: Use the BEEP command to let you leave the room and know
when your presence is needed again. Or use BEEP
followed by a DELAY command to avoid having to press the
[Return] key when shooting frames off your monitor
manually. Or to signal when printing or plotting is
done. See also the macro commands SIGNAL and DELAY to
make sounds of different pitch and interval. The
utility program JOBDONE.EXE was at one time to be used
from a DOS batch file to alert the machine tool operator
that DANCAM.EXE (tm) or DANPLOT.EXE (tm) has finished a
job.
PURPOSE: Use BEGIN to start a new element when you are going to
append lines to the workspace and want the lines you
append to be separate from the elements already in the
workspace.
MAIN MENU: [D] [?...] [E] [B]
KEYWORD: BEGIN
PARAMETERS: None
TYPE: NA
FORMAT: BEGIN
EXAMPLE: INIT
BEGIN
:A
APPEND |x1 |y1 |z1 |x2 |y2 |z2 1 1 0 0
LET |y1 = [ |y1 + 1 ]
LET |y2 = [ |y2 + 1 ]
LOOP :A 150
LET |y1 = [ |y1 - 150 ]
LET |y2 = [ |y2 - 150 ]
BEGIN
:B
APPEND |x1 |y1 |z1 |x2 |y2 |z2 1 1 0 0
LET |x1 = [ |x1 + 1 ]
LET |x2 = [ |x2 + 1 ]
LOOP :B 150
HINT: Remember that most of the commands act on elements and
that the BEGIN command makes APPEND add its lines to a
new element rather than the last one created. See also
the ENTER macro command since ENTER works like the BEGIN
APPEND command sequence.
PURPOSE: To take a set of a few elements and make a set of many
elements such that the new elements represent
transitional elements between the ones in the input set.
A minimum of three elements are required in the input
set. The maximum number of output files is dependent on
the operational mode selected. The number of lines you
can use in each element in the set for BETWEENS depends
on the amount of disk space free. All elements in the
input set must have the same number of drawing lines.
The BETWEENS command was revised and altered for v2.7A,
please read the information below carefully. A version
of the BETWEENS command has been developed for use with
the drawing editor, and that new version also has a
macro equivalent. The BETWEENS command can now be used
with elements drawn to be partitioned like elements
intended for use with the WEAVE command. The "Long"
file set modes helps overcome limitations on surface
finish previous versions had when working on large
pieces.
MAIN MENU: [D] [?...] [N] [B] or [W]
KEYWORD: BETWEENS
PARAMETERS: 7 (for mode S and L)
5 (for mode E sub-mode S)
7 (for mode E sub-mode P)
TYPE: For mode S:
w......... mode, S = Short set of element files using
numbered extensions, i.e.
filename.1 through filename.999
w......... source_type = 2, 2D file type.
3, 3D file type.
A, ASCII file type.
f......... source_filename.
w......... result_type = 2, 2D file type.
3, 3D file type.
A, ASCII file type.
f......... result_filename.
i......... Iteration, 1 to 9, try 3 or 4.
r......... Damping, 0 to 1E18, 0.2 is normal.
For mode L:
w......... mode, L = Long set of variable files using up
to 8 numbers plus a three letter
name in the extension space, i.e
1.fil through 99999999.fil
w......... source_type = 2, 2D file type.
3, 3D file type.
A, ASCII file type.
f......... source_filename.
w......... result_type = 2, 2D file type.
3, 3D file type.
A, ASCII file type.
f......... result_filename.
i......... Iteration, 1 to 9, try 3 or 4.
r......... Damping, 0 to 1E18, 0.2 is normal.
For mode E sub-mode S:
w......... mode, E = Elements mode, limited by free
elements in workspace. In Elements
mode the current selected element
is the source element or the first
element in a set of elements up to
the last element. The result
becomes a new element, or set of
elements above the highest element
when the command is started.
w......... sub-mode, S = Set of elements starting with
the selected element and ending
with the last element in the
workspace, all elements must
have the same number of line
segments.
w......... join_result, Y = Yes, result as one element.
N = No, leave a set of elements.
i......... iteration, 1 to 9, try 3 or 4.
r......... damping, 0 to 1E18, 0.2 is normal.
For mode E sub-mode P:
w......... mode, E = Elements mode, limited by free
elements in workspace. In Elements
mode the current selected element
is the source element or the first
element in a set of elements up to
the last element. The result
becomes a new element, or set of
elements above the highest element
when the command is started.
w......... sub-mode, S = Set of elements starting with
the selected element and ending
with the last element in the
workspace, all elements must
have the same number of line
segments.
w......... join_result, Y = Yes, result as one element.
N = No, leave a set of elements.
w......... erase_source, Y = Yes, erase source element.
N = No, leave source element.
i......... iteration, 1 to 9, try 3 or 4.
r......... damping, 0 to 1E18, 0.2 is normal.
r......... tolerance distance for partitioning of source
element. The partition end of chain seek
tolerance for mode Elements Partition should
generally smaller than the shortest line
segment in any of the chains in the source
element e.g. 1e-6 or so.
FORMAT: BETWEENS w w f w f i r (for modes S and L)
BETWEENS w w w i r (for mode E sub-mode S)
BETWEENS w w w w i r r (for mode E sub-mode P)
EXAMPLE: FILES MAKE_DIRECTORY FACE
FILES CONVERT ELEMENTS FACE.3DE 3D-QUICK FACE_IN
BETWEENS S 3 FACE_IN 3 FACE\FACE_OUT 3 0.2
LET |OUTCOUNT -> COUNT FACE\FACE_OUT
BETWEENS L 3 1.FIN 3 FACE\1.FOT 3 0.2
LET |OUTCOUNT -> LONG_COUNT FACE\1.FOT
# 6 BETWEENS E S Y 4 0.1
# 72 BETWEENS E P Y Y 6 0.2 0.00001
NOTE: For the E or Elements mode you MUST use the select
element command symbol # to select the source element or
the first element in the source set before you call the
BETWEENS command.
All the source elements or files in the input set must
have the same number of lines segments. The line
segments in the each member of the source set must
correspond according to their line number order relative
to the lines in the other set members. It is best when
using the file modes to put the output file set a new
sub-directory since DOS might slow down considerably
when you have more than a couple of hundred files in a
sub-directory. With each iteration number of output
result is: N_out = ( N_in * 2 ) - 1, this repeats and
N_in then equals the last N_out. So if the input file
set has 7 members, and you pick 3 iterations you get an
output set with 49 members, ( ((((((7*2)-1)*2)-1)*2)-1)
= 49).
It is generally better to CURVE_FIT after BETWEENS than
before in order to reduce the number of points that need
to be interpolated, and therefore reduce the time
required.
HINT: Use the FILES CONVERT command to convert a set of
elements drawn in the drawing editor and saved in type
ELEMENTS to the type 3D-Quick compatible with the
BETWEENS command. The FILES CONVERT command may make
drawing easier since you can use the drawing [B]egin
command to start a new element and trace over the last
element drawing the same number of lines but in their
new locations. You can also draw the first element of
the input set and then copy the element and use the
[P]ull point command in the [L]ines sub-menu to make the
necessary alterations in the end points of lines, then
copy the copy and repeat the process until you have all
the elements required for the input source set. See
also CURVE_FIT macro command to fit a curve to a single
element in the workspace. If you are using BETWEENS to
make intermediates between curves it is better and
faster to use the BETWEEN command on the raw rough
curves, and later use the CURVE_FIT macro command to
smooth the individual elements made by the BETWEENS
processing. See also the EXPAND command that works like
BETWEENS but lets you find smooth intermediates to a
variable array that will be used as the parameter to any
of the other macro commands. See also the LET command
options COUNT and LONG_COUNT to get a count of the
result file set.
PURPOSE: To read a ASCII text file in and draw the text relative
to the mark point with the selected font, size, and
spacing.
MAIN MENU: [D] [?...] [C] [B]
KEYWORD: BLOCK_OF_TEXT or BLOCK
PARAMETERS: 18
TYPE: f......... ASCII text file filename.
f......... Font file filename to use.
r......... X mark point.
r......... Y mark point.
r......... Letter height.
r......... Letter width.
i......... Line color, -127 to 127.
i......... Line width, 0 to 255.
i......... Line shape, 0 to 255 (See Appendix N.)
i......... Line style, 0 to 255 (See Appendix N.)
r......... Italic slope -5 to 0 to 5.
r......... Letter spacing in em units 0 to 100.
r......... Word spacing in em units 0 to 100.
r......... Leading 0 to 1E18.
r......... Justified line length, use 1 if not justify.
r......... Justified height of block text, ditto.
w......... Formatting:
LEFT, flush with left margin.
CENTER, centered ragged margins.
RIGHT, flush with right margin.
w......... Spacing mode:
MONO, like a typewriter.
PROPORTIONAL, line length varies with text.
KERNING, visual like spacing of letters.
JUSTIFIED, all lines the same width.
FIT, pads to fit height and width.
FORMAT: BLOCK f f r r r r i i i i r r r r r r w w
EXAMPLE: BLOCK TEXT.1 SOMEFONT.FON -400 -400 24 24 1 1 0 0
0 0.5 0.7 1.5 800 200 LEFT JUSTIFY
; It is OK to continue the parameters on the next line.
HINT: An "em" unit is about the width of the capital letter M.
If you run out of line segments because the workspace is
full, free some disk space so the workspace can expand,
and try again. When saving the block of text for
engraving you may want to express thickened lines by
using the plotter driver to make a HPGL file, and then
convert the HPGL file to my ASCII tool path file type
for use with DANPLOT.EXE (tm).