KiCad PCB EDA Suite
Loading...
Searching...
No Matches
orcad_records.h File Reference
#include <cstdint>
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <utility>
#include <vector>
#include <wx/string.h>

Go to the source code of this file.

Classes

struct  ORCAD_POINT
 Integer point in OrCAD DBU. More...
 
struct  ORCAD_BBOX
 Axis-aligned box in OrCAD DBU; corner order as stored (not normalized). More...
 
struct  ORCAD_DISPLAY_PROP
 Display positions use symbol coordinates; rotFont combines the font index and quarter turns. More...
 
struct  ORCAD_ALIAS
 The owning wire defines the connection. More...
 
struct  ORCAD_WIRE
 The wire ID refers to the page net table. More...
 
struct  ORCAD_PIN_INST
 Pin positions are absolute page connection points. More...
 
struct  ORCAD_PLACED_INSTANCE
 The placed box includes displayed text. More...
 
struct  ORCAD_GRAPHIC_INST
 Free graphics use nested primitive coordinates. More...
 
struct  ORCAD_PRIMITIVE
 Primitive byte lengths can include or exclude the eight-byte size envelope. More...
 
struct  ORCAD_SYMBOL_PIN
 Pin coordinates use symbol space with Y down. More...
 
struct  ORCAD_SYMBOL_DEF
 The bounding box occupies the final eight bytes before the next prefix stop. More...
 
struct  ORCAD_DEVICE
 Device unit names omit the view suffix. More...
 
struct  ORCAD_PACKAGE
 
struct  ORCAD_BLOCK_PIN
 One interface pin of a hierarchical block, at its absolute page position. More...
 
struct  ORCAD_DRAWN_INSTANCE
 The inline LibraryPart defines the block interface; placed pin records supply absolute positions. More...
 
struct  ORCAD_BUS_ENTRY
 
struct  ORCAD_FONT
 Font indices are one-based; zero selects the default. More...
 
struct  ORCAD_PAGE_SETTINGS
 Dimensions use mils when isMetric is zero, otherwise micrometres. More...
 
struct  ORCAD_NET_GROUP
 
struct  ORCAD_LIBRARY_INFO
 
struct  ORCAD_RAW_PAGE
 Wire IDs refer to netmap, which supplies the source net names. More...
 
struct  ORCAD_OCC_SCOPE
 Each scope holds the references and child blocks for one instantiation path. More...
 
struct  ORCAD_OCC_BLOCK
 Repeated child folders have separate scopes and reference designators. More...
 
struct  ORCAD_DESIGN
 Child-folder pages are instantiated for each occurrence, with that occurrence's references. More...
 

Typedefs

using ORCAD_WARN_FN = std::function<void( const wxString& aMsg )>
 Coordinates use DBU with Y down.
 

Enumerations

