[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5077: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3937) [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5079: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3937) [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5080: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3937) [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5081: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3937) forum.datacad.com View topic - DCAL 'Classic' Programmer's Reference Manual (Remastered)
The DataCAD Developer Network (DDN) is an online resource for information and support for DCAL® (DataCAD Applications Language) developers as well as anyone interested in creating fonts, toolbars, hatch patterns, or linetypes for use in DataCAD.
I'm pleased to announce the availability of the first draft edition of the remastered DCAL manual. Please feel free to download this document and post your comments, corrections, and additions here on this forum.
I'm busy here preparing the first release of LT 12 in portuguese, and almost didn't realize that you're about to make an unannounced kick-off for a new enterprise to be explored: the development of applications with DCAL on all its flavours.
Are you considering to make a refresh on the Tutorial as well ?
Or may be the Manual could embed the tutorial on it ?
Thanks for this new great endeavour.
I can foresee many things happening over this frontier.
Miguel
Miguel J. Palaoro • Porto Alegre • Brasil
[DataCAD user since V.4 • Languages: English & Português • Scale Type/Unit: Meter-ABNT]
I appreciate the investment of time to keep this alive.
The description of how to compile the sample macros needs to be updated. It still lists the directory structure starting at MTEC. (That hasn't been used since version 4) The whole structure listed is out of date. I would think this section should be updated to include a description of how to create path statements to the compiler and how to compile a macro without the use of the go.bat files (or at least a description of what the go.bat is doing).
I may have missed it but, I saw very little mention of the include files. There should be more about what they do and how to use them.
Also the odd page headers in chapter 8 say "Viewing Database Management" carried over from chapter 7.
Hi Mark, I have come across a few errors in the DCAL manual over the years, but have not always made not of them. But here are a couple of things that need fixing (based on the manual that I downloaded as part of the DataCAD 18 evaluation program last year):
1.The manual still has the user fields (user0 thru user3) in the entity definition. I believe these fields were renamed over 20 years ago. The new names would imply that the fields are no longer available to the macro writer (although as far as I know this has never been stated).
2. The example code under disfrompolyvert (page 131) has invalid code for the polyvert_get call (it does not include the frst and last parameters).
A few more corrections that could be made to the DCAL manual if you update it again:
The definition of msg_dlg on page 213 is incorrect. It is missing a type for the msgDlgType parameter (should be integer)
In the Hatch sample program, several of the strings are missing one or both quotes (starting on page 180).
In the description of ExecAndWait (page214): - it says that visibility values are defined in show_wdw.inc, but I cannot find this file anywhere in my Datacad installation. - mention is made of an ExecProg function, but ExecProg is not documented anywhere that I can find (nor is it defined in any of the include files).
In the getmode example (p78-79) the code uses a variable named 'move' in the getmode call, but then uses a variable named 'mode' in the subsequent lines.
lyr_create (p117-118). Talks about the return value of 'lyr_clear'. It should be 'lyr_create'.
in the description of min & max parameters to mode_hatch (p166), it refers to ent_extents procedure. It should be ent_extent (without the s)
I have recently made significant updates to the copy of the DCAL Manual that I maintain. All known BUILTIN procedures are included (up to and including DataCAD 21 ... the version number where they were introduced is noted for each). I know there are some procedures missing - notably in the range 634 to 651 - but I have been unable to discover what these are.
You can download the updated manual from the page at .
Can we please get GetPenStyle () and GetPenSpacing ()?
This would allow us to store those current settings, have the DCAL macro draw whatever it needs to, then restore the user's current PenStyle and PenSpacing settings.
If there is another way to do that please let me know, I have a current situation to remedy so that the user's settings are restored after the macro is done.
Thank you!
Last edited by Joseph Baron on Thu Mar 14, 2019 8:39 am, edited 1 time in total.
DoQuickLayout tells DataCAD to default to plotting the Quick Layout rather than MSP
FUNCTION plotOpen10(PenWidth : integer; WinPaperSize : integer; PaperSizeX, PaperSizeY : integer; NumCopies : integer; PlotToFileName : str80; ErrorMessage : IN OUT str80) : boolean; BUILTIN 645;
PenWidth specifies the pen width in millimeters WinPaperSize is the index into the available paper sizes PaperSizeX/PaperSizeY specify the custom paper size in millimeters NumCopies is the number of copies PlotToFileName is the name of the plot file to create if plotting to file ErrorMessage is a string to receive any error message (i.e. the printer doesn't support the paper size specified in PaperSizeX/PaperSizeY
FUNCTION plotMode10(Mode : IN OUT mode_type; paperMin, paperMax, WindowMin, WindowMax, RotationCenter : point; RotationAngle : real; MaintainAspect : boolean; ErrorMessage : IN OUT str80) : boolean; BUILTIN 646;
Mode is what will be plotted PaperMin and PaperMax specifies the custom paper size in millimeters WindowMin and WindowMax specify the real-world coordinates of the viewport to be plotted RotationCenter is the real-world coordinate of the center of rotation if the printer is setup to rotate the print MaintainAspect should be set to True if no distortion of the X or Y axis is desired ErrorMessage is a string to receive any error message This function returns True if no errors were encountered
PROCEDURE plotClose10; BUILTIN 647;
This procedure should be called after calling plotMode10
FUNCTION setPenTableNameToLoad(PenTableName : str80); BUILTIN 648;
PenTableName Name of Pen Table This function returns True if successful
FUNCTION setPrinterByName(PrinterName : str80; ErrorMessage : IN OUT str80); BUILTIN 649;
PrinterName Name of printer ErrorMessage is a string to receive any error message This function returns True if successful
PROCEDURE GetPrinterNames(PrinterNamesArrary : IN OUT; TPrinterNamesArr; NumPrinters : IN OUT integer) BUILTIN 650;
PrinterNamesArrary will contain the names of the printers available to the system. The type TPrinterNamesArr is declared as:
type TPrinterNamesArr = ARRAY[1..50] of string[80];