2018-07-04 18:19:45 +00:00
|
|
|
/****************************************************************************
|
|
|
|
** Copyright (C) 2001-2013 RibbonSoft, GmbH. All rights reserved.
|
|
|
|
** Copyright (C) 2001 Robert J. Campbell Jr.
|
|
|
|
**
|
|
|
|
** This file is part of the dxflib project.
|
|
|
|
**
|
|
|
|
** This file is free software; you can redistribute it and/or modify
|
|
|
|
** it under the terms of the GNU General Public License as published by
|
|
|
|
** the Free Software Foundation; either version 2 of the License, or
|
|
|
|
** (at your option) any later version.
|
|
|
|
**
|
|
|
|
** Licensees holding valid dxflib Professional Edition licenses may use
|
|
|
|
** this file in accordance with the dxflib Commercial License
|
|
|
|
** Agreement provided with the Software.
|
|
|
|
**
|
|
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**
|
|
|
|
** See http://www.ribbonsoft.com for further details.
|
|
|
|
**
|
|
|
|
** Contact info@ribbonsoft.com if any conditions of this licensing are
|
|
|
|
** not clear to you.
|
|
|
|
**
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Defines common DXF codes and constants.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef DXF_CODES_H
|
|
|
|
#define DXF_CODES_H
|
|
|
|
|
|
|
|
#include "dl_global.h"
|
|
|
|
|
|
|
|
#if defined(__OS2__)||defined(__EMX__)
|
|
|
|
#define strcasecmp( s, t ) stricmp( s, t )
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(_WIN32)
|
2018-07-28 08:31:04 +00:00
|
|
|
#ifndef strcasecmp // on mingw, strcasecmp is defined
|
2018-07-04 18:19:45 +00:00
|
|
|
#define strcasecmp( s, t ) stricmp( s, t )
|
|
|
|
#endif
|
2018-07-28 08:31:04 +00:00
|
|
|
#endif
|
2018-07-04 18:19:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
#undef M_PI
|
|
|
|
#define M_PI 3.14159265358979323846
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef M_PI
|
|
|
|
#define M_PI 3.1415926535897932384626433832795
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define DL_DXF_MAXLINE 1024
|
|
|
|
#define DL_DXF_MAXGROUPCODE 1100
|
|
|
|
|
|
|
|
// used to mark invalid vectors:
|
|
|
|
// #define DL_DXF_MAXDOUBLE 1.0E+10
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Codes for colors and DXF versions.
|
|
|
|
*/
|
|
|
|
class DXFLIB_EXPORT DL_Codes
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Standard DXF colors.
|
|
|
|
*/
|
|
|
|
enum color
|
|
|
|
{
|
|
|
|
black = 250,
|
|
|
|
green = 3,
|
|
|
|
red = 1,
|
|
|
|
brown = 15,
|
|
|
|
yellow = 2,
|
|
|
|
cyan = 4,
|
|
|
|
magenta = 6,
|
|
|
|
gray = 8,
|
|
|
|
blue = 5,
|
|
|
|
l_blue = 163,
|
|
|
|
l_green = 121,
|
|
|
|
l_cyan = 131,
|
|
|
|
l_red = 23,
|
|
|
|
l_magenta = 221,
|
|
|
|
l_gray = 252,
|
|
|
|
white = 7,
|
|
|
|
bylayer = 256,
|
|
|
|
byblock = 0
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Version numbers for the DXF Format.
|
|
|
|
*/
|
|
|
|
enum version
|
|
|
|
{
|
|
|
|
AC1009_MIN, // R12, minimalistic
|
|
|
|
AC1009, // R12
|
|
|
|
AC1012,
|
|
|
|
AC1014,
|
|
|
|
AC1015 // R2000
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Extended color palette:
|
|
|
|
// The first entry is only for direct indexing starting with [1]
|
|
|
|
// Color 1 is red (1,0,0)
|
|
|
|
const double dxfColors[][3] =
|
|
|
|
{
|
|
|
|
{ 0, 0, 0 }, // unused
|
|
|
|
{ 1, 0, 0 }, // 1
|
|
|
|
{ 1, 1, 0 },
|
|
|
|
{ 0, 1, 0 },
|
|
|
|
{ 0, 1, 1 },
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
{ 1, 1, 1 }, // black or white
|
|
|
|
{ 0.5, 0.5, 0.5 },
|
|
|
|
{ 0.75, 0.75, 0.75 },
|
|
|
|
{ 1, 0, 0 }, // 10
|
|
|
|
{ 1, 0.5, 0.5 },
|
|
|
|
{ 0.65, 0, 0 },
|
|
|
|
{ 0.65, 0.325, 0.325 },
|
|
|
|
{ 0.5, 0, 0 },
|
|
|
|
{ 0.5, 0.25, 0.25 },
|
|
|
|
{ 0.3, 0, 0 },
|
|
|
|
{ 0.3, 0.15, 0.15 },
|
|
|
|
{ 0.15, 0, 0 },
|
|
|
|
{ 0.15, 0.075, 0.075 },
|
|
|
|
{ 1, 0.25, 0 }, // 20
|
|
|
|
{ 1, 0.625, 0.5 },
|
|
|
|
{ 0.65, 0.1625, 0 },
|
|
|
|
{ 0.65, 0.4063, 0.325 },
|
|
|
|
{ 0.5, 0.125, 0 },
|
|
|
|
{ 0.5, 0.3125, 0.25 },
|
|
|
|
{ 0.3, 0.075, 0 },
|
|
|
|
{ 0.3, 0.1875, 0.15 },
|
|
|
|
{ 0.15, 0.0375, 0 },
|
|
|
|
{ 0.15, 0.0938, 0.075 },
|
|
|
|
{ 1, 0.5, 0 }, // 30
|
|
|
|
{ 1, 0.75, 0.5 },
|
|
|
|
{ 0.65, 0.325, 0 },
|
|
|
|
{ 0.65, 0.4875, 0.325 },
|
|
|
|
{ 0.5, 0.25, 0 },
|
|
|
|
{ 0.5, 0.375, 0.25 },
|
|
|
|
{ 0.3, 0.15, 0 },
|
|
|
|
{ 0.3, 0.225, 0.15 },
|
|
|
|
{ 0.15, 0.075, 0 },
|
|
|
|
{ 0.15, 0.1125, 0.075 },
|
|
|
|
{ 1, 0.75, 0 }, // 40
|
|
|
|
{ 1, 0.875, 0.5 },
|
|
|
|
{ 0.65, 0.4875, 0 },
|
|
|
|
{ 0.65, 0.5688, 0.325 },
|
|
|
|
{ 0.5, 0.375, 0 },
|
|
|
|
{ 0.5, 0.4375, 0.25 },
|
|
|
|
{ 0.3, 0.225, 0 },
|
|
|
|
{ 0.3, 0.2625, 0.15 },
|
|
|
|
{ 0.15, 0.1125, 0 },
|
|
|
|
{ 0.15, 0.1313, 0.075 },
|
|
|
|
{ 1, 1, 0 }, // 50
|
|
|
|
{ 1, 1, 0.5 },
|
|
|
|
{ 0.65, 0.65, 0 },
|
|
|
|
{ 0.65, 0.65, 0.325 },
|
|
|
|
{ 0.5, 0.5, 0 },
|
|
|
|
{ 0.5, 0.5, 0.25 },
|
|
|
|
{ 0.3, 0.3, 0 },
|
|
|
|
{ 0.3, 0.3, 0.15 },
|
|
|
|
{ 0.15, 0.15, 0 },
|
|
|
|
{ 0.15, 0.15, 0.075 },
|
|
|
|
{ 0.75, 1, 0 }, // 60
|
|
|
|
{ 0.875, 1, 0.5 },
|
|
|
|
{ 0.4875, 0.65, 0 },
|
|
|
|
{ 0.5688, 0.65, 0.325 },
|
|
|
|
{ 0.375, 0.5, 0 },
|
|
|
|
{ 0.4375, 0.5, 0.25 },
|
|
|
|
{ 0.225, 0.3, 0 },
|
|
|
|
{ 0.2625, 0.3, 0.15 },
|
|
|
|
{ 0.1125, 0.15, 0 },
|
|
|
|
{ 0.1313, 0.15, 0.075 },
|
|
|
|
{ 0.5, 1, 0 }, // 70
|
|
|
|
{ 0.75, 1, 0.5 },
|
|
|
|
{ 0.325, 0.65, 0 },
|
|
|
|
{ 0.4875, 0.65, 0.325 },
|
|
|
|
{ 0.25, 0.5, 0 },
|
|
|
|
{ 0.375, 0.5, 0.25 },
|
|
|
|
{ 0.15, 0.3, 0 },
|
|
|
|
{ 0.225, 0.3, 0.15 },
|
|
|
|
{ 0.075, 0.15, 0 },
|
|
|
|
{ 0.1125, 0.15, 0.075 },
|
|
|
|
{ 0.25, 1, 0 }, // 80
|
|
|
|
{ 0.625, 1, 0.5 },
|
|
|
|
{ 0.1625, 0.65, 0 },
|
|
|
|
{ 0.4063, 0.65, 0.325 },
|
|
|
|
{ 0.125, 0.5, 0 },
|
|
|
|
{ 0.3125, 0.5, 0.25 },
|
|
|
|
{ 0.075, 0.3, 0 },
|
|
|
|
{ 0.1875, 0.3, 0.15 },
|
|
|
|
{ 0.0375, 0.15, 0 },
|
|
|
|
{ 0.0938, 0.15, 0.075 },
|
|
|
|
{ 0, 1, 0 }, // 90
|
|
|
|
{ 0.5, 1, 0.5 },
|
|
|
|
{ 0, 0.65, 0 },
|
|
|
|
{ 0.325, 0.65, 0.325 },
|
|
|
|
{ 0, 0.5, 0 },
|
|
|
|
{ 0.25, 0.5, 0.25 },
|
|
|
|
{ 0, 0.3, 0 },
|
|
|
|
{ 0.15, 0.3, 0.15 },
|
|
|
|
{ 0, 0.15, 0 },
|
|
|
|
{ 0.075, 0.15, 0.075 },
|
|
|
|
{ 0, 1, 0.25 }, // 100
|
|
|
|
{ 0.5, 1, 0.625 },
|
|
|
|
{ 0, 0.65, 0.1625 },
|
|
|
|
{ 0.325, 0.65, 0.4063 },
|
|
|
|
{ 0, 0.5, 0.125 },
|
|
|
|
{ 0.25, 0.5, 0.3125 },
|
|
|
|
{ 0, 0.3, 0.075 },
|
|
|
|
{ 0.15, 0.3, 0.1875 },
|
|
|
|
{ 0, 0.15, 0.0375 },
|
|
|
|
{ 0.075, 0.15, 0.0938 },
|
|
|
|
{ 0, 1, 0.5 }, // 110
|
|
|
|
{ 0.5, 1, 0.75 },
|
|
|
|
{ 0, 0.65, 0.325 },
|
|
|
|
{ 0.325, 0.65, 0.4875 },
|
|
|
|
{ 0, 0.5, 0.25 },
|
|
|
|
{ 0.25, 0.5, 0.375 },
|
|
|
|
{ 0, 0.3, 0.15 },
|
|
|
|
{ 0.15, 0.3, 0.225 },
|
|
|
|
{ 0, 0.15, 0.075 },
|
|
|
|
{ 0.075, 0.15, 0.1125 },
|
|
|
|
{ 0, 1, 0.75 }, // 120
|
|
|
|
{ 0.5, 1, 0.875 },
|
|
|
|
{ 0, 0.65, 0.4875 },
|
|
|
|
{ 0.325, 0.65, 0.5688 },
|
|
|
|
{ 0, 0.5, 0.375 },
|
|
|
|
{ 0.25, 0.5, 0.4375 },
|
|
|
|
{ 0, 0.3, 0.225 },
|
|
|
|
{ 0.15, 0.3, 0.2625 },
|
|
|
|
{ 0, 0.15, 0.1125 },
|
|
|
|
{ 0.075, 0.15, 0.1313 },
|
|
|
|
{ 0, 1, 1 }, // 130
|
|
|
|
{ 0.5, 1, 1 },
|
|
|
|
{ 0, 0.65, 0.65 },
|
|
|
|
{ 0.325, 0.65, 0.65 },
|
|
|
|
{ 0, 0.5, 0.5 },
|
|
|
|
{ 0.25, 0.5, 0.5 },
|
|
|
|
{ 0, 0.3, 0.3 },
|
|
|
|
{ 0.15, 0.3, 0.3 },
|
|
|
|
{ 0, 0.15, 0.15 },
|
|
|
|
{ 0.075, 0.15, 0.15 },
|
|
|
|
{ 0, 0.75, 1 }, // 140
|
|
|
|
{ 0.5, 0.875, 1 },
|
|
|
|
{ 0, 0.4875, 0.65 },
|
|
|
|
{ 0.325, 0.5688, 0.65 },
|
|
|
|
{ 0, 0.375, 0.5 },
|
|
|
|
{ 0.25, 0.4375, 0.5 },
|
|
|
|
{ 0, 0.225, 0.3 },
|
|
|
|
{ 0.15, 0.2625, 0.3 },
|
|
|
|
{ 0, 0.1125, 0.15 },
|
|
|
|
{ 0.075, 0.1313, 0.15 },
|
|
|
|
{ 0, 0.5, 1 }, // 150
|
|
|
|
{ 0.5, 0.75, 1 },
|
|
|
|
{ 0, 0.325, 0.65 },
|
|
|
|
{ 0.325, 0.4875, 0.65 },
|
|
|
|
{ 0, 0.25, 0.5 },
|
|
|
|
{ 0.25, 0.375, 0.5 },
|
|
|
|
{ 0, 0.15, 0.3 },
|
|
|
|
{ 0.15, 0.225, 0.3 },
|
|
|
|
{ 0, 0.075, 0.15 },
|
|
|
|
{ 0.075, 0.1125, 0.15 },
|
|
|
|
{ 0, 0.25, 1 }, // 160
|
|
|
|
{ 0.5, 0.625, 1 },
|
|
|
|
{ 0, 0.1625, 0.65 },
|
|
|
|
{ 0.325, 0.4063, 0.65 },
|
|
|
|
{ 0, 0.125, 0.5 },
|
|
|
|
{ 0.25, 0.3125, 0.5 },
|
|
|
|
{ 0, 0.075, 0.3 },
|
|
|
|
{ 0.15, 0.1875, 0.3 },
|
|
|
|
{ 0, 0.0375, 0.15 },
|
|
|
|
{ 0.075, 0.0938, 0.15 },
|
|
|
|
{ 0, 0, 1 }, // 170
|
|
|
|
{ 0.5, 0.5, 1 },
|
|
|
|
{ 0, 0, 0.65 },
|
|
|
|
{ 0.325, 0.325, 0.65 },
|
|
|
|
{ 0, 0, 0.5 },
|
|
|
|
{ 0.25, 0.25, 0.5 },
|
|
|
|
{ 0, 0, 0.3 },
|
|
|
|
{ 0.15, 0.15, 0.3 },
|
|
|
|
{ 0, 0, 0.15 },
|
|
|
|
{ 0.075, 0.075, 0.15 },
|
|
|
|
{ 0.25, 0, 1 }, // 180
|
|
|
|
{ 0.625, 0.5, 1 },
|
|
|
|
{ 0.1625, 0, 0.65 },
|
|
|
|
{ 0.4063, 0.325, 0.65 },
|
|
|
|
{ 0.125, 0, 0.5 },
|
|
|
|
{ 0.3125, 0.25, 0.5 },
|
|
|
|
{ 0.075, 0, 0.3 },
|
|
|
|
{ 0.1875, 0.15, 0.3 },
|
|
|
|
{ 0.0375, 0, 0.15 },
|
|
|
|
{ 0.0938, 0.075, 0.15 },
|
|
|
|
{ 0.5, 0, 1 }, // 190
|
|
|
|
{ 0.75, 0.5, 1 },
|
|
|
|
{ 0.325, 0, 0.65 },
|
|
|
|
{ 0.4875, 0.325, 0.65 },
|
|
|
|
{ 0.25, 0, 0.5 },
|
|
|
|
{ 0.375, 0.25, 0.5 },
|
|
|
|
{ 0.15, 0, 0.3 },
|
|
|
|
{ 0.225, 0.15, 0.3 },
|
|
|
|
{ 0.075, 0, 0.15 },
|
|
|
|
{ 0.1125, 0.075, 0.15 },
|
|
|
|
{ 0.75, 0, 1 }, // 200
|
|
|
|
{ 0.875, 0.5, 1 },
|
|
|
|
{ 0.4875, 0, 0.65 },
|
|
|
|
{ 0.5688, 0.325, 0.65 },
|
|
|
|
{ 0.375, 0, 0.5 },
|
|
|
|
{ 0.4375, 0.25, 0.5 },
|
|
|
|
{ 0.225, 0, 0.3 },
|
|
|
|
{ 0.2625, 0.15, 0.3 },
|
|
|
|
{ 0.1125, 0, 0.15 },
|
|
|
|
{ 0.1313, 0.075, 0.15 },
|
|
|
|
{ 1, 0, 1 }, // 210
|
|
|
|
{ 1, 0.5, 1 },
|
|
|
|
{ 0.65, 0, 0.65 },
|
|
|
|
{ 0.65, 0.325, 0.65 },
|
|
|
|
{ 0.5, 0, 0.5 },
|
|
|
|
{ 0.5, 0.25, 0.5 },
|
|
|
|
{ 0.3, 0, 0.3 },
|
|
|
|
{ 0.3, 0.15, 0.3 },
|
|
|
|
{ 0.15, 0, 0.15 },
|
|
|
|
{ 0.15, 0.075, 0.15 },
|
|
|
|
{ 1, 0, 0.75 }, // 220
|
|
|
|
{ 1, 0.5, 0.875 },
|
|
|
|
{ 0.65, 0, 0.4875 },
|
|
|
|
{ 0.65, 0.325, 0.5688 },
|
|
|
|
{ 0.5, 0, 0.375 },
|
|
|
|
{ 0.5, 0.25, 0.4375 },
|
|
|
|
{ 0.3, 0, 0.225 },
|
|
|
|
{ 0.3, 0.15, 0.2625 },
|
|
|
|
{ 0.15, 0, 0.1125 },
|
|
|
|
{ 0.15, 0.075, 0.1313 },
|
|
|
|
{ 1, 0, 0.5 }, // 230
|
|
|
|
{ 1, 0.5, 0.75 },
|
|
|
|
{ 0.65, 0, 0.325 },
|
|
|
|
{ 0.65, 0.325, 0.4875 },
|
|
|
|
{ 0.5, 0, 0.25 },
|
|
|
|
{ 0.5, 0.25, 0.375 },
|
|
|
|
{ 0.3, 0, 0.15 },
|
|
|
|
{ 0.3, 0.15, 0.225 },
|
|
|
|
{ 0.15, 0, 0.075 },
|
|
|
|
{ 0.15, 0.075, 0.1125 },
|
|
|
|
{ 1, 0, 0.25 }, // 240
|
|
|
|
{ 1, 0.5, 0.625 },
|
|
|
|
{ 0.65, 0, 0.1625 },
|
|
|
|
{ 0.65, 0.325, 0.4063 },
|
|
|
|
{ 0.5, 0, 0.125 },
|
|
|
|
{ 0.5, 0.25, 0.3125 },
|
|
|
|
{ 0.3, 0, 0.075 },
|
|
|
|
{ 0.3, 0.15, 0.1875 },
|
|
|
|
{ 0.15, 0, 0.0375 },
|
|
|
|
{ 0.15, 0.075, 0.0938 },
|
|
|
|
{ 0.33, 0.33, 0.33 }, // 250
|
|
|
|
{ 0.464, 0.464, 0.464 },
|
|
|
|
{ 0.598, 0.598, 0.598 },
|
|
|
|
{ 0.732, 0.732, 0.732 },
|
|
|
|
{ 0.866, 0.866, 0.866 },
|
|
|
|
{ 1, 1, 1 } // 255
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
// AutoCAD VERSION aliases
|
|
|
|
#define DL_VERSION_R12 DL_Codes::AC1009
|
|
|
|
#define DL_VERSION_LT2 DL_Codes::AC1009
|
|
|
|
#define DL_VERSION_R13 DL_Codes::AC1012 // not supported yet
|
|
|
|
#define DL_VERSION_LT95 DL_Codes::AC1012 // not supported yet
|
|
|
|
#define DL_VERSION_R14 DL_Codes::AC1014 // not supported yet
|
|
|
|
#define DL_VERSION_LT97 DL_Codes::AC1014 // not supported yet
|
|
|
|
#define DL_VERSION_LT98 DL_Codes::AC1014 // not supported yet
|
|
|
|
#define DL_VERSION_2000 DL_Codes::AC1015
|
|
|
|
#define DL_VERSION_2002 DL_Codes::AC1015
|
|
|
|
|
|
|
|
|
|
|
|
// DXF Group Codes:
|
|
|
|
|
|
|
|
// Strings
|
|
|
|
#define DL_STRGRP_START 0
|
|
|
|
#define DL_STRGRP_END 9
|
|
|
|
|
|
|
|
// Coordinates
|
|
|
|
#define DL_CRDGRP_START 10
|
|
|
|
#define DL_CRDGRP_END 19
|
|
|
|
|
|
|
|
// Real values
|
|
|
|
#define DL_RLGRP_START 38
|
|
|
|
#define DL_RLGRP_END 59
|
|
|
|
|
|
|
|
// Short integer values
|
|
|
|
#define DL_SHOGRP_START 60
|
|
|
|
#define DL_SHOGRP_END 79
|
|
|
|
|
|
|
|
// New in Release 13,
|
|
|
|
#define DL_SUBCLASS 100
|
|
|
|
|
|
|
|
// More coordinates
|
|
|
|
#define DL_CRD2GRP_START 210
|
|
|
|
#define DL_CRD2GRP_END 239
|
|
|
|
|
|
|
|
// Extended data strings
|
|
|
|
#define DL_ESTRGRP_START 1000
|
|
|
|
#define DL_ESTRGRP_END 1009
|
|
|
|
|
|
|
|
// Extended data reals
|
|
|
|
#define DL_ERLGRP_START 1010
|
|
|
|
#define DL_ERLGRP_END 1059
|
|
|
|
|
|
|
|
|
|
|
|
#define DL_Y8_COORD_CODE 28
|
|
|
|
#define DL_Z0_COORD_CODE 30
|
|
|
|
#define DL_Z8_COORD_CODE 38
|
|
|
|
|
|
|
|
#define DL_POINT_COORD_CODE 10
|
|
|
|
#define DL_INSERT_COORD_CODE 10
|
|
|
|
|
|
|
|
#define DL_CRD2GRP_START 210
|
|
|
|
#define DL_CRD2GRP_END 239
|
|
|
|
|
|
|
|
#define DL_THICKNESS 39
|
|
|
|
#define DL_FIRST_REAL_CODE THICKNESS
|
|
|
|
#define DL_LAST_REAL_CODE 59
|
|
|
|
#define DL_FIRST_INT_CODE 60
|
|
|
|
#define DL_ATTFLAGS_CODE 70
|
|
|
|
#define DL_PLINE_FLAGS_CODE 70
|
|
|
|
#define DL_LAYER_FLAGS_CODE 70
|
|
|
|
#define DL_FLD_LEN_CODE 73 // Inside ATTRIB resbuf
|
|
|
|
#define DL_LAST_INT_CODE 79
|
|
|
|
#define DL_X_EXTRU_CODE 210
|
|
|
|
#define DL_Y_EXTRU_CODE 220
|
|
|
|
#define DL_Z_EXTRU_CODE 230
|
|
|
|
#define DL_COMMENT_CODE 999
|
|
|
|
|
|
|
|
// Start and endpoints of a line
|
|
|
|
#define DL_LINE_START_CODE 10 // Followed by x coord
|
|
|
|
#define DL_LINE_END_CODE 11 // Followed by x coord
|
|
|
|
|
|
|
|
// Some codes used by blocks
|
|
|
|
#define DL_BLOCK_FLAGS_CODE 70 // An int containing flags
|
|
|
|
#define DL_BLOCK_BASE_CODE 10 // Origin of block definition
|
|
|
|
#define DL_XREF_DEPENDENT 16 // If a block contains an XREF
|
|
|
|
#define DL_XREF_RESOLVED 32 // If a XREF resolved ok
|
|
|
|
#define DL_REFERENCED 64 // If a block is ref'd in DWG
|
|
|
|
|
|
|
|
#define DL_XSCALE_CODE 41
|
|
|
|
#define DL_YSCALE_CODE 42
|
|
|
|
#define DL_ANGLE_CODE 50
|
|
|
|
#define DL_INS_POINT_CODE 10 // Followed by x of ins pnt
|
|
|
|
#define DL_NAME2_CODE 3 // Second appearance of name
|
|
|
|
|
|
|
|
// Some codes used by circle entities
|
|
|
|
#define DL_CENTER_CODE 10 // Followed by x of center
|
|
|
|
#define DL_RADIUS_CODE 40 // Followd by radius of circle
|
|
|
|
|
|
|
|
#define DL_COND_OP_CODE -4 // Conditional op,ads_ssget
|
|
|
|
|
|
|
|
// When using ads_buildlist you MUST use RTDXF0 instead of these
|
|
|
|
#define DL_ENTITY_TYPE_CODE 0 // Then there is LINE, 3DFACE..
|
|
|
|
#define DL_SES_CODE 0 // Start End String Code
|
|
|
|
#define DL_FILE_SEP_CODE 0 // File separator
|
|
|
|
#define DL_SOT_CODE 0 // Start Of Table
|
|
|
|
#define DL_TEXTVAL_CODE 1
|
|
|
|
#define DL_NAME_CODE 2
|
|
|
|
#define DL_BLOCK_NAME_CODE 2
|
|
|
|
#define DL_SECTION_NAME_CODE 2
|
|
|
|
#define DL_ENT_HAND_CODE 5 // What follows is hexa string
|
|
|
|
#define DL_TXT_STYLE_CODE 7 // Inside attributes
|
|
|
|
#define DL_LAYER_NAME_CODE 8 // What follows is layer name
|
|
|
|
#define DL_FIRST_XCOORD_CODE 10 // Group code x of 1st coord
|
|
|
|
#define DL_FIRST_YCOORD_CODE 20 // Group code y of 1st coord
|
|
|
|
#define DL_FIRST_ZCOORD_CODE 30 // Group code z of 1st coord
|
|
|
|
#define DL_L_START_CODE 10
|
|
|
|
#define DL_L_END_CODE 11
|
|
|
|
#define DL_TXTHI_CODE 40
|
|
|
|
#define DL_SCALE_X_CODE 41
|
|
|
|
#define DL_SCALE_Y_CODE 42
|
|
|
|
#define DL_SCALE_Z_CODE 43
|
|
|
|
#define DL_BULGE_CODE 42 // Used in PLINE verts for arcs
|
|
|
|
#define DL_ROTATION_CODE 50
|
|
|
|
#define DL_COLOUR_CODE 62 // What follows is a color int
|
|
|
|
#define DL_LTYPE_CODE 6 // What follows is a linetype
|
|
|
|
|
|
|
|
|
|
|
|
// Attribute flags
|
|
|
|
#define DL_ATTS_FOLLOW_CODE 66
|
|
|
|
#define DL_ATT_TAG_CODE 2
|
|
|
|
#define DL_ATT_VAL_CODE 1
|
|
|
|
#define DL_ATT_FLAGS_CODE 70 // 4 1 bit flags as follows...
|
|
|
|
#define DL_ATT_INVIS_FLAG 1
|
|
|
|
#define DL_ATT_CONST_FLAG 2
|
|
|
|
#define DL_ATT_VERIFY_FLAG 4 // Prompt and verify
|
|
|
|
#define DL_ATT_PRESET_FLAG 8 // No prompt and no verify
|
|
|
|
|
|
|
|
// PLINE defines
|
|
|
|
// Flags
|
|
|
|
#define DL_OPEN_PLINE 0x00
|
|
|
|
#define DL_CLOSED_PLINE 0x01
|
|
|
|
#define DL_POLYLINE3D 0x80
|
|
|
|
#define DL_PFACE_MESH 0x40
|
|
|
|
#define DL_PGON_MESH 0x10
|
|
|
|
// Vertices follow entity, required in POLYLINES
|
|
|
|
#define DL_VERTS_FOLLOW_CODE 66 // Value should always be 1
|
|
|
|
#define DL_VERTEX_COORD_CODE 10
|
|
|
|
|
|
|
|
|
|
|
|
// LAYER flags
|
|
|
|
#define DL_FROZEN 1
|
|
|
|
#define DL_FROZEN_BY_DEF 2
|
|
|
|
#define DL_LOCKED 4
|
|
|
|
#define DL_OBJECT_USED 64 // Object is ref'd in the dwg
|
|
|
|
|
|
|
|
#define DL_BLOCK_EN_CODE -2 // Block entity definition
|
|
|
|
#define DL_E_NAME -1 // Entity name
|
|
|
|
|
|
|
|
// Extended data codes
|
|
|
|
#define DL_EXTD_SENTINEL (-3)
|
|
|
|
#define DL_EXTD_STR 1000
|
|
|
|
#define DL_EXTD_APP_NAME 1001
|
|
|
|
#define DL_EXTD_CTL_STR 1002
|
|
|
|
#define DL_EXTD_LYR_STR 1003
|
|
|
|
#define DL_EXTD_CHUNK 1004
|
|
|
|
#define DL_EXTD_HANDLE 1005
|
|
|
|
#define DL_EXTD_POINT 1010
|
|
|
|
#define DL_EXTD_POS 1011
|
|
|
|
#define DL_EXTD_DISP 1012
|
|
|
|
#define DL_EXTD_DIR 1013
|
|
|
|
#define DL_EXTD_FLOAT 1040
|
|
|
|
#define DL_EXTD_DIST 1041
|
|
|
|
#define DL_EXTD_SCALE 1042
|
|
|
|
#define DL_EXTD_INT16 1070
|
|
|
|
#define DL_EXTD_INT32 1071
|
|
|
|
|
|
|
|
// UCS codes for use in ads_trans
|
|
|
|
#define DL_WCS_TRANS_CODE 0
|
|
|
|
#define DL_UCS_TRANS_CODE 1
|
|
|
|
#define DL_DCS_TRANS_CODE 2
|
|
|
|
#define DL_PCS_TRANS_CODE 3
|
|
|
|
|
|
|
|
#endif
|