enum  ORCAD_ST : int {
  ORCAD_ST_STH_IN_PAGES0 = 2 , ORCAD_ST_DSN_STREAM = 4 , ORCAD_ST_PART_CELL = 6 , ORCAD_ST_SCH_LIB = 9 ,
  ORCAD_ST_PAGE = 10 , ORCAD_ST_PART_INSTANCE = 11 , ORCAD_ST_DRAWN_INSTANCE = 12 , ORCAD_ST_PLACED_INSTANCE = 13 ,
  ORCAD_ST_T0X10 = 16 , ORCAD_ST_T0X11 = 17 , ORCAD_ST_WIRE_SCALAR = 20 , ORCAD_ST_WIRE_BUS = 21 ,
  ORCAD_ST_PORT = 23 , ORCAD_ST_LIBRARY_PART = 24 , ORCAD_ST_SYMBOL_PIN_SCALAR = 26 , ORCAD_ST_SYMBOL_PIN_BUS = 27 ,
  ORCAD_ST_BUS_ENTRY = 29 , ORCAD_ST_PACKAGE = 31 , ORCAD_ST_DEVICE = 32 , ORCAD_ST_GLOBAL_SYMBOL = 33 ,
  ORCAD_ST_PORT_SYMBOL = 34 , ORCAD_ST_OFFPAGE_SYMBOL = 35 , ORCAD_ST_GLOBAL = 37 , ORCAD_ST_OFFPAGE_CONNECTOR = 38 ,
  ORCAD_ST_SYMBOL_DISPLAY_PROP = 39 , ORCAD_ST_SYMBOL_VECTOR = 48 , ORCAD_ST_ALIAS = 49 , ORCAD_ST_T0X34 = 52 ,
  ORCAD_ST_T0X35 = 53 , ORCAD_ST_GRAPHIC_BOX_INST = 55 , ORCAD_ST_GRAPHIC_LINE_INST = 56 , ORCAD_ST_GRAPHIC_ARC_INST = 57 ,
  ORCAD_ST_GRAPHIC_ELLIPSE_INST = 58 , ORCAD_ST_GRAPHIC_POLYGON_INST = 59 , ORCAD_ST_GRAPHIC_POLYLINE_INST = 60 , ORCAD_ST_GRAPHIC_COMMENT_TEXT_INST = 61 ,
  ORCAD_ST_GRAPHIC_BITMAP_INST = 62 , ORCAD_ST_TITLEBLOCK_SYMBOL = 64 , ORCAD_ST_TITLEBLOCK = 65 , ORCAD_ST_HIERARCHY_LINK = 66 ,
  ORCAD_ST_ERC_SYMBOL = 75 , ORCAD_ST_BOOKMARK_SYMBOL = 76 , ORCAD_ST_ERC_OBJECT = 77 , ORCAD_ST_BOOKMARK_INST = 78 ,
  ORCAD_ST_GRAPHIC_BEZIER_INST = 88 , ORCAD_ST_GRAPHIC_OLE_INST = 89 , ORCAD_ST_PIN_SHAPE_SYMBOL = 98 , ORCAD_ST_NET_GROUP = 103
}
 
enum  ORCAD_PRIM : int {
  ORCAD_PRIM_RECT = 40 , ORCAD_PRIM_LINE = 41 , ORCAD_PRIM_ARC = 42 , ORCAD_PRIM_ELLIPSE = 43 ,
  ORCAD_PRIM_POLYGON = 44 , ORCAD_PRIM_POLYLINE = 45 , ORCAD_PRIM_COMMENT_TEXT = 46 , ORCAD_PRIM_BITMAP = 47 ,
  ORCAD_PRIM_SYMBOL_VECTOR = 48 , ORCAD_PRIM_BEZIER = 87 , ORCAD_PRIM_OLE_IMAGE = 90
}
 Primitive types appear as a doubled byte pair before each body. More...
 
enum class  ORCAD_PRIM_KIND {
  GROUP_PRIM , RECTANGLE , LINE , ARC ,
  ELLIPSE , POLYGON , POLYLINE , BEZIER ,
  TEXT , IMAGE
}
 Decoded primitive kind after parsing. More...
 
enum class  ORCAD_PORT_TYPE : int {
  INPUT_TYPE = 0 , BIDIRECTIONAL = 1 , OUTPUT = 2 , OPEN_COLLECTOR = 3 ,
  PASSIVE = 4 , TRI_STATE = 5 , OPEN_EMITTER = 6 , POWER_IN = 7
}
 Map unknown electrical type codes to PASSIVE. More...
 

Typedef Documentation

◆ ORCAD_WARN_FN

using ORCAD_WARN_FN = std::function<void( const wxString& aMsg )>

Coordinates use DBU with Y down.

Convert raw Windows-1252 strings with FromOrcadString. Warning sink shared by all parser entry points (recoverable-issue channel).

Definition at line 40 of file orcad_records.h.

Enumeration Type Documentation

◆ ORCAD_PORT_TYPE

enum class ORCAD_PORT_TYPE : int
strong

Map unknown electrical type codes to PASSIVE.

Enumerator
INPUT_TYPE 
BIDIRECTIONAL 
OUTPUT 
OPEN_COLLECTOR 
PASSIVE 
TRI_STATE 
OPEN_EMITTER 
POWER_IN 

Definition at line 130 of file orcad_records.h.

◆ ORCAD_PRIM

enum ORCAD_PRIM : int

Primitive types appear as a doubled byte pair before each body.

