Coders and programmers page HGB^

I program CiDess with Visual Basic 5. In this page I give you some source files, and I describe file formats used by CiDess to record data.

The GIF saving procedures uses source code written by Arkadiy Olovyannikov (ark@fesma.ru).

LNG editor source code
CiDess file formats
        *.CID files
        *.CID V2 files
        *.CID V3 files
        *.CIT files
        CiDess.DAT file
        CiDess.DIP file
        CiDess.LND file
        CiDess.LND V2 file
        CiDess.LND V3 file
        CiDess.LND V4 file
        CiDess.WSP file
        *.BMP.TXT files (depreciated)
        *.MAC files (depreciated)
        *.OUT files (depreciated)
        *CiDess.USI file (depreciated)
3D view utility source code

 LNG editor source code HGB<>^

The software that I created to translate CiDess allows you to add easily a multilanguage facility to an existing VB project.

There are two versions of the LNG editor:
- a complete version for programmers
- a simple version for translators

Complete version allows you to implement the multilanguage function to your program.

Single version (it's the version available in the translators page), allows translators, even if they don't have programming skills, to translate a software.

Clic here to download the LNG editor source code and executable files (last update: 06/11/2017).

Unzip the file in any directory of your choice; all the explanations are in _LisezMoi.html and _ReadMe.html files.

 CiDess file formats HGB<>^

! I give you this information to allow you reading and writing CiDess files in your own applications.
Do not try to modify CiDess files with a text editor. It can cause CiDess malfunction. If one of your file is corrupted, do not try to repair it by yourself but download it.
I suggest you create a second installation of CiDess for your experiments.

        *.CID file format
        *.CID V2 file format
        *.CID V3 file format
        *.CIT file format
        CiDess.DAT file
        CiDess.DIP file
        CiDess.LND file
        CiDess.LND V2 file
        CiDess.LND V3 file
        CiDess.LND V4 file
        CiDess.WSP file
        *.BMP.TXT file format (depreciated)
        *.MAC files
        *.OUT files
        *CiDess.USI file

CID File format HGB<>^

This file format is used by old CiDess 1 and CiDess 2 ; it's also compatible with CiDess III, 4 and 4.25.

PCB are saved in *.CID file format.

CID file format:

Black text is constant string
Blue text is multiline string
Green text is formatted string
Red text is integer value

"CIDESS","CID",CID_Format_Version
Author_Length

Author
Mail_Length
Mail
Organisation_Length
Organisation
URL_Length
URL
Adress_Length
Adress
Project_Name_Length
Project_Name
Circuit_Name_Length
Circuit_Name
Date_Length
Date
Version_Length
Version
Nomenclature_Comments_Length
Nomenclature_Comments
PCB_Comments_Length
PCB_Comments
Realisation_Comments_Length
Realisation_Comments
Total_Size_X,Total_Size_Y
Left_Margin,Top_Margin,Right_Margin,Bottom_Margin
Number_of_Components
Component1_Category_FR,Component1_ID_FR
Component1_X1,Component1_Y1
Component1_X2,Component1_Y2
Component1_Angle
Component1_Side

Component1_Ref
Component1_Value

Component1_Pad_Coef
... Idem for each component ...
Number_Of_Tracks
Track1_Width
Track1_Side
Track1_Number_of_nodes
Track1_Node1_X
,Track1_Node1_Y
... Idem for each node ...
... Idem for each track ...



Some explanations:

Size in file corresponds to total size that is to say PCB size + margins.

French category and ID are used as data key. There is no problem with monolingual component types.

Component's side could take four different values. See the following picture:


Track's side could take only two values: 1 or 2. In the previous picture, a side 1 track will be black, a side 2 track light blue.

In a single side PCB, there are only 1, 2 or 4 sided components and all track are in side 1.

Normal component's position is defined by center coordinates X1,Y1 and the angle. X2,Y2 are not used and may be null.
Stretchable component's position is defined by each pad's coordinates, X1,Y1,X2,Y2. Angle is not used and may be null.
The coordinates are relative to the top left corner of the PCB (without margins). Y axis is oriented to the bottom of the screen.

A 1000 pad coefficient means a 100% size.

Units are in mil (1 mil = 0.001 inch = 0.0254 mm)

Let's see an example:



This file is made up of:
- a capacitor C1 with 150% pads
- a stretchable resistance R1
- a transistor T1 copper side mounted
- a SMD IC IC1 component side mounted
- a SMD IC IC2 copper side mounted
- a SMD IC IC3 with a 30° rotation angle
- a track side 1
- a track side 2

"CIDESS","CID",1
10
Rémy LUCAS
0

0

28
http://www.remylucas.fr
14
25000 Besançon
28
Projet exemples pour le site
22
Exemple de fichier CID
10
12/09/2005
3
1.1
101
Procurez vous les composants avant de réaliser la carte.

Vous aurez peut être à modifier le typon.
102
Commencez par les straps, ensuite les résistances, condensateurs, et terminez par les semiconducteurs.
39
Utilisez de préférence la photogravure.
2500,1500
300,200,400,250
6
"Condos radiaux","d500 e200"
600,500
0,0
0
1
"C1"
"220µf"
1500
"Resistances","h250 d90"
1050,500
1500,900
0
1
"R1"
"4,7K"
1000
"SOIC","DIL 10"
1850,550
0,0
0
3
"IC1"
""
1000
"SOIC","DIL 10"
1850,900
0,0
360
4
"IC2"
""
1000
"SOIC","DIL 10"
1050,950
0,0
30
3
"IC3"
""
1000
"Actifs 3 pins debouts","TO5"
600,1000
0,1400
0
2
"T1"
"2N1711"
1000
2
50
1
2
700,500
1050,500
30
2
3
1750,450
1100,450
1050,500


CID V2 File format HGB<>^

This file format is used by old CiDess III and 4 ; it's also compatible with CiDess 4.25.

PCB are saved in *.CID file format.

A CID V2 file is a CID V1 file following with extra data (due to new functions)

CID V2 file format:

Black text is constant string
Blue text is multiline string
Green text is formatted string
Red text is integer value
Violet text is boolean value

"CIDESS","CID",CID_Format_Version
Author_Length

Author
Mail_Length
Mail
Organisation_Length
Organisation
URL_Length
URL
Adress_Length
Adress
Project_Name_Length
Project_Name
Circuit_Name_Length
Circuit_Name
Date_Length
Date
Version_Length
Version
Nomenclature_Comments_Length
Nomenclature_Comments
PCB_Comments_Length
PCB_Comments
Realisation_Comments_Length
Realisation_Comments
Total_Size_X,Total_Size_Y
Left_Margin,Top_Margin,Right_Margin,Bottom_Margin
Number_of_Components
Component1_Category_FR,Component1_ID_FR
Component1_X1,Component1_Y1
Component1_X2,Component1_Y2
Component1_Angle
Component1_Side

Component1_Ref
Component1_Value

Component1_Pad_Coef
... Idem for each component ...
Number_Of_Tracks
Track1_Width
Track1_Side
Track1_Number_of_nodes
Track1_Node1_X
,Track1_Node1_Y
... Idem for each node ...
... Idem for each track ...
Number_of_CopperTexts
CopperText1_FontName
CopperText1_FontSize
CopperText1_FontBold
CopperText1_FontItalic
CopperText1_FontStrikethru
CopperText1_FontUnderline
CopperText1_FTransparent

CopperText1_X
CopperText1_Y
CopperText1_Angle
CopperText1_Face

CopperText1_Split
CopperText1_Text_Lenght
CopperText1_Text
CopperText1_Link
... idem for each CopperText ...
HTML_GeneralInfo_Chk_Projet
HTML_GeneralInfo_Chk_Carte
HTML_GeneralInfo_Chk_Date
HTML_GeneralInfo_Chk_Version
HTML_GeneralInfo_Chk_Auteur
HTML_GeneralInfo_Chk_Organisation
HTML_GeneralInfo_Chk_Coordonnees
HTML_GeneralInfo_Chk_Mail
HTML_GeneralInfo_Chk_www
HTML_Chk_Schematic
HTML_Schematic_Chk_PreviewPict

HTML_Schematic_PreviewFileName
HTML_Schematic_Chk_Pict
HTML_Schematic_PictFileName
HTML_Schematic_NoComment
HTML_Schematic_CommentInFile
HTML_Schematic_TextComment

HTML_Schematic_CommentFileName
HTML_Schematic_CommentTextLenght
HTML_Schematic_CommentText
HTML_Chk_Layout
HTML_Layout_Chk_Comment
HTML_Layout_Chk_PreviewPict
HTML_Layout_Chk_Pict
HTML_Layout_ZoomPreview
HTML_Layout_ZoomPict
HTML_Layout_Rotation

HTML_Layout_NormalStyle
HTML_Layout_WYSIWYG

HTML_Layout_Chk_CU1
HTML_Layout_Chk_CU2
HTML_Layout_Chk_SOL
HTML_Layout_Chk_Grid
HTML_Layout_Chk_TXT
HTML_Layout_Chk_TxtRef
HTML_Layout_Chk_TxtVal
HTML_Layout_Chk_TxtWhiteBackground
HTML_Layout_TxtSize
HTML_Layout_Chk_PreviewOtherPict1

HTML_Layout_PreviewOtherPict1_FileName
HTML_Layout_OtherPict1
HTML_Layout_OtherPict1_FileName
HTML_Layout_PreviewOtherPict2
HTML_Layout_PreviewOtherPict2_FileName
HTML_Layout_OtherPict2
HTML_Layout_OtherPict2_FileName
HTML_Chk_ComponentList
HTML_ComponentList_Chk_List
HTML_ComponentList_Chk_Comment
HTML_Chk_PCB
HTML_PCB_Chk_Comment
HTML_PCB_Chk_Side1
HTML_PCB_Chk_Side2
HTML_PCB_Chk_Preview
HTML_PCB_Chk_Pict
HTML_PCB_ZoomPreview
HTML_PCB_ZoomPict
HTML_PCB_Rotation

HTML_PCB_Normal
HTML_PCB_Mirror

HTML_Typon_PadCoef
HTML_PCB_TrackCoef
HTML_PCB_Chk_SMDneverDrilled

HTML_PCB_NormalEtching
HTML_PCB_GroundPlaneEtching
HTML_PCB_WhiteLineEtching
HTML_PCB_CopperTextNormal
HTML_PCB_CopperTextNegative

HTML_PCBGroundplaneWidth
HTML_Chk_Download
HTML_Download_Chk_CID
HTML_Download_Chk_CIT
HTML_Download_Chk_OtherFile1

HTML_Download_OtherFile1_FilenName
HTML_Download_Chk_OtherFile2
HTML_Download_OtherFile2_FilenName
HTML_Download_Chk_Comment
HTML_Download_CommentLenght

HTML_Download_Comment
HTML_Root
HTML_Path

HTML_Chk_CreateSubFolder
ExtraString_Lenght
ExtraString


Some explanations:

Size in file corresponds to total size that is to say PCB size + margins.

French category and ID are used as data key. There is no problem with monolingual component types.

Component's side could take four different values. See the following picture:


Track's side could take only two values: 1 or 2. In the previous picture, a side 1 track will be black, a side 2 track light blue.

Copper text's side could take three values: 1 (CU1), 2 (CU2) and 3 (both CU1 and CU2). A copper text with side = 1 should be black on previous picture.

If Split = true, the text is mirrored; you can read a copper text on side CU1 on the other side through the PCB.

In a single side PCB, there are only 1, 2 or 4 sided components and all track and copper texts are in side 1.

Normal component's position is defined by center coordinates X1,Y1 and the angle. X2,Y2 are not used and may be null.
Stretchable component's position is defined by each pad's coordinates, X1,Y1,X2,Y2. Angle is not used et may be null.
The coordinates are relative to the top left corner of the PCB (without margins). Y axis is oriented to the bottom of the screen.

A 1000 pad coefficient means a 100% size.

Units are in mil (1 mil = 0.001 inch = 0.0254 mm)

Data that begin with "HTML_" are the backup of HTML documentation settings:

        - HTML_xxx_Chk_yyy save a yyy checkbox value (1 = checked, 0 = unchecked) of the xxx section

        - HTML_Chk_xxx equals "1" (checked) if the section xxx is selected by the user for HTML generation

        - One of the three parameters HTML_Schematic_NoComment, HTML_Schematic_CommentInFile or HTML_Schematic_TextComment must be true, the two other false

        - One of the two parameters HTML_PCB_Normal, HTML_PCB_Mirror must be true, the other false

        - One of the three parameters HTML_PCB_NormalEtching, HTML_PCB_GroundPlaneEtching or HTML_PCB_WhiteLineEtching must be true, the two other false

        - One of the two parameters HTML_PCB_CopperTextNormal, HTML_PCB_CopperTextNegative must be true, the other false

        - One of the two parameters HTML_Layout_NormalStyle, HTML_Layout_WYSIWYG must be true, the other false

        - Possible values for the parameters that corresponds to listindex or scrollbars value:

HTML_Layout_ZoomPreview
Value in CID fileSetting in CiDess
0x0.25
1x0.50
2x0.75
3x1
4x2
5x3
6x4
7x5
8x6
9x7
10x8
11x9
12x10

HTML_Layout_ZoomPict
Value in CID fileSetting in CiDess
0x1
1x2
2x3
3x4
4x5
5x6
6x7
7x8
8x9
9x10

HTML_Layout_TxtSize
Value in CID fileSetting in CiDess
04 points
15 points
26 points
37 points
48 points
59 points
610 points
711 points
812 points

HTML_Layout_Rotation
Value in CID fileSetting in CiDess
0
190°
2180°
3270°

HTML_PCB_ZoomPreview
Value in CID fileSetting in CiDess
0x0.254
1x0.5
2x0.75
3x1
4x2
5x3
6x4
7x5
8x6
9x7
10x8
11x9
12x10

HTML_PCB_ZoomPict
Value in CID fileSetting in CiDess
0x1
1x2
2x3
3x4
4x5
5x6
6x7
7x8
8x9
9x10

HTML_PCB_Rotation
Value in CID fileSetting in CiDess
0
190°
2180°
3270°

        - HTML_PCB_PadCoef is the pad width coefficient from 50 to 200 (100 means 100%)

        - HTML_PCB_TrackCoef is the track width coefficient from 50 to 200 (100 means 100%)

        - HTML_PCBGroundPlaneWidth should be between 10 and 50

        - According to the settings chosen, some parameters aren't used for HTML documentation, but a value can enter a value. Those data will be preserved and used when user chose appropriate settings.

The ExtraString data is not used by CiDess. It's read when you open a file, and record 'as is' when you save the file. I plan this data area for future CiDess' optional updates; so users doesn't have to update their version and CID files will worked correctly without data loss on CiDess III. Indeed, other software authors work with me to make their software compatible with CiDess. I'll fix some rule about the use of ExtraString; please contact me.

Let's see an example:



This file is made up of:
- a capacitor C1 with 150% pads
- a stretchable resistance R1
- a transistor T1 copper side mounted
- a SMD IC IC1 component side mounted
- a SMD IC IC2 copper side mounted
- a SMD IC IC3 with a 30° rotation angle
- a track side 1
- a track side 2
- a copper text side 1
- a copper text side 2

"CIDESS","CID",2
10
Rémy LUCAS
29
electroremy@electroremy.fr.st
0

28
http://www.electroremy.fr.st
14
25000 Besançon
28
Projet exemples pour le site
22
Exemple de fichier CID
10
01/04/2008
3
1.1
101
Procurez vous les composants avant de réaliser la carte.

Vous aurez peut être à modifier le typon.
102
Commencez par les straps, ensuite les résistances, condensateurs, et terminez par les semiconducteurs.
39
Utilisez de préférence la photogravure.
2900,1500
200,200,300,250
6
"Condos radiaux","d500 e200"
500,500
0,0
0
1
"C1"
"220µf"
1500
"SOIC","DIL 10"
1750,550
0,0
0
3
"IC1"
""
1000
"SOIC","DIL 10"
1750,900
0,0
360
4
"IC2"
""
1000
"SOIC","DIL 10"
950,950
0,0
30
3
"IC3"
""
1000
"Actifs 3 pins debouts","TO5"
500,1000
0,1400
0
2
"T1"
"2N1711"
1000
"Resistances","h250 d90"
1425,900
975,500
0
1
"R1"
"4,7K"
1000
2
50
1
2
600,500
950,500
30
2
3
1650,450
1000,450
950,500
2
"Arial"
15
#FALSE#
#FALSE#
#FALSE#
#FALSE#
#TRUE#
2150
350
15
1
#FALSE#
9
Texte CU1
8
"Arial"
18
#TRUE#
#FALSE#
#FALSE#
#TRUE#
#TRUE#
2200
850
135
2
#FALSE#
13
Texte CU2 Inv
8
1
1
1
1
1
1
1
1
1
0
1
""
1
""
#FALSE#
#FALSE#
#TRUE#
""
0

1
1
1
1
3
1
0
#TRUE#
#FALSE#
1
1
1
0
1
1
0
1
4
0
""
0
""
0
""
0
""
1
1
1
1
1
1
1
1
1
3
3
0
#TRUE#
#FALSE#
100
100
0
#TRUE#
#FALSE#
#FALSE#
#TRUE#
#FALSE#
20
1
1
1
0
""
0
""
0
0

""
""
1
0


CID V3 File format HGB<>^

This file format is used by CiDess 4.25.

PCB are saved in *.CID file format.

A CID V3 file is a CID V2 file with extra data (due to new functions)

CID V3 file format:

Black text is constant string
Blue text is multiline string
Green text is formatted string
Red text is integer value
Violet text is boolean value

"CIDESS","CID",CID_Format_Version
Author_Length

Author
Mail_Length
Mail
Organisation_Length
Organisation
URL_Length
URL
Adress_Length
Adress
Project_Name_Length
Project_Name
Circuit_Name_Length
Circuit_Name
Date_Length
Date
Version_Length
Version
Nomenclature_Comments_Length
Nomenclature_Comments
PCB_Comments_Length
PCB_Comments
Realisation_Comments_Length
Realisation_Comments
Total_Size_X,Total_Size_Y
Left_Margin,Top_Margin,Right_Margin,Bottom_Margin
Number_of_Components
Component1_Category_FR,Component1_ID_FR
Component1_X1,Component1_Y1
Component1_X2,Component1_Y2
Component1_Angle
Component1_Side

Component1_Ref
Component1_Value

Component1_Pad_Coef
Composant1_Number_of_Ground_Plane_Pads_CU1
Index_Ground_Plane_Pad_CU1
... Idem for each ground plane pad CU1 ...
Composant1_Number_of_Ground_Plane_Pads_CU2
Index_Ground_Plane_Pad_CU2
... Idem for each ground plane pad CU2 ...
... Idem for each component ...
Number_Of_Tracks
Track1_Width
Track1_Side
Track1_Number_of_nodes
Track1_Node1_X
,Track1_Node1_Y
... Idem for each node ...
Track1_Is_Ground_Plane
... Idem for each track ...
Number_of_CopperTexts
CopperText1_FontName
CopperText1_FontSize
CopperText1_FontBold
CopperText1_FontItalic
CopperText1_FontStrikethru
CopperText1_FontUnderline
CopperText1_FTransparent

CopperText1_X
CopperText1_Y
CopperText1_Angle
CopperText1_Face

CopperText1_Split
CopperText1_Text_Lenght
CopperText1_Text
CopperText1_Link
... idem for each CopperText ...
HTML_GeneralInfo_Chk_Projet
HTML_GeneralInfo_Chk_Carte
HTML_GeneralInfo_Chk_Date
HTML_GeneralInfo_Chk_Version
HTML_GeneralInfo_Chk_Auteur
HTML_GeneralInfo_Chk_Organisation
HTML_GeneralInfo_Chk_Coordonnees
HTML_GeneralInfo_Chk_Mail
HTML_GeneralInfo_Chk_www
HTML_Chk_Schematic
HTML_Schematic_Chk_PreviewPict

HTML_Schematic_PreviewFileName
HTML_Schematic_Chk_Pict
HTML_Schematic_PictFileName
HTML_Schematic_NoComment
HTML_Schematic_CommentInFile
HTML_Schematic_TextComment

HTML_Schematic_CommentFileName
HTML_Schematic_CommentTextLenght
HTML_Schematic_CommentText
HTML_Chk_Layout
HTML_Layout_Chk_Comment
HTML_Layout_Chk_PreviewPict
HTML_Layout_Chk_Pict
HTML_Layout_ZoomPreview
HTML_Layout_ZoomPict
HTML_Layout_Rotation

HTML_Layout_NormalStyle
HTML_Layout_WYSIWYG

HTML_Layout_Chk_CU1
HTML_Layout_Chk_CU2
HTML_Layout_Chk_SOL
HTML_Layout_Chk_Grid
HTML_Layout_Chk_TXT
HTML_Layout_Chk_TxtRef
HTML_Layout_Chk_TxtVal
HTML_Layout_Chk_TxtWhiteBackground
HTML_Layout_TxtSize
HTML_Layout_Chk_PreviewOtherPict1

HTML_Layout_PreviewOtherPict1_FileName
HTML_Layout_OtherPict1
HTML_Layout_OtherPict1_FileName
HTML_Layout_PreviewOtherPict2
HTML_Layout_PreviewOtherPict2_FileName
HTML_Layout_OtherPict2
HTML_Layout_OtherPict2_FileName
HTML_Chk_ComponentList
HTML_ComponentList_Chk_List
HTML_ComponentList_Chk_Comment
HTML_Chk_PCB
HTML_PCB_Chk_Comment
HTML_PCB_Chk_Side1
HTML_PCB_Chk_Side2
HTML_PCB_Chk_Preview
HTML_PCB_Chk_Pict
HTML_PCB_ZoomPreview
HTML_PCB_ZoomPict
HTML_PCB_Rotation

HTML_PCB_Normal
HTML_PCB_Mirror

HTML_Typon_PadCoef
HTML_PCB_TrackCoef
HTML_PCB_Chk_SMDneverDrilled

HTML_PCB_NormalEtching
HTML_PCB_GroundPlaneEtching
HTML_PCB_WhiteLineEtching
HTML_PCB_CopperTextNormal
HTML_PCB_CopperTextNegative

HTML_PCBGroundplaneWidth
HTML_Chk_Download
HTML_Download_Chk_CID
HTML_Download_Chk_CIT
HTML_Download_Chk_OtherFile1

HTML_Download_OtherFile1_FilenName
HTML_Download_Chk_OtherFile2
HTML_Download_OtherFile2_FilenName
HTML_Download_Chk_Comment
HTML_Download_CommentLenght

HTML_Download_Comment
HTML_Root
HTML_Path

HTML_Chk_CreateSubFolder
ExtraString_Lenght
ExtraString


Some explanations:

Size in file corresponds to total size that is to say PCB size + margins.

French category and ID are used as data key. There is no problem with monolingual component types.

Component's side could take four different values. See the following picture:


Track's side could take only two values: 1 or 2. In the previous picture, a side 1 track will be black, a side 2 track light blue.

CiDess 4.25 introduces the possibility of defining tracks merged with a possible ground plane. In this case , the track is shown with a specific color on screen, as the ground plane will be generated only when printing PCBs.

Some components’ pads can also be merged with a possible ground plane in layer CU1, with a possible ground plane in layer CU2, or with both. Also, specific colors are used in the screen for each case.
For each component, CID file contains:
- the number of pads merged with CU1 ground plane and then the list of the component type indexes of pads ;
- the number of pads merged with CU2 ground plane and then the list of the component type indexes of pads.

Since the version 4.25, if you modify a CIT file (user defined component type) and if your modifications change the order or the number of the pads of the component type, it can have an impact on the existing CID files if the corresponding components have merged pads with one or two ground planes.

Copper text's side could take three values: 1 (CU1), 2 (CU2) and 3 (both CU1 and CU2). A copper text with side = 1 should be black on previous picture.

If Split = true, the text is mirrored; you can read a copper text on side CU1 on the other side through the PCB.

In a single side PCB, there are only 1, 2 or 4 sided components and all track and copper texts are in side 1.

Normal component's position is defined by center coordinates X1,Y1 and the angle. X2,Y2 are not used and may be null.
Stretchable component's position is defined by each pad's coordinates, X1,Y1,X2,Y2. Angle is not used et may be null.
The coordinates are relative to the top left corner of the PCB (without margins). Y axis is oriented to the bottom of the screen.

A 1000 pad coefficient means a 100% size.

Units are in mil (1 mil = 0.001 inch = 0.0254 mm)

Data that begin with "HTML_" are the backup of HTML documentation settings:

        - HTML_xxx_Chk_yyy save a yyy checkbox value (1 = checked, 0 = unchecked) of the xxx section

        - HTML_Chk_xxx equals "1" (checked) if the section xxx is selected by the user for HTML generation

        - One of the three parameters HTML_Schematic_NoComment, HTML_Schematic_CommentInFile or HTML_Schematic_TextComment must be true, the two other false

        - One of the two parameters HTML_PCB_Normal, HTML_PCB_Mirror must be true, the other false

        - One of the three parameters HTML_PCB_NormalEtching, HTML_PCB_GroundPlaneEtching or HTML_PCB_WhiteLineEtching must be true, the two other false

        - One of the two parameters HTML_PCB_CopperTextNormal, HTML_PCB_CopperTextNegative must be true, the other false

        - One of the two parameters HTML_Layout_NormalStyle, HTML_Layout_WYSIWYG must be true, the other false

        - Possible values for the parameters that corresponds to listindex or scrollbars value:

HTML_Layout_ZoomPreview
Value in CID fileSetting in CiDess
0x0.25
1x0.50
2x0.75
3x1
4x2
5x3
6x4
7x5
8x6
9x7
10x8
11x9
12x10

HTML_Layout_ZoomPict
Value in CID fileSetting in CiDess
0x1
1x2
2x3
3x4
4x5
5x6
6x7
7x8
8x9
9x10

HTML_Layout_TxtSize
Value in CID fileSetting in CiDess
04 points
15 points
26 points
37 points
48 points
59 points
610 points
711 points
812 points

HTML_Layout_Rotation
Value in CID fileSetting in CiDess
0
190°
2180°
3270°

HTML_PCB_ZoomPreview
Value in CID fileSetting in CiDess
0x0.254
1x0.5
2x0.75
3x1
4x2
5x3
6x4
7x5
8x6
9x7
10x8
11x9
12x10

HTML_PCB_ZoomPict
Value in CID fileSetting in CiDess
0x1
1x2
2x3
3x4
4x5
5x6
6x7
7x8
8x9
9x10

HTML_PCB_Rotation
Value in CID fileSetting in CiDess
0
190°
2180°
3270°

        - HTML_PCB_PadCoef is the pad width coefficient from 50 to 200 (100 means 100%)

        - HTML_PCB_TrackCoef is the track width coefficient from 50 to 200 (100 means 100%)

        - HTML_PCBGroundPlaneWidth should be between 10 and 50

        - According to the settings chosen, some parameters aren't used for HTML documentation, but a value can enter a value. Those data will be preserved and used when user chose appropriate settings.

The ExtraString data is not used by CiDess. It's read when you open a file, and record 'as is' when you save the file. I plan this data area for future CiDess' optional updates; so users doesn't have to update their version and CID files will worked correctly without data loss on CiDess III. Indeed, other software authors work with me to make their software compatible with CiDess. I'll fix some rule about the use of ExtraString; please contact me.

Let's see an example:



This file is made up of:
- a capacitor C1 with 150% pads
- a stretchable resistance R1
- a transistor T1 copper side mounted
- one pad of T1 is merged with the ground planes CU1 and CU2 (pink)
- a SMD IC IC1 component side mounted
- a SMD IC IC2 copper side mounted
- one pad of IC2 is merged with the ground plane CU1 (orange)
- a SMD IC IC3 with a 30° rotation angle
- two pads of IC3 are merged with the ground plane CU2 (purple)
- a track side 1
- a track side 2
- two tracks merged with ground plane CU1 (orange)
- a track merged with ground plane CU2 (purple)
- a copper text side 1
- a copper text side 2

"CIDESS","CID",3
10
Rémy LUCAS
29
electroremy@electroremy.fr.st
0

28
http://www.electroremy.fr.st
14
25000 Besançon
28
Projet exemples pour le site
22
Exemple de fichier CID
10
01/04/2008
3
1.1
1451
Mon programmateur est raccordé à un port parallèle mono-directionnel; ce port met à notre disposition 5 entrées et 12 sorties. Seulement, une EPROM requiert 4 lignes de contrôle, 8 lignes de sorties et jusque 15 lignes d'adresses (pour la 27256).

J'ai d'abord réglé une partie du problème en divisant mon programmateur en deux parties : une carte lecture et une carte écriture. Chacune des cartes possède son support, l'EPROM insérée dans le support lecture voit ses lignes de contrôle en mode lecture, et celle dans le support écriture en mode écriture. Il reste à s'occuper des lignes d'adresse et de données.

Pour la carte écriture, les lignes de données sont tout simplement reliées aux sorties D0 ... D7 du port parallèle. Quant aux lignes d'adresses, elles sont reliées aux sorties d'un compteur; en effet la broche /STROBE du port parallèle se charge d'incrémenter le compteur. /STROBE sert aussi à générer l'impulsion de programmation nécessaire. Le compteur est mis à zéro à la mise sous tension.

Pour la carte lecture, c'est un plus compliqué, car il faut lire les 8 lignes de données alors que nous ne disposons que de 5 entrées. La lecture se déroule en série sur l'entrée /ACK du port parallèle; ce sont les trois sorties D0, D1 et D2 qui définissent laquelle des 8 lignes de données de l'EPROM est reliée à /ACK. Les lignes d'adresse sont comme précédemment reliées aux sorties d'un compteur, lui-même commandé par D5 et D6.


754
Commencez par les straps, ensuite les résistances, condensateurs, et terminez par les semiconducteurs. On remarquera que les supports pour l'EPROM est soudé coté cuivre.

Pour relier les cartes lectures et écriture au port parallèle, vous pouvez utilisez un câble muni d’un connecteur DB25 qui se branchera directement derrière le P.C. ou bien utiliser une embase Centronics; le programmateur d’EPROMs se connectera au P.C. avec un banal câble pour imprimante.

Les deux régulateurs ont leur semelle alignées, pour permettre de les fixer sur un refroidisseur unique. Mais attention ! les deux semelles ne doivent pas êtres reliés électriquement. L'une des deux semelles sera donc isolée du radiateur par une plaque en mica et des rondelles isolantes.
316
Remarque : vous constaterez que les typons et les schémas d'implantation ne sont pas inversés; donc, il faudra placer le typon face non-imprimée contre la vitre de l'insoleuse (si cela n'est pas clair dans votre esprit, je vous invite à consulter le paragraphe sur l'insolation de la page sur la fabrication de CIs).
2650,1550
100,200,150,250
6
"Condos radiaux","d500 e200"
400,500
0,0
0
1
"C1"
"220µf"
1500
0
0
"SOIC","DIL 10"
1650,550
0,0
0
3
"IC1"
""
1000
0
0
"SOIC","DIL 10"
1650,900
0,0
360
4
"IC2"
""
1000
3
1
2
3
0
"SOIC","DIL 10"
850,950
0,0
30
3
"IC3"
""
1000
0
6
19
20
21
25
26
27
"Actifs 3 pins debouts","TO5"
400,1000
0,1400
0
2
"T1"
"2N1711"
1000
1
2
1
2
"Resistances","h250 d90"
1325,900
875,500
0
1
"R1"
"4,7K"
1000
1
1
0
6
50
1
2
500,500
850,500
#FALSE#
30
2
3
1523,453
900,450
850,500
#FALSE#
50
2
2
712,725
788,782
#FALSE#
50
1
3
1350,900
1450,1000
1550,1000
#TRUE#
50
2
3
400,1100
600,1100
710,940
#TRUE#
50
1
4
400,1100
400,1200
1450,1200
1450,1000
#TRUE#
2
"Arial"
18
#TRUE#
#FALSE#
#FALSE#
#TRUE#
#TRUE#
2100
850
135
2
#TRUE#
13
Texte CU2 Inv
8
"Arial"
15
#FALSE#
#FALSE#
#FALSE#
#FALSE#
#TRUE#
2000
400
15
1
#FALSE#
9
Texte CU1
8
1
1
1
1
1
1
1
1
1
0
1
""
1
""
#FALSE#
#FALSE#
#TRUE#
""
0

1
1
1
1
3
1
0
#TRUE#
#FALSE#
1
1
1
0
1
1
0
1
4
0
""
0
""
0
""
0
""
1
1
1
1
1
1
1
1
1
3
3
0
#TRUE#
#FALSE#
100
100
0
#TRUE#
#FALSE#
#FALSE#
#TRUE#
#FALSE#
20
1
1
1
0
""
0
""
0
0

""
""
1
0


CIT File format HGB<>^

This file format is used by all versions of CiDess.

Component types are saved in *.CIT file format.

CIT File format:

Black text is constant string
Green text is formatted string
Red text is integer value
Purple text is boolean value

"CIDESS","CIT",CIT_Format_Version
Number_of_component_types

Category_FR,ID_FR,Category_EN,ID_EN,Strechable
Number_of_solids
Solid_type
,Center_X,Center_Y,Center_Z,Size_X,Size_Y,Size_Z,Angle,3D_Color
... Idem for each solid ...
Number_of_pads
Pad_type
,Pad_diameter,Hole_diameter,Center_X,Center_Y
... Idem for each pad ...
Number_of_pins
Pad_number
,X,Y,Z
... Idem for each pin ...
... Idem for each component type

Some explanations:

Units are in mil (1 mil = 0.001 inch = 0.0254 mm)

Possible values for Solid_type:

Solid_type
In fileIn CiDess
0Cube
1Lying cylinder
2Standing cylinder
3Standing torus
4Lying torus
5Line
6Cross
7Circle

Possible values for Pad_type:

Pad_type
In fileIn CiDess
0Round
1Drilled round
2Square
3Drilled square
4Rectangular H
5Drilled Rectangular H
6Rectangular V
7Drilled Rectangular V

Coordinates define the attach point of a pin on the component.

A stretchable component type:
- must have exactly two pads
- pads' coordinates x,y are not used

The Z coordinate of a solid corresponds to the coordinate of the center of the solid, unlike in the component type editor where Z corresponds to the distance between the solid and the PCB card.

Let's see an example:

This sample file is made up of the three following component types:







"CIDESS","CIT",1
3
"d400 e200","Condos radiaux","d400 e200","Radial caps",#FALSE#
4
2,0,0,525,400,400,650,0,13210
2,0,0,150,350,350,100,0,4970
2,0,0,50,400,400,100,0,13210
6,-50,-100,0,100,100,0,0,0
2
1,80,26,-100,0
1,80,26,100,0
0
"h250 d90","Resistances","h250 d90","Resistances",#TRUE#
1
1,0,0,45,250,90,90,0,9211135
2
1,80,26,-700,0
1,80,26,700,0
2
1,-125,0,45
2,125,0,45
"M6","Vis","M6","Screw",#FALSE#
9
2,0,0,98,394,394,197,0,10066329
5,0,171,0,197,0,0,0,0
5,148,85,0,-98,171,0,0,0
5,148,-85,0,98,171,0,0,0
5,0,-171,0,-197,0,0,0,0
5,-148,85,0,98,171,0,0,0
5,-148,-85,0,-98,171,0,0,0
5,39,0,0,0,341,0,0,0
5,-39,0,0,0,341,0,0,0
1
1,236,118,0,0
0


CiDess.DAT File HGB<>^

This file format is used by all versions of CiDess.

CiDess.DAT file includes CiDess featured component types.

CiDess.DAT has the same file format than a CIT file, however the first line is different:
"CIDESS","DAT",... instead of "CIDESS","CIT",....

! Do not modify CiDess.dat file; your version of CiDess will be incompatible with the original software.
When I propose new versions of CiDess.dat, I only add new component types without changing any existing component type.
CiDess.exe checks CiDess.dat integrity at each boot.

CiDess.DIP File HGB<>^

This file format is used by all versions of CiDess.

CiDess.DIP contains your default values for extra PCB information and comments.

CiDess.DIP file format:

Black text is constant string
Blue text is multiline string
Red text is integer value

"CIDESS","DIP",DIP_Format_Version
Author_Length

Author
Mail_Length
Mail
Organisation_Length
Organisation
URL_Length
URL
Adress_Length
Adress
Project_Name_Length
Project_Name
Circuit_Name_Length
Circuit_Name
Date_Length
Date
Version_Length
Version
Nomenclature_Comments_Length
Nomenclature_Comments
PCB_Comments_Length
PCB_Comments
Realisation_Comments_Length
Realisation_Comments

Let's see an example:

"CIDESS","DIP",1
10
Rémy LUCAS
0

0

28
http://www.remylucas.fr
0

0

0

0

1
1
101
Procurez vous les composants avant de réaliser la carte.

Vous aurez peut être à modifier le typon.
102
Commencez par les straps, ensuite les résistances, condensateurs, et terminez par les semiconducteurs.
39
Utilisez de préférence la photogravure.


CiDess.LND File HGB<>^

This file format is used by old CiDess 1 and CiDess 2 ; it's also compatible with CiDess III, 4 and 4.25.

CiDess.LND contains your CiDess display parameters.

CiDess.LND file format:

Black text is constant string
Blue text is multiline string
Green text is formatted string
Red text is integer value
Purple text is boolean value

"CIDESS","LND",LND_Format_Version
LNG_filename
Mouse's_lines
Tolerance
Use_zoom_for_preview
CU1_Layer_visible
CU2_Layer_visible
SOL_Layer_visible
TXT_Layer_visible

Disp_text
Text_size
White_text_background
Zoom
Grid
Show_dot_grid


Some explanations:

Here is the meaning of CiDess.LND values:

Tolerance
In CiDess.LND fileIn CiDess software
0None
110 mil
250 mil
3100 mil

Disp_text
In CiDess.LND fileIn CiDess software
0Name and value
1Name
2Value

Zoom
In CiDess.LND fileIn CiDess software
0x 1
1x 2
2x 5
3x 10

Grid
In CiDess.LND fileIn CiDess software
0100 mil
150 mil
210 mil
35 mil
41 mil
51 mm
60,1 mm

Text_size is an integer value from 4 to 12.

Let's see an example:

"CIDESS","LND",1
"CiDessFR.LNG"
#TRUE#
2
#FALSE#
#TRUE#
#TRUE#
#TRUE#
#TRUE#
0
10
#TRUE#
0
1
#TRUE#


CiDess.LND V2 File HGB<>^

This file format is used by old CiDess III ; it's also compatible with CiDess 4 and 4.25.

CiDess.LND contains your CiDess display parameters.

CiDess.LND V2 file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value

"CIDESS","LND",LND_Format_Version
LNG_filename
Mouse's_lines
Tolerance
Use_zoom_for_preview
CU1_Layer_visible
CU2_Layer_visible
SOL_Layer_visible
TXT_Layer_visible

Disp_text
Text_size
White_text_background
Zoom
Grid
Show_dot_grid
CoefZoom1
AutoDateUpdate
AlwaysDisplayNoSplittedCopperText

Disp_solid
ColLayer(0)
ColLayerSel(0)
PrtColLayerC(0)
PrtColLayerNB(0)
ColLayer(1)
ColLayerSel(1)
PrtColLayerC(1)
PrtColLayerNB(1)
ColLayer(2)
ColLayerSel(2)
PrtColLayerC(2)
PrtColLayerNB(2)
ColLayer(3)
ColLayerSel(3)
PrtColLayerC(3)
PrtColLayerNB(3)
ColLayer(4)
ColLayerSel(4)
PrtColLayerC(4)
PrtColLayerNB(4)
ColBackCi
ColRectCi
ColMarginCi
ColForbZ
ColLayerBack
ColGrid

AutomaticCompoNameIncr
CustomGrid
DisplayGrid


Some explanations:

Here is the meaning of CiDess.LND values:

Tolerance
In CiDess.LND fileIn CiDess software
0None
110 mil
250 mil
3100 mil

Disp_text
In CiDess.LND fileIn CiDess software
0Name and value
1Name
2Value

Zoom
In CiDess.LND fileIn CiDess software
0x 1
1x 2
2x 5
3x 10

Grid
In CiDess.LND fileIn CiDess software
0100 mil
150 mil
210 mil
35 mil
41 mil
51 mm
60,1 mm
7Custom

Disp_solid
In CiDess.LND fileIn CiDess software
0All
1Side 1
2Side 2

Text_size is an integer value from 4 to 12.

CoefZoom1 is the number of pixel per unit (screen display scale). Default value is 0,12

ColLayer(i): Objects colors on screen
ColLayerSel(i): Selected objects colors on screen
PrtColLayerC(i): Objects colors on printer
PrtColLayerNB(i): colors used for black and white printing

i value
ilayer
0copper 1
1copper 2
2solid
3text
4copper 1 and copper 2

ColBackCi: Background color
ColRectCi: PCB bordure line
ColMarginCi: PCB's margin color
ColForbZ: color outside PCB and PCB's margin
ColLayerBack: CU1 / CU2 / SOL / TXT text color in toolbar
ColGrid: Dot grid color

A color is a long value = red + green * 255 + blue * 65536, with red, green and blue as integer value from 0 to 255 (in fact, red, green and blue are byte value).

CustomGrid and DisplayGrid are single values in mil.

Let's see an example:

"CIDESS","LND",2
"CiDessEN.LNG"
#TRUE#
2
#TRUE#
#TRUE#
#TRUE#
#TRUE#
#TRUE#
0
8
#FALSE#
0
1
#TRUE#
.12
#TRUE#
#FALSE#
0
0
8421504
12895428
12895428
16744448
16760960
16761984
8421504
255
8421631
255
0
51200
8454016
65280
0
16711680
16744576
14795938
10658466
16777215
16711880
16774650
0
16777215
0
#TRUE#
70.86614
141.7323


CiDess.LND V3 File HGB<>^

This file format is used by old CiDess 4 ; it's also compatible with CiDess 4.25.

CiDess.LND contains your CiDess display parameters.

CiDess.LND V3 file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS","LND",LND_Format_Version
LNG_filename
Mouse's_lines
Tolerance
Use_zoom_for_preview
CU1_Layer_visible
CU2_Layer_visible
SOL_Layer_visible
TXT_Layer_visible

Disp_text
Text_size
White_text_background
Zoom
Grid
Show_dot_grid
CoefZoom1
AutoDateUpdate
AlwaysDisplayNoSplittedCopperText

Disp_solid
ColLayer(0)
ColLayerSel(0)
PrtColLayerC(0)
PrtColLayerNB(0)
ColLayer(1)
ColLayerSel(1)
PrtColLayerC(1)
PrtColLayerNB(1)
ColLayer(2)
ColLayerSel(2)
PrtColLayerC(2)
PrtColLayerNB(2)
ColLayer(3)
ColLayerSel(3)
PrtColLayerC(3)
PrtColLayerNB(3)
ColLayer(4)
ColLayerSel(4)
PrtColLayerC(4)
PrtColLayerNB(4)
ColBackCi
ColRectCi
ColMarginCi
ColForbZ
ColLayerBack
ColGrid

AutomaticCompoNameIncr
CustomGrid
DisplayGrid
CoulCuDetoure
CoulCuGrave
CoulCuIntact
CoulPercage
CoulG54Axis
CoulG54Pad1
CoulG54Pad2

Some explanations:

Here is the meaning of CiDess.LND values:

Tolerance
In CiDess.LND fileIn CiDess software
0None
110 mil
250 mil
3100 mil

Disp_text
In CiDess.LND fileIn CiDess software
0Name and value
1Name
2Value

Zoom
In CiDess.LND fileIn CiDess software
0x 1
1x 2
2x 5
3x 10

Grid
In CiDess.LND fileIn CiDess software
0100 mil
150 mil
210 mil
35 mil
41 mil
51 mm
60,1 mm
7Custom

Disp_solid
In CiDess.LND fileIn CiDess software
0All
1Side 1
2Side 2

Text_size is an integer value from 4 to 12.

CoefZoom1 is the number of pixel per unit (screen display scale). Default value is 0,12

ColLayer(i): Objects colors on screen
ColLayerSel(i): Selected objects colors on screen
PrtColLayerC(i): Objects colors on printer
PrtColLayerNB(i): colors used for black and white printing
CoulCuDetoure: deep-etched objects' color in the BMP picture for CNC milling
CoulCuGrave: etched objects' color in the BMP picture for CNC milling
CoulCuIntact: background color in the BMP picture for CNC milling (copper that shouldn't be etched)
CoulPercage: holes' color in the BMP picture for CNC milling

CoulG54Axis, CoulG54Pad1 and CoulG54Pad2 are used to select CNC machine's axis location for PCB drilling with a CNC machine. These colors have to be clearly different from each other and form ColLayers() colors for CU1 and CU2.

i value
ilayer
0copper 1
1copper 2
2solid
3text
4copper 1 and copper 2

ColBackCi: Background color
ColRectCi: PCB bordure line
ColMarginCi: PCB's margin color
ColForbZ: color outside PCB and PCB's margin
ColLayerBack: CU1 / CU2 / SOL / TXT text color in toolbar
ColGrid: Dot grid color

A color is a long value = red + green * 255 + blue * 65536, with red, green and blue as integer value from 0 to 255 (in fact, red, green and blue are byte value).

CustomGrid and DisplayGrid are single values in mil.

Let's see an example:

"CIDESS","LND",3
"CiDessEN.LNG"
#TRUE#
2
#TRUE#
#TRUE#
#TRUE#
#TRUE#
#TRUE#
0
8
#FALSE#
0
1
#TRUE#
.12
#TRUE#
#FALSE#
0
0
8421504
12895428
12895428
16744448
16760960
16761984
8421504
255
8421631
255
0
51200
8454016
65280
0
16711680
16744576
14795938
10658466
16777215
16711880
16774650
0
16777215
0
#TRUE#
70.86614
141.7323
16728064
0
16777215
255
16711935
41215
16711935


CiDess.LND V4 File HGB<>^

This file format is used by CiDess 4.25.

CiDess.LND contains your CiDess display parameters.

CiDess.LND V4 file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS","LND",LND_Format_Version
LNG_filename
Mouse's_lines
Tolerance
Use_zoom_for_preview
CU1_Layer_visible
CU2_Layer_visible
SOL_Layer_visible
TXT_Layer_visible

Disp_text
Text_size
White_text_background
Zoom
Grid
Show_dot_grid
CoefZoom1
AutoDateUpdate
AlwaysDisplayNoSplittedCopperText

Disp_solid
ColLayer(0)
ColLayerSel(0)
PrtColLayerC(0)
PrtColLayerNB(0)
ColLayer(1)
ColLayerSel(1)
PrtColLayerC(1)
PrtColLayerNB(1)
ColLayer(2)
ColLayerSel(2)
PrtColLayerC(2)
PrtColLayerNB(2)
ColLayer(3)
ColLayerSel(3)
PrtColLayerC(3)
PrtColLayerNB(3)
ColLayer(4)
ColLayerSel(4)
PrtColLayerC(4)
PrtColLayerNB(4)
ColBackCi
ColRectCi
ColMarginCi
ColForbZ
ColLayerBack
ColGrid

AutomaticCompoNameIncr
CustomGrid
DisplayGrid
CoulCuDetoure
CoulCuGrave
CoulCuIntact
CoulPercage
CoulG54Axis
CoulG54Pad1
CoulG54Pad2
CoulLayer5
CoulLayerSel5
PrtCoulLayerC5
ImprCoulLayerNB5
PrtLayer6
CoulLayerSel6
PrtCoulLayerC6
PrtCoulLayerNB6
CoulLayer7
CoulLayerSel7
PrtCoulLayerC7
PrtCoulLayerNB7

Some explanations:

Here is the meaning of CiDess.LND values:

Tolerance
In CiDess.LND fileIn CiDess software
0None
110 mil
250 mil
3100 mil

Disp_text
In CiDess.LND fileIn CiDess software
0Name and value
1Name
2Value

Zoom
In CiDess.LND fileIn CiDess software
0x 1
1x 2
2x 5
3x 10

Grid
In CiDess.LND fileIn CiDess software
0100 mil
150 mil
210 mil
35 mil
41 mil
51 mm
60,1 mm
7Custom

Disp_solid
In CiDess.LND fileIn CiDess software
0All
1Side 1
2Side 2

Text_size is an integer value from 4 to 12.

CoefZoom1 is the number of pixel per unit (screen display scale). Default value is 0,12

ColLayer(i): Objects colors on screen
ColLayerSel(i): Selected objects colors on screen
PrtColLayerC(i): Objects colors on printer
PrtColLayerNB(i): colors used for black and white printing
CoulCuDetoure: depreciated, not used by CiDess 4.25 but still in LND file for backward compatibility
CoulCuGrave: etched objects' color in the BMP picture for CNC milling
CoulCuIntact: background color in the BMP picture for CNC milling (copper that shouldn't be etched)
CoulPercage: holes' color in the BMP picture for CNC milling

CoulG54Axis, CoulG54Pad1 and CoulG54Pad2 are used to select CNC machine's axis location for PCB drilling with a CNC machine. These colors have to be clearly different from each other and form ColLayers() colors for CU1 and CU2.

i value
ilayer
0copper 1
1copper 2
2solid
3text
4copper 1 and copper 2
5ground plane pads and tracks copper 1
6ground plane pads and tracks copper 2
7ground plane pads copper 1 and copper 2

ColBackCi: Background color
ColRectCi: PCB bordure line
ColMarginCi: PCB's margin color
ColForbZ: color outside PCB and PCB's margin
ColLayerBack: CU1 / CU2 / SOL / TXT text color in toolbar
ColGrid: Dot grid color

A color is a long value = red + green * 255 + blue * 65536, with red, green and blue as integer value from 0 to 255 (in fact, red, green and blue are byte value).

CustomGrid and DisplayGrid are single values in mil.

Let's see an example:

"CIDESS","LND",4
"CiDessEN.LNG"
#TRUE#
2
#TRUE#
#TRUE#
#TRUE#
#TRUE#
#TRUE#
0
4
#FALSE#
1
1
#TRUE#
.12
#TRUE#
#FALSE#
0
0
8421504
12895428
12895428
16744448
16760960
16761984
8421504
255
8421631
255
0
51200
8454016
65280
0
16711680
16744576
14795938
10658466
16777215
16711880
16774650
0
16777215
0
#TRUE#
100
100
16777215
16777215
0
255
16711935
41215
16711935
39935
9032191
9032191
12895428
16711880
16755415
16755415
11842740
13147135
15520767
15520767
10855845


CiDess.WSP File HGB<>^

This file is used by CiDess III, 4 and 4.25.

CiDess.WSP contains your CiDess display area parameters.

CiDess.WSP file format:

Black text is constant string
Red text is integer value
Blue text is double value

"CIDESS","WSP",WSP_Format_Version
Mode
AreaLeft
AreaTop
AreaWidth
AreaHeight


AreaLeft and AreaTop define left top corner of the custom area, in twips.
AreaWidth and AreaHeight define custom area size in twips.

Mode
In CiDess.WSP fileIn CiDess software
1Whole screen
2Whole work Area
3Custom

Let's see an example:

"CIDESS","WSP",1
2
360
660
12000
9660


*.BMP.TXT File format (depreciated) HGB<>^

This file is used by old CiDess 4 and is depreciated since CiDess 4.25.

When you create a BMP picture for CNC milling software, CiDess allows you to create an extra info file, with the same filename but with .BMP.TXT extension. This extra file contains usefull data for the BMP picture file usage with other software.

"BTP4M" software is able to read the .BMP and .BMP.TXT files together.

*.BMP.TXT file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS",".BMP.TXT",BMPTXT_FileFormat_Version
"Face",Side
"Taille X en unités",Width
"Taille Y en unités",Height
"Couleur des pistes en cuivre à détourer",CoulCuDetoure
"Couleur des surfaces à graver",CoulCuGrave
"Couleur du fond (cuivre non usiné)",CoulCuIntact
"Couleur des perçages",CoulPercage
"Nombre de pixels par unité",pcoef
"Nombre de mm par unité",0.0254
"Aucun perçage",PadsNeverDrilled
"Pastilles CMS jamais percées",SmdPadsNeverDrilled
"Style d'usinage",MillingStyle
"Nom du fichier CID correspondant",CID_Filename
"Nom du fichier BMP correspondant",BMP_Filename
"Date de création",Date
"Position des perçages indiqués à la suite",DrillingList
"(coordonnées en pixels image, diamètre en unités)"
"Perçage X=",DrillX1,"Y=",DrillY1,"D=",DrillD1
...
"Perçage X=",DrillXn,"Y=",DrillYn,"D=",DrillDn

Side should be set to 1 for CU1 side, and 2 for CU2 side.

Width and Height are PCB's width and height without margin in mil.

CoulCuDetoure: deep-etched objects' color in the BMP picture for CNC milling
CoulCuGrave: etched objects' color in the BMP picture for CNC milling
CoulCuIntact: background color in the BMP picture for CNC milling (copper that shouldn't be etched)
CoulPercage: holes' color in the BMP picture for CNC milling

A color is a long value = red + green * 255 + blue * 65536, with red, green and blue as integer value from 0 to 255 (in fact, red, green and blue are byte value).

Others values are CiDess' BMP creation's parameters. They would not be useful for the CNC software.

pcoef is the number of pixels for one mil.
0.0254 is the number of mm for one mil.

The next picture shows how the CNC software had to use the BMP picture:



On top of the picture, with blue, gray and red rectangles and circles, the small black disk figures a CNC machine milling tool. Dot lines are tool paths. White background is CoulCuIntact color.

The bottom of the picture shows the result of the rectangles milling operation on a real PCB (bakelite is in brown, and copper in orange).

In the CoulCuDetoure and CoulCuGrave cases, the tool only etch PCB's copper surface; with CoulPercage, the tool mills the whole depth of the PCB.

If drilling list is in .BMP.TXT file, they are not in the picture.

Let's see an example:

"CIDESS",".BMP.TXT",1
"Face",1
"Taille X en unités",2700
"Taille Y en unités",1500
"Couleur des pistes en cuivre à détourer",16711680
"Couleur des surfaces à graver",0
"Couleur du fond (cuivre non usiné)",65535
"Couleur des perçages",255
"Nombre de pixels par unité",.479999989271164
"Nombre de mm par unité",.0254
"Aucun perçage",#FALSE#
"Pastilles CMS jamais percées",#FALSE#
"Style d'usinage",1
"Nom du fichier CID correspondant","D:\CiDess\fichiers_tests\test_CNC.cid"
"Nom du fichier BMP correspondant","D:\CiDess\fichiers_tests\Test_CNC_Face1_Detoure.bmp"
"Date de création","23/08/2014"
"Position des perçages indiqués à la suite",#FALSE#


Let's see an other example:

"CIDESS",".BMP.TXT",1
"Face",1
"Taille X en unités",2700
"Taille Y en unités",1500
"Couleur des pistes en cuivre à détourer",16711680
"Couleur des surfaces à graver",0
"Couleur du fond (cuivre non usiné)",65535
"Couleur des perçages",255
"Nombre de pixels par unité",.479999989271164
"Nombre de mm par unité",.0254
"Aucun perçage",#FALSE#
"Pastilles CMS jamais percées",#FALSE#
"Style d'usinage",1
"Nom du fichier CID correspondant","D:\CiDess\fichiers_tests\test_CNC.cid"
"Nom du fichier BMP correspondant","D:\CiDess\fichiers_tests\Test_CNC_Face1_Detoure.bmp"
"Date de création","23/08/2014"
"Position des perçages indiqués à la suite",#TRUE#
"(coordonnées en pixels image, diamètre en unités)"
"Perçage X=",680.16,"Y=",1649.24,"D=",118
"Perçage X=",680.16,"Y=",251,"D=",118
"Perçage X=",120,"Y=",959,"D=",39
"Perçage X=",120,"Y=",1079,"D=",39
"Perçage X=",120,"Y=",1583,"D=",26
"Perçage X=",72,"Y=",1487,"D=",26


*.MAC File format (depreciated) HGB<>^

This file format is used by CiDess 4 and 4.25, but is depreciated since CiDess 4.27.

It stores CNC machine's parameters.

*.MAC file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS","MAC",FileVersion
"Unites ",Units
"Axe Broche ",SpindleAxis
"Sens Axe Broche ",SpindleAxisDirection
"Orientation Rep.",CoordinateSystemDirection
"Rotation Broche ",SpindleRotationDirection
"Corr. R Outil ",RadiusToolCompensation
"Corr. H Outil ",HeightToolCompensation
"Changement Outil",ToolChange
"Arrosage ",Coolant
"Nom Fraiseuse ",MachineName
"Course X min ",XminStroke
"Course X MAX ",YminStroke
"Course Y min ",ZminStroke
"Course Y MAX ",XmaxStroke
"Course Z min ",YmaxStroke
"Course Z MAX ",ZmaxStroke
"Parking X ",LandingZoneX
"Parking Y ",LandingZoneY
"Parking Z ",LandingZoneZ
"S MAX ",MaxSpindleSpeed
"Va MAX ",MaxFeedRate
"Nom Rep. Piece ",WorkpieceName
"Cmd. Supp. Debut",NumberOfCharactersInExtraStartCommands
ExtraStartCommands
"Cmd. Supp. Fin ",NumberOfCharactersInExtraEndCommands
ExtraEndCommands


Integer values meaning:

Units
    mm = 0
    inch = 1

SpindleAxis
    X = 0
    Y = 1
    Z = 2

SpindleAxisDirection
    positive = 0
    negative = 1

CoordinateSystemDirection
    direct = 0
    reversed = 1

SpindleRotationDirection
    normal = 0
    reversed = 1

RadiusToolCompensation
    normal = 0
    reversed = 1
    disable = 2

HeightToolCompensation
    positive = 0
    negative = 1
    disable = 2

ToolChange
    automatic = 0
    manual = 1

Coolant
    yes = 0
    no = 1

Let's see an example:

"CIDESS","MAC",1
"Unites ",0
"Axe Broche ",2
"Sens Axe Broche ",0
"Orientation Rep.",0
"Rotation Broche ",0
"Corr. R Outil ",0
"Corr. H Outil ",0
"Changement Outil",1
"Arrosage ",1
"Nom Fraiseuse ","D4070 Sieg sans changeur"
"Course X min ",0
"Course X MAX ",200
"Course Y min ",0
"Course Y MAX ",300
"Course Z min ",0
"Course Z MAX ",50
"Parking X ",190
"Parking Y ",290
"Parking Z ",45
"S MAX ",10000
"Va MAX ",4000
"Nom Rep. Piece ","G54"
"Cmd. Supp. Debut",15
G80 G90 G94 G61
"Cmd. Supp. Fin ",0


*.OUT File format (depreciated) HGB<>^

This file format is used by CiDess 4 and 4.25, but is depreciated since CiDess 4.27.

It stores tools list used by CiDess for drilling and by BTP4M for milling.

*.OUT file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS","OUT",FileVersion
"Nom Liste outils",ToolListName
"Nombre d'outils ",NumberOfTools
"NomOutil","NumT","NumD","NumH","TypeOutil","Unites","Hélice","Diametre","Longueur",_ _"NbDents","DimR","DimS","DimT","DimU"
Tool1Name,Tool1Number,Tool1DComposator,Tool1HComposator,Tool1Type,Tool1Units,Tool1Hand,_ _Tool1Diameter,Tool1Lenght,Tool1NumberOfTooth,RTool1,STool1,TTool1,UTool1
...
ToolNName,ToolNNumber,ToolNDComposator,ToolNHComposator,ToolNType,ToolNUnits,ToolNHand,_ _ToolNDiameter,ToolNLenght,ToolNNumberOfTooth,RToolN,SToolN,TToolN,UToolN


Integer values meaning:

ToolXType
    drill = 0
    shell end mill = 1
    cylindrical cutter = 2
    jointing cutter = 3
    round mill = 4
    tapered mill = 5
    engraving mill = 6
    cutting disc = 7
    molding mill = 8
    right handed taper = 9
    left handed taper = 10

ToolXUnits
    mm = 0
    inch = 1

ToolXHand
    right_handed = 0
    left_handed = 1

R, S, T and U parameters serves to define milling tool; they don't are used by CiDess.

Let's see an example:

"CIDESS","OUT",1
"Nom Liste outils","Forêts pour électronique"
"Nombre d'outils ",18
"NomOutil","NumT","NumD","NumH","TypeOutil","Unites","Hélice","Diametre","Longueur",_ _"NbDents","DimR","DimS","DimT","DimU"
"",1,0,1,0,0,1,.8,20,2,0,0,0,0
"",2,0,2,0,0,0,1,20,2,0,0,0,0
"",3,0,3,0,0,0,1.2,20,2,0,0,0,0
"",4,0,4,0,0,0,1.5,20,2,0,0,0,0
"",5,0,5,0,0,0,2,20,2,0,0,0,0
"",6,0,6,0,0,0,2.5,20,2,0,0,0,0
"",7,0,7,0,0,0,3,20,2,0,0,0,0
"",8,0,8,0,0,0,3.3,20,2,0,0,0,0
"",9,0,9,0,0,0,3.5,20,2,0,0,0,0
"",10,0,10,0,0,0,4,20,2,0,0,0,0
"",11,0,11,0,0,0,4.2,20,2,0,0,0,0
"",12,0,12,0,0,0,4.5,20,2,0,0,0,0
"",13,0,13,0,0,0,5,20,2,0,0,0,0
"",14,0,14,0,0,0,5.5,20,2,0,0,0,0
"",15,0,15,0,0,0,6,20,2,0,0,0,0
"",16,0,16,0,0,0,6.5,20,2,0,0,0,0
"",17,0,17,0,0,0,7,20,2,0,0,0,0
"",18,0,18,0,0,0,8,20,2,0,0,0,0


CiDess.USI File format (depreciated) HGB<>^

This file is used by CiDess 4 and 4.25, but is depreciated since CiDess 4.27.

It stores

CiDess.USI file format:

Black text is constant string
Green text is formatted string
Red text is integer value
Blue text is single value
Orange text is long value
Purple text is boolean value

"CIDESS","USI",FileVersion
"Unites ",Unite
"Face cote fraise ",SideUp
"Vitesse d'avance rapide ",FastFeedRate
"Avance par tour par dent ",FeedRatePerRevolutionPerTooth
"Vitesse de coupe ",CuttingSpeed
"Coefficient diametre pastille",CoefPadDiameter
"Percer pastilles trop petites",DrillTooSmallPads
"Pastilles CMS jamais percees ",SMDPadsNeverDrilled
"Commentaires explications ",CommentsInGCODE
"Commentaires noms composants ",ComponentsNamesInGCODE
"Profondeur de percage ",DrillingDepth
"Hauteur remontee entre trous ",RisingHeight
"Tolerance choix foret 1-1.06 ",ToleranceDrillDiameterChoice
"Optimiser les parcours ",OptimizePath
"Optimiser - Nombre individus ",OptimizeNbEntities
"Optimiser - Nb reproductions ",OptimizeNbChildren
"Optimiser - Nombre mutations ",OptimizeNbMutants
"Optimiser - Condition arrêt ",OptimizeStopCondition
"Optimiser - Temps maximum ",OptimizeMaximumDuration


Let's see an example:

"CIDESS","USI",1
"Unites ",0
"Face cote fraise ",1
"Vitesse d'avance rapide ",3800
"Avance par tour par dent ",.1
"Vitesse de coupe ",40
"Coefficient diametre pastille",1
"Percer pastilles trop petites",#TRUE#
"Pastilles CMS jamais percees ",#TRUE#
"Commentaires explications ",#TRUE#
"Commentaires noms composants ",#TRUE#
"Profondeur de percage ",5
"Hauteur remontee entre trous ",10
"Tolerance choix foret 1-1.06 ",1.04
"Optimiser les parcours ",#TRUE#
"Optimiser - Nombre individus ",15
"Optimiser - Nb reproductions ",10
"Optimiser - Nombre mutations ",10
"Optimiser - Condition arrêt ",150
"Optimiser - Temps maximum ",10


 3D view utility source code HGB<>^

I create a 3D view utility for educational purpose; in fact I want to create my own 3D motor, and I finally include it in CiDess.

The 3D motor is coded in Visual Basic and does not use 3D facilities of video cards and Pentium processors. So its performance is quite poor! It's the raison why CiDess allow you to save PCB as 3DG files, so you can use a professional 3D software to create good quality 3D pictures.

        Some mathematics
        An algorithm
        Drawing surfaces
        Source code

Some mathematics HGB<>^

"Do 3D" means to draw on a 2D screen the same picture as we see if there is a 3D scene instead of the monitor.

In fact, draw a 3D picture is the equivalent to project the 3D coordinates on the screen.

Look at the picture:



Known data:
        User eye is centered on a X,Y,Z coordinate system
        User looks towards R axis direction
        P,Q,R coordinate system is the A,B,C system after a AY rotation around B, and A,B,C
                AX is the view point's azimuth and AY is the view point's elevation
        Screen is facing the user eye, centered on R axis
        D is the distance between screen and user eye
        V is a point of the fictive 3D scene

Data to find:
        W coordinates on the screen; W is the projection of V.

The Max matrix turn the X,Y,Z system to obtain the A,B,C system:

 1 ;0 ;0
Max =0 ;cos ax ;sin ax
 0 ;-sin ax ;cos ax

The May matrix turn the A,B,C system to obtain the P,Q,R system:

 cos ay ;0 ;- sin ay
May =0 ;1 ;0
 sin ay ;0 ;cos ay

The M matrix give P,Q,R system directly from X,Y,Z:

 cos ay ;0 ;sin ay
M =sin ax . sin ay ;cos ax ;- sin ax . cos ay
 - sin ay . cos ax ;sin ax ;cos ax . cos ay

To obtain V coordinates in P,Q,R, we multiply V coordinates in X,Y,Z by M.

To obtain W coordinates in P,Q,R, we multiply V coordinates in P,Q,R by D then we divide the result by the R coordinate of V.

W screen coordinates are simply P and Q coordinates of W.

An algorithm HGB<>^

We can write an algorithm to find the projection of a 3D scene's points:

Input:
AX angle
AY angle
D distance
For each point of the 3D scene: X,Y,Z
User eye position: UX,UY,UZ
Pixel conversion coef.: K
Screen width: L
Screen height: H


Results:
For each point screen coordinates: xe,ye

Temp data:
COSAX, SINAX
COSAY, SINAY
PX, PY
QX, QY, QZ
RX, RY, RZ
E, F
OWX, OWY, OWX


Algorithm:

COSAY = cos(AY)
SINAY = sin(AY)
COSAX = cos(AX)
SINAX = sin(AX)
// PY is null
PX = COSAY
PZ = SINAY
QX = SINAY * SINAX
QY = COSAX
QZ = - COSAY * SINAX
RX = - SINAY * COSAX
RY = SINAX
RZ = COSAY * COSAX
POUR CHAQUE POINT (X,Y,Z)
X = X - XU
Y = Y - YU
Z = Z - ZU
// E is the distance between W and P,Q map
E = RX * X + RY * Y + RZ * Z
F = D / E
SI F > 1 ALORS // (X,Y,Z) point is behind the screen
// O point is the intersection between screen and R axis
OWX = X * F - RX * D
OWY = Y * F - RY * D
OWZ = Z * F - RZ * D
xe = OWX * PX + OWZ * PZ
ye = OWX * QX + OWY * QY + OWZ * QZ
// Pixel coordinates calculation
xe = K * xe + L/2
ye = K * ye + H/2
FIN SI
FIN POUR


Drawing surfaces HGB<>^

We have to draw surfaces.

To do that, we have to divide 3D surface in small triangle surfaces. The more triangles are small, the more picture quality will be good. But smaller surfaces involve higher program running time.

Then we have to calculate triangles color. Indeed, if all the triangles are painted in the same color, there is no real 3D effect.
First, we have to set up the position of a light source.
Brightness is related to the sinus of the angle between a light ray from the source and the triangle surface.

In fact, if a surface is perpendicular to a light ray, it receives a maximum amount of light; but if the surface is parallel to light rays, it receives no light.

Thus, to obtain a correct picture, we have to sort the triangle by their distance from the user eye, so that the closer triangles are drawn at last.

Look at the following screen shots taken while the 3D program is running:



Remember this algorithm is a basic way to create 3D pictures. A real 3D motor should take into account:
- several light sources
- shadows
- light reflection phenomena
- ...

I hope this introduction make you want to know more about 3D programming.

Source code HGB<>^

Clic here to download the 3D utility source code in Visual Basic 5.

An exe file in the archive allows you to run the utility without Visual Basic. If an error occurs, move the exe file in CiDess path.


(c) Rémy LUCAS - Last update: 29/09/2018 (V4.29)