Enumerator
ORCAD_PRIM_RECT 
ORCAD_PRIM_LINE 
ORCAD_PRIM_ARC 
ORCAD_PRIM_ELLIPSE 
ORCAD_PRIM_POLYGON 
ORCAD_PRIM_POLYLINE 
ORCAD_PRIM_COMMENT_TEXT 
ORCAD_PRIM_BITMAP 

plain DIB (BITMAPINFOHEADER + pixels)

ORCAD_PRIM_SYMBOL_VECTOR 

nested prefix-framed vector graphic

ORCAD_PRIM_BEZIER 
ORCAD_PRIM_OLE_IMAGE 

OLE compound document embed.

Definition at line 97 of file orcad_records.h.

◆ ORCAD_PRIM_KIND

enum class ORCAD_PRIM_KIND
strong

Decoded primitive kind after parsing.

Enumerator
GROUP_PRIM 
RECTANGLE 
LINE 
ARC 
ELLIPSE 
POLYGON 
POLYLINE 
BEZIER 
TEXT 
IMAGE 

Definition at line 114 of file orcad_records.h.

◆ ORCAD_ST

enum ORCAD_ST : int
Enumerator
ORCAD_ST_STH_IN_PAGES0 

nested symbol body inside Graphic*Inst

ORCAD_ST_DSN_STREAM 
ORCAD_ST_PART_CELL 
ORCAD_ST_SCH_LIB 
ORCAD_ST_PAGE 
ORCAD_ST_PART_INSTANCE 
ORCAD_ST_DRAWN_INSTANCE 

hierarchical block instance

ORCAD_ST_PLACED_INSTANCE 
ORCAD_ST_T0X10 

scalar pin instance (absolute pos)

ORCAD_ST_T0X11 

bus pin instance (absolute pos)

ORCAD_ST_WIRE_SCALAR 
ORCAD_ST_WIRE_BUS 
ORCAD_ST_PORT 
ORCAD_ST_LIBRARY_PART 
ORCAD_ST_SYMBOL_PIN_SCALAR 
ORCAD_ST_SYMBOL_PIN_BUS 
ORCAD_ST_BUS_ENTRY 
ORCAD_ST_PACKAGE 
ORCAD_ST_DEVICE 
ORCAD_ST_GLOBAL_SYMBOL 

power symbol definition

ORCAD_ST_PORT_SYMBOL 
ORCAD_ST_OFFPAGE_SYMBOL 
ORCAD_ST_GLOBAL 

placed power symbol

ORCAD_ST_OFFPAGE_CONNECTOR 
ORCAD_ST_SYMBOL_DISPLAY_PROP 
ORCAD_ST_SYMBOL_VECTOR 
ORCAD_ST_ALIAS 

net alias attached to a wire

ORCAD_ST_T0X34 

raw record, not prefix-framed

ORCAD_ST_T0X35 

raw record, not prefix-framed

ORCAD_ST_GRAPHIC_BOX_INST 
ORCAD_ST_GRAPHIC_LINE_INST 
ORCAD_ST_GRAPHIC_ARC_INST 
ORCAD_ST_GRAPHIC_ELLIPSE_INST 
ORCAD_ST_GRAPHIC_POLYGON_INST 
ORCAD_ST_GRAPHIC_POLYLINE_INST 
ORCAD_ST_GRAPHIC_COMMENT_TEXT_INST 
ORCAD_ST_GRAPHIC_BITMAP_INST 
ORCAD_ST_TITLEBLOCK_SYMBOL 
ORCAD_ST_TITLEBLOCK 
ORCAD_ST_HIERARCHY_LINK 

block dbId -> child folder link

ORCAD_ST_ERC_SYMBOL 
ORCAD_ST_BOOKMARK_SYMBOL 
ORCAD_ST_ERC_OBJECT 

saved design-rule-check marker

ORCAD_ST_BOOKMARK_INST 
ORCAD_ST_GRAPHIC_BEZIER_INST 
ORCAD_ST_GRAPHIC_OLE_INST 
ORCAD_ST_PIN_SHAPE_SYMBOL 
ORCAD_ST_NET_GROUP 

Definition at line 43 of file orcad_records.h.