mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-11 17:25:39 +02:00
First commit
This commit is contained in:
parent
1785c2875d
commit
2e9a994856
@ -1,10 +1,10 @@
|
|||||||
object frm3D: Tfrm3D
|
object frm3D: Tfrm3D
|
||||||
Left = 1
|
Left = -7
|
||||||
Top = 1
|
Top = 7
|
||||||
BorderIcons = [biSystemMenu]
|
BorderIcons = [biSystemMenu]
|
||||||
Caption = #1055#1088#1086#1089#1084#1086#1090#1088' '#1074' 3D'
|
Caption = #1055#1088#1086#1089#1084#1086#1090#1088' '#1074' 3D'
|
||||||
ClientHeight = 687
|
ClientHeight = 705
|
||||||
ClientWidth = 1342
|
ClientWidth = 1360
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clWindowText
|
Font.Color = clWindowText
|
||||||
@ -16,7 +16,6 @@ object frm3D: Tfrm3D
|
|||||||
OldCreateOrder = False
|
OldCreateOrder = False
|
||||||
Position = poMainFormCenter
|
Position = poMainFormCenter
|
||||||
Scaled = False
|
Scaled = False
|
||||||
WindowState = wsMaximized
|
|
||||||
OnCloseQuery = FormCloseQuery
|
OnCloseQuery = FormCloseQuery
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnDestroy = FormDestroy
|
OnDestroy = FormDestroy
|
||||||
@ -35,15 +34,15 @@ object frm3D: Tfrm3D
|
|||||||
object panMain: TPanel
|
object panMain: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 1342
|
Width = 1360
|
||||||
Height = 687
|
Height = 705
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Caption = 'Panel2'
|
Caption = 'Panel2'
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object Splitter1: TSplitter
|
object Splitter1: TSplitter
|
||||||
Left = 1338
|
Left = 1356
|
||||||
Top = 42
|
Top = 42
|
||||||
Height = 644
|
Height = 662
|
||||||
Align = alRight
|
Align = alRight
|
||||||
AutoSnap = False
|
AutoSnap = False
|
||||||
ResizeStyle = rsUpdate
|
ResizeStyle = rsUpdate
|
||||||
@ -53,14 +52,14 @@ object frm3D: Tfrm3D
|
|||||||
object panUpper: TPanel
|
object panUpper: TPanel
|
||||||
Left = 1
|
Left = 1
|
||||||
Top = 1
|
Top = 1
|
||||||
Width = 1340
|
Width = 1358
|
||||||
Height = 41
|
Height = 41
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
Color = 15329769
|
Color = 15329769
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
DesignSize = (
|
DesignSize = (
|
||||||
1340
|
1358
|
||||||
41)
|
41)
|
||||||
object SpeedButton1: TSpeedButton
|
object SpeedButton1: TSpeedButton
|
||||||
Left = 8
|
Left = 8
|
||||||
@ -108,7 +107,7 @@ object frm3D: Tfrm3D
|
|||||||
OnClick = SpeedButton3Click
|
OnClick = SpeedButton3Click
|
||||||
end
|
end
|
||||||
object lbViewType: TLabel
|
object lbViewType: TLabel
|
||||||
Left = 1168
|
Left = 1186
|
||||||
Top = 25
|
Top = 25
|
||||||
Width = 163
|
Width = 163
|
||||||
Height = 16
|
Height = 16
|
||||||
@ -155,7 +154,7 @@ object frm3D: Tfrm3D
|
|||||||
OnClick = sbSaveModelClick
|
OnClick = sbSaveModelClick
|
||||||
end
|
end
|
||||||
object sbApplyScsModel: TSpeedButton
|
object sbApplyScsModel: TSpeedButton
|
||||||
Left = 1073
|
Left = 1091
|
||||||
Top = 13
|
Top = 13
|
||||||
Width = 161
|
Width = 161
|
||||||
Height = 22
|
Height = 22
|
||||||
@ -169,10 +168,9 @@ object frm3D: Tfrm3D
|
|||||||
Font.Style = []
|
Font.Style = []
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
OnClick = sbApplyScsModelClick
|
OnClick = sbApplyScsModelClick
|
||||||
ExplicitLeft = 1091
|
|
||||||
end
|
end
|
||||||
object SpeedButton4: TSpeedButton
|
object SpeedButton4: TSpeedButton
|
||||||
Left = 1240
|
Left = 1258
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 94
|
Width = 94
|
||||||
Height = 22
|
Height = 22
|
||||||
@ -211,16 +209,16 @@ object frm3D: Tfrm3D
|
|||||||
object panScene: TPanel
|
object panScene: TPanel
|
||||||
Left = 1
|
Left = 1
|
||||||
Top = 42
|
Top = 42
|
||||||
Width = 1017
|
Width = 1035
|
||||||
Height = 644
|
Height = 662
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelInner = bvLowered
|
BevelInner = bvLowered
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object Panel3: TPanel
|
object Panel3: TPanel
|
||||||
Left = 2
|
Left = 2
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 1013
|
Width = 1031
|
||||||
Height = 640
|
Height = 658
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
Ctl3D = False
|
Ctl3D = False
|
||||||
@ -229,12 +227,12 @@ object frm3D: Tfrm3D
|
|||||||
object GLSceneViewer: TGLSceneViewer
|
object GLSceneViewer: TGLSceneViewer
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 1013
|
Width = 1031
|
||||||
Height = 595
|
Height = 613
|
||||||
Camera = GLCamera
|
Camera = GLCamera
|
||||||
Buffer.BackgroundColor = 15987957
|
Buffer.BackgroundColor = 15987957
|
||||||
Buffer.AntiAliasing = aa2x
|
Buffer.AntiAliasing = aa2x
|
||||||
FieldOfView = 123.455924987793000000
|
FieldOfView = 124.868827819824200000
|
||||||
Align = alClient
|
Align = alClient
|
||||||
OnClick = GLSceneViewerClick
|
OnClick = GLSceneViewerClick
|
||||||
OnDblClick = GLSceneViewerDblClick
|
OnDblClick = GLSceneViewerDblClick
|
||||||
@ -245,8 +243,8 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object StatusBar1: TStatusBar
|
object StatusBar1: TStatusBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 615
|
Top = 633
|
||||||
Width = 1013
|
Width = 1031
|
||||||
Height = 25
|
Height = 25
|
||||||
Panels = <
|
Panels = <
|
||||||
item
|
item
|
||||||
@ -257,8 +255,8 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object sbView: TPanel
|
object sbView: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 595
|
Top = 613
|
||||||
Width = 1013
|
Width = 1031
|
||||||
Height = 20
|
Height = 20
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
Alignment = taLeftJustify
|
Alignment = taLeftJustify
|
||||||
@ -269,40 +267,36 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object RzSizePanel1: TRzSizePanel
|
object RzSizePanel1: TRzSizePanel
|
||||||
Left = 1018
|
Left = 1036
|
||||||
Top = 42
|
Top = 42
|
||||||
Width = 320
|
Width = 320
|
||||||
Height = 644
|
Height = 662
|
||||||
Align = alRight
|
Align = alRight
|
||||||
BorderWidth = 1
|
BorderWidth = 1
|
||||||
HotSpotVisible = True
|
HotSpotVisible = True
|
||||||
SizeBarWidth = 7
|
SizeBarWidth = 7
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
VisualStyle = vsClassic
|
VisualStyle = vsClassic
|
||||||
object RzPageControl1: TRzPageControl
|
object PNtTree: TRzPageControl
|
||||||
AlignWithMargins = True
|
AlignWithMargins = True
|
||||||
Left = 16
|
Left = 16
|
||||||
Top = 4
|
Top = 4
|
||||||
Width = 300
|
Width = 300
|
||||||
Height = 636
|
Height = 654
|
||||||
ActivePage = TabSheet1
|
ActivePage = TabSheet3
|
||||||
ActivePageDefault = TabSheet1
|
ActivePageDefault = TabSheet1
|
||||||
Align = alRight
|
Align = alRight
|
||||||
TabIndex = 0
|
TabIndex = 2
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TabStyle = tsSquareCorners
|
TabStyle = tsSquareCorners
|
||||||
FixedDimension = 19
|
FixedDimension = 19
|
||||||
object TabSheet1: TRzTabSheet
|
object TabSheet1: TRzTabSheet
|
||||||
Caption = #1052#1086#1076#1077#1083#1100
|
Caption = #1052#1086#1076#1077#1083#1100
|
||||||
ExplicitLeft = 0
|
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 0
|
|
||||||
object panObjects: TPanel
|
object panObjects: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 296
|
Width = 296
|
||||||
Height = 610
|
Height = 628
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelInner = bvLowered
|
BevelInner = bvLowered
|
||||||
Font.Charset = RUSSIAN_CHARSET
|
Font.Charset = RUSSIAN_CHARSET
|
||||||
@ -314,7 +308,7 @@ object frm3D: Tfrm3D
|
|||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object Splitter2: TSplitter
|
object Splitter2: TSplitter
|
||||||
Left = 2
|
Left = 2
|
||||||
Top = 155
|
Top = 173
|
||||||
Width = 292
|
Width = 292
|
||||||
Height = 3
|
Height = 3
|
||||||
Cursor = crVSplit
|
Cursor = crVSplit
|
||||||
@ -328,20 +322,16 @@ object frm3D: Tfrm3D
|
|||||||
Left = 2
|
Left = 2
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 292
|
Width = 292
|
||||||
Height = 153
|
Height = 171
|
||||||
ActivePage = TabScsModel
|
ActivePage = TabArchModel
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabIndex = 1
|
TabIndex = 0
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TabStyle = tsRoundCorners
|
TabStyle = tsRoundCorners
|
||||||
OnTabClick = pcTreeTabClick
|
OnTabClick = pcTreeTabClick
|
||||||
FixedDimension = 19
|
FixedDimension = 19
|
||||||
object TabArchModel: TRzTabSheet
|
object TabArchModel: TRzTabSheet
|
||||||
Caption = #1040#1088#1093'. '#1084#1086#1076#1077#1083#1100
|
Caption = #1040#1088#1093'. '#1084#1086#1076#1077#1083#1100
|
||||||
ExplicitLeft = 0
|
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 145
|
|
||||||
object cxGroupBox1: TcxGroupBox
|
object cxGroupBox1: TcxGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -396,7 +386,7 @@ object frm3D: Tfrm3D
|
|||||||
Left = 0
|
Left = 0
|
||||||
Top = 47
|
Top = 47
|
||||||
Width = 288
|
Width = 288
|
||||||
Height = 80
|
Height = 98
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
BorderStyle = bsNone
|
BorderStyle = bsNone
|
||||||
@ -427,10 +417,6 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object TabScsModel: TRzTabSheet
|
object TabScsModel: TRzTabSheet
|
||||||
Caption = #1057#1050#1057' '#1084#1086#1076#1077#1083#1100
|
Caption = #1057#1050#1057' '#1084#1086#1076#1077#1083#1100
|
||||||
ExplicitLeft = 0
|
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 0
|
|
||||||
object cxGroupBox2: TcxGroupBox
|
object cxGroupBox2: TcxGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -485,7 +471,7 @@ object frm3D: Tfrm3D
|
|||||||
Left = 0
|
Left = 0
|
||||||
Top = 47
|
Top = 47
|
||||||
Width = 288
|
Width = 288
|
||||||
Height = 80
|
Height = 98
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
BorderStyle = bsNone
|
BorderStyle = bsNone
|
||||||
@ -525,7 +511,7 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object pcProps: TRzPageControl
|
object pcProps: TRzPageControl
|
||||||
Left = 2
|
Left = 2
|
||||||
Top = 158
|
Top = 176
|
||||||
Width = 292
|
Width = 292
|
||||||
Height = 450
|
Height = 450
|
||||||
ActivePage = TabScsProps
|
ActivePage = TabScsProps
|
||||||
@ -536,10 +522,6 @@ object frm3D: Tfrm3D
|
|||||||
FixedDimension = 19
|
FixedDimension = 19
|
||||||
object TabArchProps: TRzTabSheet
|
object TabArchProps: TRzTabSheet
|
||||||
Caption = #1040#1088#1093'. '#1089#1074#1086#1081#1089#1090#1074#1072
|
Caption = #1040#1088#1093'. '#1089#1074#1086#1081#1089#1090#1074#1072
|
||||||
ExplicitLeft = 0
|
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 0
|
|
||||||
object Panel1: TPanel
|
object Panel1: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
@ -2150,10 +2132,6 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object TabSheet2: TRzTabSheet
|
object TabSheet2: TRzTabSheet
|
||||||
Caption = #1053#1072#1089#1090#1088#1086#1081#1082#1080
|
Caption = #1053#1072#1089#1090#1088#1086#1081#1082#1080
|
||||||
ExplicitLeft = 0
|
|
||||||
ExplicitTop = 0
|
|
||||||
ExplicitWidth = 0
|
|
||||||
ExplicitHeight = 628
|
|
||||||
object Label10: TLabel
|
object Label10: TLabel
|
||||||
Left = 5
|
Left = 5
|
||||||
Top = 71
|
Top = 71
|
||||||
@ -2269,6 +2247,59 @@ object frm3D: Tfrm3D
|
|||||||
Text = '0'
|
Text = '0'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
object TabSheet3: TRzTabSheet
|
||||||
|
Caption = #1054#1073#1098#1077#1082#1090#1099
|
||||||
|
object Label62: TLabel
|
||||||
|
Left = 3
|
||||||
|
Top = 5
|
||||||
|
Width = 74
|
||||||
|
Height = 16
|
||||||
|
Caption = #1058#1080#1087#1099' '#1089#1077#1090#1077#1081
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Tahoma'
|
||||||
|
Font.Style = [fsBold]
|
||||||
|
ParentFont = False
|
||||||
|
end
|
||||||
|
object Label63: TLabel
|
||||||
|
Left = 3
|
||||||
|
Top = 338
|
||||||
|
Width = 160
|
||||||
|
Height = 16
|
||||||
|
Caption = #1069#1083#1077#1084#1077#1085#1090#1099' '#1072#1088#1093#1080#1090#1077#1082#1090#1091#1088#1099
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Tahoma'
|
||||||
|
Font.Style = [fsBold]
|
||||||
|
ParentFont = False
|
||||||
|
end
|
||||||
|
object NTypTree: TRzCheckTree
|
||||||
|
Left = 3
|
||||||
|
Top = 24
|
||||||
|
Width = 290
|
||||||
|
Height = 297
|
||||||
|
OnStateChange = NTypTreeStateChange
|
||||||
|
Indent = 19
|
||||||
|
SelectionPen.Color = clBtnShadow
|
||||||
|
StateImages = NTypTree.CheckImages
|
||||||
|
TabOrder = 0
|
||||||
|
OnChange = NTypTreeChange
|
||||||
|
end
|
||||||
|
object ArchVTree: TRzCheckTree
|
||||||
|
Left = 3
|
||||||
|
Top = 360
|
||||||
|
Width = 290
|
||||||
|
Height = 229
|
||||||
|
OnStateChange = ArchVTreeStateChange
|
||||||
|
Indent = 19
|
||||||
|
SelectionPen.Color = clBtnShadow
|
||||||
|
StateImages = NTypTree.CheckImages
|
||||||
|
TabOrder = 1
|
||||||
|
OnChange = NTypTreeChange
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -3413,7 +3444,7 @@ object frm3D: Tfrm3D
|
|||||||
Left = 100
|
Left = 100
|
||||||
Top = 57
|
Top = 57
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C01013A00B0000C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C01013A00B000280310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
000000000000360000002800000040000000F0000000010020000000000000F0
|
000000000000360000002800000040000000F0000000010020000000000000F0
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
|||||||
@ -338,7 +338,7 @@ type
|
|||||||
N1: TMenuItem;
|
N1: TMenuItem;
|
||||||
N2: TMenuItem;
|
N2: TMenuItem;
|
||||||
sbView: TPanel;
|
sbView: TPanel;
|
||||||
RzPageControl1: TRzPageControl;
|
PNtTree: TRzPageControl;
|
||||||
TabSheet1: TRzTabSheet;
|
TabSheet1: TRzTabSheet;
|
||||||
TabSheet2: TRzTabSheet;
|
TabSheet2: TRzTabSheet;
|
||||||
cbViewCeiling: TCheckBox;
|
cbViewCeiling: TCheckBox;
|
||||||
@ -353,7 +353,12 @@ type
|
|||||||
edWallsTransparency: TEdit;
|
edWallsTransparency: TEdit;
|
||||||
Label53: TLabel;
|
Label53: TLabel;
|
||||||
RzSizePanel1: TRzSizePanel;
|
RzSizePanel1: TRzSizePanel;
|
||||||
DuplicateNodeTree: TTreeView; //Tolik Äåðåâî äóáëåé
|
DuplicateNodeTree: TTreeView;
|
||||||
|
TabSheet3: TRzTabSheet;
|
||||||
|
NTypTree: TRzCheckTree;
|
||||||
|
Label62: TLabel;
|
||||||
|
ArchVTree: TRzCheckTree;
|
||||||
|
Label63: TLabel; //Tolik Äåðåâî äóáëåé
|
||||||
|
|
||||||
procedure GLSceneViewerMouseDown(Sender: TObject;
|
procedure GLSceneViewerMouseDown(Sender: TObject;
|
||||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||||
@ -463,6 +468,12 @@ type
|
|||||||
const Rect: TRect);
|
const Rect: TRect);
|
||||||
procedure trWallTransparencyChange(Sender: TObject);
|
procedure trWallTransparencyChange(Sender: TObject);
|
||||||
procedure tbSetWallsTransparencyClick(Sender: TObject);
|
procedure tbSetWallsTransparencyClick(Sender: TObject);
|
||||||
|
procedure NTypTreeChange(Sender: TObject; Node: TTreeNode);
|
||||||
|
procedure Button1Click(Sender: TObject);
|
||||||
|
procedure NTypTreeStateChange(Sender: TObject; Node: TTreeNode;
|
||||||
|
NewState: TRzCheckState);
|
||||||
|
procedure ArchVTreeStateChange(Sender: TObject; Node: TTreeNode;
|
||||||
|
NewState: TRzCheckState);
|
||||||
private
|
private
|
||||||
//Tolik 27/05/25 --
|
//Tolik 27/05/25 --
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
@ -479,6 +490,9 @@ type
|
|||||||
procedure RotateConnModel(aObject: TGLFreeForm; aX, aY, aZ: Double);
|
procedure RotateConnModel(aObject: TGLFreeForm; aX, aY, aZ: Double);
|
||||||
procedure DeselectGLObjectsT;
|
procedure DeselectGLObjectsT;
|
||||||
public
|
public
|
||||||
|
//Tolik 01/09/2025 --
|
||||||
|
NetTypeArray: array of Integer;
|
||||||
|
//
|
||||||
{ Public declarations }
|
{ Public declarations }
|
||||||
//DuplicateNodeTree: TTreeView; //Tolik 07/05/2025 -- Ñïèñîê äóáëåé óçëîâ äëÿ ñîñòàâíûõ îáúåêòîâ, êîòîðûå ïîêàçûâàòü â äåðåâå
|
//DuplicateNodeTree: TTreeView; //Tolik 07/05/2025 -- Ñïèñîê äóáëåé óçëîâ äëÿ ñîñòàâíûõ îáúåêòîâ, êîòîðûå ïîêàçûâàòü â äåðåâå
|
||||||
// êîòîðûå ïîêàçûâàòü íå íàäî
|
// êîòîðûå ïîêàçûâàòü íå íàäî
|
||||||
@ -680,7 +694,7 @@ type
|
|||||||
function GetPosWithGridStep(aPos: Double): Double;
|
function GetPosWithGridStep(aPos: Double): Double;
|
||||||
|
|
||||||
procedure ApplyCutting;
|
procedure ApplyCutting;
|
||||||
procedure ApplyScsModel;
|
procedure ApplyScsModel(aOnClose: Boolean = False);
|
||||||
procedure ValidateActiveControl;
|
procedure ValidateActiveControl;
|
||||||
|
|
||||||
procedure CreateModel;
|
procedure CreateModel;
|
||||||
@ -2034,7 +2048,8 @@ Procedure Tfrm3D.UpdateFaces(Faces: TList; Yh: Double = 0; aFirstLoad: boolean =
|
|||||||
//const
|
//const
|
||||||
// clrBlack : TVector = (0, 0, 0, 1);
|
// clrBlack : TVector = (0, 0, 0, 1);
|
||||||
var
|
var
|
||||||
i, pCnt, pCntNormal, j, k, FigureID, glPointIndex: Integer;
|
CanAddNetType: Boolean;
|
||||||
|
i, pCnt, pCntNormal, j, k, l, FigureID, glPointIndex: Integer;
|
||||||
Face:TFaceRecord;
|
Face:TFaceRecord;
|
||||||
glPoly:TGLPolyGon;
|
glPoly:TGLPolyGon;
|
||||||
glLine: TGLLines;
|
glLine: TGLLines;
|
||||||
@ -3398,7 +3413,7 @@ var
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure AddLineCompon(aParentNode: TTreeNode; aCompon: TSCSComponent; aLine: TOrthoLine; a3DLine: T3dLine);
|
Procedure AddLineCompon(aParentNode: TTreeNode; aCompon: TSCSComponent; aLine: TOrthoLine; a3DLine: T3dLine);
|
||||||
var i: Integer;
|
var i, l: Integer;
|
||||||
currNode: TTreeNode;
|
currNode: TTreeNode;
|
||||||
dir_v: TVector3F;
|
dir_v: TVector3F;
|
||||||
LinearAngle, LinearAngle1: Double;
|
LinearAngle, LinearAngle1: Double;
|
||||||
@ -3877,6 +3892,23 @@ var
|
|||||||
|
|
||||||
if CanAddCompon then
|
if CanAddCompon then
|
||||||
begin
|
begin
|
||||||
|
//Tolik 02/09/2025 --
|
||||||
|
CanAddNetType := true;
|
||||||
|
for l := 0 to Length(NetTypeArray) - 1 do
|
||||||
|
begin
|
||||||
|
if NetTypeArray[l] = aCompon.IDNetType then
|
||||||
|
begin
|
||||||
|
CanAddNetType := False;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if CanAddNetType then
|
||||||
|
begin
|
||||||
|
SetLength(NetTypeArray, Length(NetTypeArray) + 1);
|
||||||
|
NetTypeArray[Length(NetTypeArray) - 1] := aCompon.IDNetType;
|
||||||
|
end;
|
||||||
|
//
|
||||||
F3DLineCompon := T3DLineComponent.Create(nil, nil,Self.F3DModel);
|
F3DLineCompon := T3DLineComponent.Create(nil, nil,Self.F3DModel);
|
||||||
Self.F3DModel.FScsObjects.Add(F3DLineCompon);
|
Self.F3DModel.FScsObjects.Add(F3DLineCompon);
|
||||||
childNode := ScsModelTree.Items.AddChild(aParentNode, aCompon.GetNameForVisible);
|
childNode := ScsModelTree.Items.AddChild(aParentNode, aCompon.GetNameForVisible);
|
||||||
@ -6760,7 +6792,7 @@ try
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
glPipe.Parts := [ppOutSide,ppInSide,ppStartDisk,ppStopDisk];
|
//glPipe.Parts := [ppOutSide,ppInSide,ppStartDisk,ppStopDisk];
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if Face.RecType = ftBar then
|
if Face.RecType = ftBar then
|
||||||
@ -6921,12 +6953,12 @@ try
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
//Tolik 19/03/2025 - èãðóøêà, ïîñìîòðåòü ëîòîê
|
//Tolik 19/03/2025 - èãðóøêà, ïîñìîòðåòü ëîòîê
|
||||||
glObject := TWireTray.Create(frm3D.DummyCube);
|
//glObject := TWireTray.Create(frm3D.DummyCube);
|
||||||
//TWireTray(glObject).BeginUpdate;
|
//TWireTray(glObject).BeginUpdate;
|
||||||
TWireTray(glObject).SetScene(GLScene);
|
//TWireTray(glObject).SetScene(GLScene);
|
||||||
TWireTray(glObject).Length := 100;
|
//TWireTray(glObject).Length := 100;
|
||||||
TWireTray(glObject).Width := 20;
|
//TWireTray(glObject).Width := 20;
|
||||||
TWireTray(glObject).Height := 20;
|
//TWireTray(glObject).Height := 20;
|
||||||
//TWireTray(glObject).EndUpdate;
|
//TWireTray(glObject).EndUpdate;
|
||||||
//
|
//
|
||||||
//// *********** FACES.COUNT *************************************************
|
//// *********** FACES.COUNT *************************************************
|
||||||
@ -7313,8 +7345,12 @@ end;
|
|||||||
*)
|
*)
|
||||||
|
|
||||||
procedure Tfrm3D.FormShow(Sender: TObject);
|
procedure Tfrm3D.FormShow(Sender: TObject);
|
||||||
|
var i, j: Integer;
|
||||||
|
RootNode, Node: TTreeNode;
|
||||||
|
Tree_proc : TRzCheckTreeChangeEvent; //Tolik 12/09/2025 --
|
||||||
|
|
||||||
Procedure SortChildsInBackOrder;
|
Procedure SortChildsInBackOrder;
|
||||||
var i: Integer;
|
var i, j: Integer;
|
||||||
FirstChild, CurrChild: TGLPlane;
|
FirstChild, CurrChild: TGLPlane;
|
||||||
begin
|
begin
|
||||||
for i := 0 to GLDummyCube1.Count - 1 do
|
for i := 0 to GLDummyCube1.Count - 1 do
|
||||||
@ -7422,6 +7458,47 @@ begin
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
//sbFirstFaceClick(nil);
|
//sbFirstFaceClick(nil);
|
||||||
|
//Tolik 04/09/2025 --
|
||||||
|
Tree_proc := NTypTree.OnStateChange; // 12/09/2025 - -
|
||||||
|
NTypTree.OnStateChange := nil;
|
||||||
|
|
||||||
|
NTypTree.Items.Clear;
|
||||||
|
if Length(NetTypeArray) > 0 then
|
||||||
|
begin
|
||||||
|
RootNode := NTypTree.Items.Add( nil, cexdAll);
|
||||||
|
for i := 0 to Length(NetTypeArray) - 1 do
|
||||||
|
begin
|
||||||
|
for j := 0 to F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).ID = NetTypeArray[i] then
|
||||||
|
begin
|
||||||
|
Node := NTypTree.Items.AddChild(RootNode, TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).Name);
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
NTypTree.DropTarget := RootNode;
|
||||||
|
NTypTree.DropTarget.Expand(false);
|
||||||
|
// ÷åêàåì âñå òèïû ñåòåé ïî óìîë÷àíèþ
|
||||||
|
if NTypTree.Items.Count > 1 then
|
||||||
|
begin
|
||||||
|
for i := 0 to NTypTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
Node := NTypTree.Items[i];
|
||||||
|
if Node.AbsoluteIndex <> 0 then
|
||||||
|
NTypTree.Itemstate[Node.AbsoluteIndex] := csChecked;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if NTypTree.Items.Count = 1 then
|
||||||
|
NTypTree.Itemstate[0] := csChecked;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// 12/09/2025 - -
|
||||||
|
NTypTree.OnStateChange := Tree_proc;
|
||||||
|
//
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Tfrm3D.GLHeightField1GetHeight(const x, y: Single; var z: Single;
|
procedure Tfrm3D.GLHeightField1GetHeight(const x, y: Single; var z: Single;
|
||||||
@ -8002,11 +8079,13 @@ var
|
|||||||
xSide: T3DSide;
|
xSide: T3DSide;
|
||||||
ItsRoof: Boolean;
|
ItsRoof: Boolean;
|
||||||
Str: string;
|
Str: string;
|
||||||
ip: TDoublePoint;
|
ip: TDoublePoint;
|
||||||
p: PDoublePoint;
|
p: PDoublePoint;
|
||||||
CornerNode: TTreeNode;
|
CornerNode: TTreeNode;
|
||||||
xCorner: T3DCorner;
|
xCorner: T3DCorner;
|
||||||
CornerName: string;
|
CornerName: string;
|
||||||
|
RootNode, Node, ModelNode: TTreeNode;
|
||||||
|
Tree_proc : TRzCheckTreeChangeEvent;//Tolik 12/09/2025 --
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
xSecondWall := nil;
|
xSecondWall := nil;
|
||||||
@ -8286,6 +8365,48 @@ begin
|
|||||||
{$IFEND}
|
{$IFEND}
|
||||||
//*****************\ROOF**********************
|
//*****************\ROOF**********************
|
||||||
end;
|
end;
|
||||||
|
//Tolik 11/09/2025 -- äåðåâî âêë/âûêë âûäèìîñòè àðõèòåêòóðû
|
||||||
|
Tree_proc := ArchVTree.OnStateChange;
|
||||||
|
ArchVTree.OnStateChange := nil; // 12/09/2025 Tolik
|
||||||
|
|
||||||
|
ArchVTree.Items.Clear;
|
||||||
|
|
||||||
|
RootNode := ArchVTree.Items.Add( nil, cexdAll);
|
||||||
|
for i := 0 to ModelTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TObject(ModelTree.Items[i].data) <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(ModelTree.Items[i].data) is TF_CAD then
|
||||||
|
begin
|
||||||
|
if ModelTree.Items[i].Count > 0 then
|
||||||
|
begin
|
||||||
|
Str := TF_CAD(ModelTree.Items[i].data).FCADListName + ' ' + IntToStr(TF_CAD(ModelTree.Items[i].data).FCADListIndex);
|
||||||
|
Node := ArchVTree.Items.AddChild(RootNode, Str);
|
||||||
|
Node.data := TF_CAD(ModelTree.Items[i].data);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
ArchVTree.DropTarget := RootNode;
|
||||||
|
ArchVTree.DropTarget.Expand(false);
|
||||||
|
// ÷åêàåì âñå òèïû ñåòåé ïî óìîë÷àíèþ
|
||||||
|
if ArchVTree.Items.Count > 1 then
|
||||||
|
begin
|
||||||
|
for i := 0 to ArchVTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
Node := ArchVTree.Items[i];
|
||||||
|
if Node.AbsoluteIndex <> 0 then
|
||||||
|
ArchVTree.Itemstate[Node.AbsoluteIndex] := csChecked;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if ArchVTree.Items.Count = 1 then
|
||||||
|
ArchVTree.Itemstate[0] := csChecked;
|
||||||
|
end;
|
||||||
|
|
||||||
|
ArchVTree.OnStateChange := Tree_proc; // 12/09/2025 Tolik
|
||||||
|
//
|
||||||
except
|
except
|
||||||
on E: Exception do AddExceptionToLogEx('Tfrm3D.UpdateModelTree', E.Message);
|
on E: Exception do AddExceptionToLogEx('Tfrm3D.UpdateModelTree', E.Message);
|
||||||
end;
|
end;
|
||||||
@ -9515,6 +9636,14 @@ var
|
|||||||
//
|
//
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
//Tolik 11/09/2025 -- àðõèòåêòóðà --
|
||||||
|
ArchVTree.Items.Clear;
|
||||||
|
RootNode := ArchVTree.Items.Add( nil, cexdAll);
|
||||||
|
ArchVTree.DropTarget := RootNode;
|
||||||
|
ArchVTree.DropTarget.Expand(false);
|
||||||
|
//
|
||||||
|
SetLength(NetTypeArray, 0); // Tolik 01/09/2025 -- ñïèñîê òèïîâ ñåòåé
|
||||||
|
|
||||||
FCadList := TList.Create; // Tolik 23/07/2025 -- ñïèñîê ëèñòîâ ïðîåêòà
|
FCadList := TList.Create; // Tolik 23/07/2025 -- ñïèñîê ëèñòîâ ïðîåêòà
|
||||||
SetLength(FFloorsHeightArray, 0); // ìàññèâ âûñîò ýòàæåé
|
SetLength(FFloorsHeightArray, 0); // ìàññèâ âûñîò ýòàæåé
|
||||||
//
|
//
|
||||||
@ -17513,9 +17642,27 @@ begin
|
|||||||
CanClose := True;
|
CanClose := True;
|
||||||
if CanClose then
|
if CanClose then
|
||||||
begin
|
begin
|
||||||
|
//Tolik 30/08/2025 --
|
||||||
|
if GisChangeFrom3D then
|
||||||
|
begin
|
||||||
|
if MessageModal(F3dMmes3, ApplicationName, MB_YESNO or MB_ICONQUESTION) = IDYES then
|
||||||
|
begin
|
||||||
|
ApplyScsModel(true);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
//LoadProjectUndoActions3D;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
DeleteProjectUndoActions3D;
|
||||||
|
end;
|
||||||
|
//
|
||||||
FreeAndNil(F3DModel);
|
FreeAndNil(F3DModel);
|
||||||
FIdsStream.Clear;
|
FIdsStream.Clear;
|
||||||
FFilesStream.Clear;
|
FFilesStream.Clear;
|
||||||
|
|
||||||
Gis3D := false; //Tolik 29/08/2025 --
|
Gis3D := false; //Tolik 29/08/2025 --
|
||||||
end;
|
end;
|
||||||
except
|
except
|
||||||
@ -18640,6 +18787,54 @@ begin
|
|||||||
ChangeDesc;
|
ChangeDesc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure Tfrm3D.Button1Click(Sender: TObject);
|
||||||
|
var i, j: integer;
|
||||||
|
fNode: TTreeNode;
|
||||||
|
NetId: integer;
|
||||||
|
begin
|
||||||
|
for i := 0 to NTypTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
fNode := NTypTree.Items[i];
|
||||||
|
|
||||||
|
if fNode.AbsoluteIndex <> 0 then
|
||||||
|
begin
|
||||||
|
NetId := -1;
|
||||||
|
|
||||||
|
for j := 0 to F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).Name = FNode.text then
|
||||||
|
begin
|
||||||
|
Netid := TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).ID;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Netid <> -1 then
|
||||||
|
begin
|
||||||
|
for j := 0 to DummyCube.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DummyCube.Children[j].TagObject <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dLineComponent then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
begin
|
||||||
|
if NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked then
|
||||||
|
DummyCube.Children[j].Visible := true
|
||||||
|
else
|
||||||
|
DummyCube.Children[j].Visible := false;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure Tfrm3D.NDel3DObjectClick(Sender: TObject);
|
procedure Tfrm3D.NDel3DObjectClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
@ -21782,7 +21977,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
// Tolik 04/12/2018 -- ñòàðàÿ çàêîììåí÷åíà -- ñì íèæå
|
// Tolik 04/12/2018 -- ñòàðàÿ çàêîììåí÷åíà -- ñì íèæå
|
||||||
procedure Tfrm3D.ApplyScsModel;
|
procedure Tfrm3D.ApplyScsModel(aOnClose: Boolean = False);
|
||||||
var
|
var
|
||||||
i, j, k: integer;
|
i, j, k: integer;
|
||||||
dp: T3DPoint;
|
dp: T3DPoint;
|
||||||
@ -22366,7 +22561,84 @@ begin
|
|||||||
FreeAndNil(UndoFormsList);
|
FreeAndNil(UndoFormsList);
|
||||||
EndProgress;
|
EndProgress;
|
||||||
// EndProgress;
|
// EndProgress;
|
||||||
SaveCurrProjectToUndoFiles(True);
|
//SaveCurrProjectToUndoFiles(True);
|
||||||
|
//Tolik 30/08/2025
|
||||||
|
GisChangeFrom3D := False; //ñáðîñèòü ôëàæîê èçìåíåíèé
|
||||||
|
if not aOnClose then // åñëè íå çàêðûòèå ôîðìû 3ä, òî ñäåëàòü ñëåïîê ïðîåêòà çàíîâî
|
||||||
|
begin
|
||||||
|
Gis3D := False;
|
||||||
|
DeleteProjectUndoActions3D;
|
||||||
|
SaveUndoProjBefore3D;
|
||||||
|
Gis3D := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tfrm3D.ArchVTreeStateChange(Sender: TObject; Node: TTreeNode;
|
||||||
|
NewState: TRzCheckState);
|
||||||
|
var i, j: integer;
|
||||||
|
CurrNode, ParentNode: TTreeNode;
|
||||||
|
SavedEvent: TglProgressEvent;
|
||||||
|
|
||||||
|
Procedure SetRoomVis(aNode: TTreeNode);
|
||||||
|
var i: integer;
|
||||||
|
begin
|
||||||
|
for i := 0 to aNode.Count - 1 do
|
||||||
|
begin
|
||||||
|
if aNode.Item[i].Count > 0 then
|
||||||
|
begin
|
||||||
|
SetRoomVis(aNode.Item[i]);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if TObject(aNode.Item[i].Data) is T3DSide then
|
||||||
|
begin
|
||||||
|
if T3DSide(aNode.Item[i].Data).FGLObject <> nil then
|
||||||
|
if T3DSide(aNode.Item[i].Data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DSide(aNode.Item[i].Data).FGLObject).Visible := (ArchVTree.Itemstate[Node.AbsoluteIndex] = csChecked);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
begin
|
||||||
|
if Node.Data <> nil then
|
||||||
|
begin
|
||||||
|
{SavedEvent := GlCadencer.OnProgress;
|
||||||
|
GlCadencer.OnProgress := nil;}
|
||||||
|
GlCadencer.Enabled := False;
|
||||||
|
GLScene.BeginUpdate;
|
||||||
|
DummyCube.BeginUpdate;
|
||||||
|
if TObject(node.data) is TF_CAD then
|
||||||
|
begin
|
||||||
|
for i := 0 to ModelTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if ModelTree.Items[i].Data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(ModelTree.Items[i].Data) is TF_CAD then
|
||||||
|
begin
|
||||||
|
if TF_CAD(ModelTree.Items[i].Data) = TF_CAD(node.data) then
|
||||||
|
begin
|
||||||
|
ParentNode := ModelTree.Items[i];
|
||||||
|
for j := 0 to ParentNode.Count - 1 do
|
||||||
|
begin
|
||||||
|
if ParentNode.Item[j].Count > 0 then
|
||||||
|
begin
|
||||||
|
SetRoomVis(ParentNode.Item[j]);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if TObject(ParentNode.Item[j].Data) is T3DSide then
|
||||||
|
begin
|
||||||
|
if T3DSide(ParentNode.Item[j].Data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DSide(ParentNode.Item[j].Data).FGLObject).Visible := (ArchVTree.Itemstate[Node.AbsoluteIndex] = csChecked);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
DummyCube.EndUpdate;
|
||||||
|
GLScene.EndUpdate;
|
||||||
|
GlCadencer.Enabled := True;
|
||||||
|
//GlCadencer.OnProgress := SavedEvent;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(*
|
(*
|
||||||
@ -22738,6 +23010,432 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure Tfrm3D.NTypTreeChange(Sender: TObject; Node: TTreeNode);
|
||||||
|
var i, j: integer;
|
||||||
|
fNode: TTreeNode;
|
||||||
|
NetId: integer;
|
||||||
|
begin
|
||||||
|
{ for i := 0 to NTypTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
fNode := NTypTree.Items[i];
|
||||||
|
|
||||||
|
if fNode.AbsoluteIndex <> 0 then
|
||||||
|
begin
|
||||||
|
NetId := -1;
|
||||||
|
|
||||||
|
for j := 0 to F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).Name = FNode.text then
|
||||||
|
begin
|
||||||
|
Netid := TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).ID;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Netid <> -1 then
|
||||||
|
begin
|
||||||
|
for j := 0 to DummyCube.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DummyCube.Children[j].TagObject <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dLineComponent then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
begin
|
||||||
|
if NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked then
|
||||||
|
DummyCube.Children[j].Visible := true
|
||||||
|
else
|
||||||
|
DummyCube.Children[j].Visible := false;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tfrm3D.NTypTreeStateChange(Sender: TObject; Node: TTreeNode;
|
||||||
|
NewState: TRzCheckState);
|
||||||
|
var i, j: integer;
|
||||||
|
fNode, CurrNode, ParentNode: TTreeNode;
|
||||||
|
NetId: integer;
|
||||||
|
LineNodesList, LineConnList: TList;
|
||||||
|
LineComponent: T3DLineComponent;
|
||||||
|
ObjVisible: Boolean;
|
||||||
|
Conn: T3DConnector;
|
||||||
|
SCSConnID: integer;
|
||||||
|
SavedProc: TGLProgressEvent;
|
||||||
|
|
||||||
|
begin
|
||||||
|
//SavedProc := GlCadencer.OnProgress;
|
||||||
|
//GLCadencer.OnProgress := nil;
|
||||||
|
GlCadencer.Enabled := False;
|
||||||
|
GLScene.BeginUpdate;
|
||||||
|
DummyCube.BeginUpdate;
|
||||||
|
|
||||||
|
LineNodesList := TList.Create;
|
||||||
|
LineConnList := TList.Create;
|
||||||
|
|
||||||
|
NetId := -1;
|
||||||
|
|
||||||
|
for j := 0 to F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).Name = Node.text then
|
||||||
|
begin
|
||||||
|
Netid := TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).ID;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if NetId <> -1 then
|
||||||
|
begin
|
||||||
|
for j := 0 to DummyCube.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DummyCube.Children[j].TagObject <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dLineComponent then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
begin
|
||||||
|
DummyCube.Children[j].Visible := (NTypTree.Itemstate[Node.AbsoluteIndex] = csChecked);
|
||||||
|
LineNodesList.Add(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
//11/09/2025 Tolik äëÿ ïîèíòîâ
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dConnector then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FConnType = ct_Full then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
TglBaseSceneObject(T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FGLObject).Visible := (NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
for I := 0 to LineNodesList.Count - 1 do
|
||||||
|
begin
|
||||||
|
currNode := TTreeNode(LineNodesList[i]); //
|
||||||
|
ParentNode := currNode.Parent;
|
||||||
|
while ParentNode.Level > 2 do
|
||||||
|
ParentNode := ParentNode.Parent; // Òðàññà
|
||||||
|
|
||||||
|
if ParentNode.Data <> nil then //åñëè ñ òðàññû âñå ñïðÿòàíî - òðàññó ñïðÿòàòü (è íàîáîðîò)
|
||||||
|
begin
|
||||||
|
ObjVisible := False;
|
||||||
|
for j := 0 to ParentNode.Count - 1 do
|
||||||
|
begin
|
||||||
|
if ParentNode.Item[j].Data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(ParentNode.Item[j].Data) is T3DLineComponent then
|
||||||
|
begin
|
||||||
|
if T3DLineComponent(ParentNode.Item[j].Data).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if TGLBaseSceneObject(T3DLineComponent(ParentNode.Item[j].Data).FGLObject).Visible then
|
||||||
|
begin
|
||||||
|
ObjVisible := True;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
TGLBaseSceneObject(T3DLine(ParentNode.Data).FGLObject).Visible := ObjVisible;
|
||||||
|
|
||||||
|
if T3DLine(ParentNode.Data).FJoinConnector1 <> nil then
|
||||||
|
begin
|
||||||
|
if LineConnList.IndexOf(T3DLine(ParentNode.Data).FJoinConnector1) = -1 then
|
||||||
|
LineConnList.Add(T3DLine(ParentNode.Data).FJoinConnector1);
|
||||||
|
end;
|
||||||
|
if T3DLine(ParentNode.Data).FJoinConnector2 <> nil then
|
||||||
|
begin
|
||||||
|
if LineConnList.IndexOf(T3DLine(ParentNode.Data).FJoinConnector2) = -1 then
|
||||||
|
LineConnList.Add(T3DLine(ParentNode.Data).FJoinConnector2);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//ñòûêè òðóá
|
||||||
|
for i := 0 to LineConnList.Count - 1 do
|
||||||
|
begin
|
||||||
|
Conn := T3dConnector(LineConnList[i]);
|
||||||
|
if Conn.FisPipeElement then
|
||||||
|
begin
|
||||||
|
ObjVisible := False;
|
||||||
|
for j := 0 to Conn.FJoinedLinesList.Count - 1 do
|
||||||
|
begin
|
||||||
|
if T3DLine(Conn.FJoinedLinesList[j]).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if TglBaseSceneObject(T3DLine(Conn.FJoinedLinesList[j]).FGLObject).Visible then
|
||||||
|
begin
|
||||||
|
ObjVisible := True;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//â îñíîâíîì äåðåâå
|
||||||
|
if Conn.FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
TglBaseSceneObject(Conn.FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Conn.FSCSComponID <> -1 then
|
||||||
|
begin
|
||||||
|
//
|
||||||
|
for j := 0 to SCSModelTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if SCSModelTree.Items[j].data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(SCSModelTree.Items[j].data) is T3DConnector then
|
||||||
|
begin
|
||||||
|
if T3DConnector(SCSModelTree.Items[j].data).FSCSComponID = Conn.FSCSComponID then
|
||||||
|
begin
|
||||||
|
if T3DConnector(SCSModelTree.Items[j].data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DConnector(SCSModelTree.Items[j].data).FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//â ñêðûòîì(ãäå äóáëèðóþòñÿ ïî àé-äè êîìïîíåíòà)
|
||||||
|
for j := 0 to DuplicateNodeTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DuplicateNodeTree.Items[j].data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(DuplicateNodeTree.Items[j].data) is T3DConnector then
|
||||||
|
begin
|
||||||
|
if T3DConnector(DuplicateNodeTree.Items[j].data).FSCSComponID = Conn.FSCSComponID then
|
||||||
|
begin
|
||||||
|
if T3DConnector(DuplicateNodeTree.Items[j].data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DConnector(DuplicateNodeTree.Items[j].data).FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Dummycube.EndUpdate;
|
||||||
|
GLScene.EndUpdate;
|
||||||
|
GlCadencer.Enabled := True;
|
||||||
|
//GLCadencer.OnProgress := SavedProc;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
(*
|
||||||
|
procedure Tfrm3D.NTypTreeStateChange(Sender: TObject; Node: TTreeNode;
|
||||||
|
NewState: TRzCheckState);
|
||||||
|
var i, j: integer;
|
||||||
|
fNode, CurrNode, ParentNode: TTreeNode;
|
||||||
|
NetId: integer;
|
||||||
|
LineNodesList, LineConnList: TList;
|
||||||
|
LineComponent: T3DLineComponent;
|
||||||
|
ObjVisible: Boolean;
|
||||||
|
Conn: T3DConnector;
|
||||||
|
SCSConnID: integer;
|
||||||
|
SavedProc: TGLProgressEvent;
|
||||||
|
|
||||||
|
begin
|
||||||
|
SavedProc := GlCadencer.OnProgress;
|
||||||
|
GLCadencer.OnProgress := nil;
|
||||||
|
|
||||||
|
GLScene.BeginUpdate;
|
||||||
|
DummyCube.BeginUpdate;
|
||||||
|
LineNodesList := TList.Create;
|
||||||
|
LineConnList := TList.Create;
|
||||||
|
|
||||||
|
for i := 0 to NTypTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
fNode := NTypTree.Items[i];
|
||||||
|
|
||||||
|
if fNode.AbsoluteIndex <> 0 then
|
||||||
|
begin
|
||||||
|
NetId := -1;
|
||||||
|
|
||||||
|
for j := 0 to F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes.Count - 1 do
|
||||||
|
begin
|
||||||
|
if TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).Name = FNode.text then
|
||||||
|
begin
|
||||||
|
Netid := TNBNetType(F_ProjMan.GSCSBase.CurrProject.Spravochnik.NetTypes[j]).ID;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Netid <> -1 then
|
||||||
|
begin
|
||||||
|
DummyCube.BeginUpdate; //11/09/2025 --Tolik
|
||||||
|
for j := 0 to DummyCube.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DummyCube.Children[j].TagObject <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dLineComponent then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dLineComponent(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
begin
|
||||||
|
DummyCube.Children[j].Visible := (NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked);
|
||||||
|
{
|
||||||
|
if NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked then
|
||||||
|
DummyCube.Children[j].Visible := true
|
||||||
|
else
|
||||||
|
DummyCube.Children[j].Visible := false;
|
||||||
|
}
|
||||||
|
LineNodesList.Add(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
//11/09/2025 Tolik äëÿ ïîèíòîâ
|
||||||
|
if TObject(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data) is T3dConnector then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FConnType = ct_Full then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon <> nil then
|
||||||
|
begin
|
||||||
|
if T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FSCSCompon.IDNetType = NetID then
|
||||||
|
TglBaseSceneObject(T3dConnector(TTreeNode(TGLBaseSceneObject(DummyCube.Children[j]).TagObject).Data).FGLObject).Visible := (NTypTree.Itemstate[FNode.AbsoluteIndex] = csChecked);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
DummyCube.EndUpdate; // 11/*09/2025 --
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
for I := 0 to LineNodesList.Count - 1 do
|
||||||
|
begin
|
||||||
|
currNode := TTreeNode(LineNodesList[i]); //
|
||||||
|
ParentNode := currNode.Parent;
|
||||||
|
while ParentNode.Level > 2 do
|
||||||
|
ParentNode := ParentNode.Parent; // Òðàññà
|
||||||
|
|
||||||
|
if ParentNode.Data <> nil then //åñëè ñ òðàññû âñå ñïðÿòàíî - òðàññó ñïðÿòàòü (è íàîáîðîò)
|
||||||
|
begin
|
||||||
|
ObjVisible := False;
|
||||||
|
for j := 0 to ParentNode.Count - 1 do
|
||||||
|
begin
|
||||||
|
if ParentNode.Item[j].Data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(ParentNode.Item[j].Data) is T3DLineComponent then
|
||||||
|
begin
|
||||||
|
if T3DLineComponent(ParentNode.Item[j].Data).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if TGLBaseSceneObject(T3DLineComponent(ParentNode.Item[j].Data).FGLObject).Visible then
|
||||||
|
begin
|
||||||
|
ObjVisible := True;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
TGLBaseSceneObject(T3DLine(ParentNode.Data).FGLObject).Visible := ObjVisible;
|
||||||
|
|
||||||
|
if T3DLine(ParentNode.Data).FJoinConnector1 <> nil then
|
||||||
|
begin
|
||||||
|
if LineConnList.IndexOf(T3DLine(ParentNode.Data).FJoinConnector1) = -1 then
|
||||||
|
LineConnList.Add(T3DLine(ParentNode.Data).FJoinConnector1);
|
||||||
|
end;
|
||||||
|
if T3DLine(ParentNode.Data).FJoinConnector2 <> nil then
|
||||||
|
begin
|
||||||
|
if LineConnList.IndexOf(T3DLine(ParentNode.Data).FJoinConnector2) = -1 then
|
||||||
|
LineConnList.Add(T3DLine(ParentNode.Data).FJoinConnector2);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//ñòûêè òðóá
|
||||||
|
for i := 0 to LineConnList.Count - 1 do
|
||||||
|
begin
|
||||||
|
Conn := T3dConnector(LineConnList[i]);
|
||||||
|
if Conn.FisPipeElement then
|
||||||
|
begin
|
||||||
|
ObjVisible := False;
|
||||||
|
for j := 0 to Conn.FJoinedLinesList.Count - 1 do
|
||||||
|
begin
|
||||||
|
if T3DLine(Conn.FJoinedLinesList[j]).FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
if TglBaseSceneObject(T3DLine(Conn.FJoinedLinesList[j]).FGLObject).Visible then
|
||||||
|
begin
|
||||||
|
ObjVisible := True;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//â îñíîâíîì äåðåâå
|
||||||
|
if Conn.FGLObject <> nil then
|
||||||
|
begin
|
||||||
|
TglBaseSceneObject(Conn.FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Conn.FSCSComponID <> -1 then
|
||||||
|
begin
|
||||||
|
//
|
||||||
|
for j := 0 to SCSModelTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if SCSModelTree.Items[j].data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(SCSModelTree.Items[j].data) is T3DConnector then
|
||||||
|
begin
|
||||||
|
if T3DConnector(SCSModelTree.Items[j].data).FSCSComponID = Conn.FSCSComponID then
|
||||||
|
begin
|
||||||
|
if T3DConnector(SCSModelTree.Items[j].data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DConnector(SCSModelTree.Items[j].data).FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//â ñêðûòîì(ãäå äóáëèðóþòñÿ ïî àé-äè êîìïîíåíòà)
|
||||||
|
for j := 0 to DuplicateNodeTree.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if DuplicateNodeTree.Items[j].data <> nil then
|
||||||
|
begin
|
||||||
|
if TObject(DuplicateNodeTree.Items[j].data) is T3DConnector then
|
||||||
|
begin
|
||||||
|
if T3DConnector(DuplicateNodeTree.Items[j].data).FSCSComponID = Conn.FSCSComponID then
|
||||||
|
begin
|
||||||
|
if T3DConnector(DuplicateNodeTree.Items[j].data).FGLObject <> nil then
|
||||||
|
TglBaseSceneObject(T3DConnector(DuplicateNodeTree.Items[j].data).FGLObject).Visible := ObjVisible;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Dummycube.EndUpdate;
|
||||||
|
GLScene.EndUpdate;
|
||||||
|
|
||||||
|
GLCadencer.OnProgress := SavedProc;
|
||||||
|
end;
|
||||||
|
*)
|
||||||
|
|
||||||
function Tfrm3D.GetPointToDivTrace(X, Y: Integer; aLine: TGLLines): T3DPoint;
|
function Tfrm3D.GetPointToDivTrace(X, Y: Integer; aLine: TGLLines): T3DPoint;
|
||||||
var
|
var
|
||||||
glCursor: TGLCustomSceneObject;
|
glCursor: TGLCustomSceneObject;
|
||||||
|
|||||||
@ -204,7 +204,8 @@ uses
|
|||||||
U_PortsReIndex in 'SCSNormBase\U_PortsReIndex.pas' {F_PortsReIndex},
|
U_PortsReIndex in 'SCSNormBase\U_PortsReIndex.pas' {F_PortsReIndex},
|
||||||
U_ELCommon in 'Main\U_ELCommon.pas' {/U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency},
|
U_ELCommon in 'Main\U_ELCommon.pas' {/U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency},
|
||||||
U_ShieldConfig in 'Main\U_ShieldConfig.pas' {/ Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;},
|
U_ShieldConfig in 'Main\U_ShieldConfig.pas' {/ Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;},
|
||||||
U_Reserv in 'Main\U_Reserv.pas' {F_Reserv};
|
U_Reserv in 'Main\U_Reserv.pas' {F_Reserv},
|
||||||
|
form3d in '..\POWERCAD30\UNITS\form3d.pas' {frm3D};
|
||||||
|
|
||||||
// Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;
|
// Tolik 16/03/2023 ôîðìàò ùèòêà äëÿ ìîíòàæíîé ñõåìû;
|
||||||
//U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency};
|
//U_SetWallTransparency in 'Main\U_SetWallTransparency.pas' {F_SetWallTransparency};
|
||||||
|
|||||||
@ -708,6 +708,9 @@
|
|||||||
<DCCReference Include="Main\U_Reserv.pas">
|
<DCCReference Include="Main\U_Reserv.pas">
|
||||||
<Form>F_Reserv</Form>
|
<Form>F_Reserv</Form>
|
||||||
</DCCReference>
|
</DCCReference>
|
||||||
|
<DCCReference Include="..\POWERCAD30\UNITS\form3d.pas">
|
||||||
|
<Form>frm3D</Form>
|
||||||
|
</DCCReference>
|
||||||
<BuildConfiguration Include="Release Telecom UKR Trial">
|
<BuildConfiguration Include="Release Telecom UKR Trial">
|
||||||
<Key>Cfg_10</Key>
|
<Key>Cfg_10</Key>
|
||||||
<CfgParent>Base</CfgParent>
|
<CfgParent>Base</CfgParent>
|
||||||
|
|||||||
@ -4181,6 +4181,11 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Caption = #1057#1086#1079#1076#1072#1090#1100' '#1084#1077#1078#1101#1090#1072#1078#1085#1091#1102' '#1074#1077#1088#1090#1080#1082#1072#1083#1100' '#1076#1086#1074#1077#1088#1093#1091
|
Caption = #1057#1086#1079#1076#1072#1090#1100' '#1084#1077#1078#1101#1090#1072#1078#1085#1091#1102' '#1074#1077#1088#1090#1080#1082#1072#1083#1100' '#1076#1086#1074#1077#1088#1093#1091
|
||||||
OnExecute = aCreateBFMagistralUpExecute
|
OnExecute = aCreateBFMagistralUpExecute
|
||||||
end
|
end
|
||||||
|
object ACreateFloorV: TAction
|
||||||
|
Category = #1052#1077#1085#1102' '#1057#1050#1057' '#1086#1073#1100#1077#1082#1090#1086#1074
|
||||||
|
Caption = #1057#1086#1079#1076#1072#1090#1100' '#1074#1077#1088#1090#1080#1082#1072#1083#1100' '#1085#1072' '#1074#1099#1089#1086#1090#1091' '#1101#1090#1072#1078#1072
|
||||||
|
OnExecute = ACreateFloorVExecute
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object PrintDialog: TPrintDialog
|
object PrintDialog: TPrintDialog
|
||||||
Left = 352
|
Left = 352
|
||||||
@ -5614,6 +5619,9 @@ object FSCS_Main: TFSCS_Main
|
|||||||
object pmCreateBFMagistralUp: TMenuItem
|
object pmCreateBFMagistralUp: TMenuItem
|
||||||
Action = aCreateBFMagistralUp
|
Action = aCreateBFMagistralUp
|
||||||
end
|
end
|
||||||
|
object pmCreateFloorV: TMenuItem
|
||||||
|
Action = ACreateFloorV
|
||||||
|
end
|
||||||
object pmiListRefreshDesignList: TMenuItem
|
object pmiListRefreshDesignList: TMenuItem
|
||||||
Action = aRefreshDesignList
|
Action = aRefreshDesignList
|
||||||
end
|
end
|
||||||
@ -5884,7 +5892,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 496
|
Left = 496
|
||||||
Top = 232
|
Top = 232
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C0101D2008C01C40310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C0101D2008C01D00310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
0000000000003600000028000000400000005003000001002000000000000050
|
0000000000003600000028000000400000005003000001002000000000000050
|
||||||
0300000000000000000000000000000000000000000000000000000000000000
|
0300000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -12894,7 +12902,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 248
|
Left = 248
|
||||||
Top = 280
|
Top = 280
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010123008C01DC0320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C010123008C01E80320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
0000000000003600000028000000800000009000000001002000000000000020
|
0000000000003600000028000000800000009000000001002000000000000020
|
||||||
0100000000000000000000000000000000000000000000000000000000000000
|
0100000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -15466,7 +15474,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 240
|
Left = 240
|
||||||
Top = 408
|
Top = 408
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010112008C01D0030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C010112008C01DC030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
000000000000360000002800000038000000460000000100200000000000403D
|
000000000000360000002800000038000000460000000100200000000000403D
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -19969,7 +19977,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 240
|
Left = 240
|
||||||
Top = 344
|
Top = 344
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C0101DE008C01B80618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C0101DE008C01C40618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
00000000000036000000280000006000000040050000010020000000000000E0
|
00000000000036000000280000006000000040050000010020000000000000E0
|
||||||
070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF
|
||||||
|
|||||||
@ -1190,6 +1190,8 @@ type
|
|||||||
pmCreateBFMagistralUp: TMenuItem;
|
pmCreateBFMagistralUp: TMenuItem;
|
||||||
aCreateBFMagistralDown: TAction;
|
aCreateBFMagistralDown: TAction;
|
||||||
aCreateBFMagistralUp: TAction;
|
aCreateBFMagistralUp: TAction;
|
||||||
|
ACreateFloorV: TAction;
|
||||||
|
pmCreateFloorV: TMenuItem;
|
||||||
|
|
||||||
// ACTIONs
|
// ACTIONs
|
||||||
// ñîçäàòü íîâûé ïðîåêò
|
// ñîçäàòü íîâûé ïðîåêò
|
||||||
@ -2007,6 +2009,7 @@ type
|
|||||||
procedure aCreateBFMagistralExecute(Sender: TObject);
|
procedure aCreateBFMagistralExecute(Sender: TObject);
|
||||||
procedure aCreateBFMagistralDownExecute(Sender: TObject);
|
procedure aCreateBFMagistralDownExecute(Sender: TObject);
|
||||||
procedure aCreateBFMagistralUpExecute(Sender: TObject);
|
procedure aCreateBFMagistralUpExecute(Sender: TObject);
|
||||||
|
procedure ACreateFloorVExecute(Sender: TObject);
|
||||||
|
|
||||||
{ procedure SelectAllLineObjsHint(var HintStr: String;
|
{ procedure SelectAllLineObjsHint(var HintStr: String;
|
||||||
var CanShow: Boolean);
|
var CanShow: Boolean);
|
||||||
@ -19632,6 +19635,63 @@ begin
|
|||||||
//
|
//
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFSCS_Main.ACreateFloorVExecute(Sender: TObject);
|
||||||
|
var i, ListIndex: integer;
|
||||||
|
x,y: Double;
|
||||||
|
FCad, SavedGcadForm: TF_Cad;
|
||||||
|
CadList: TList;
|
||||||
|
CreatedLine: TOrthoLine;
|
||||||
|
p1, p2: TDoublePoint;
|
||||||
|
SavedMoveWithRaise, SSGrid, SSN, SSG: Boolean;
|
||||||
|
SCSList: TSCSList;
|
||||||
|
begin
|
||||||
|
SavedMoveWithRaise := GMoveWithRaise;
|
||||||
|
GMoveWithRaise := False;
|
||||||
|
|
||||||
|
p1.x := GMouseDownPos.x;
|
||||||
|
p1.y := GMouseDOwnPos.y;
|
||||||
|
p1.z := 0;
|
||||||
|
|
||||||
|
p2.x := GMouseDownPos.x + 1;
|
||||||
|
p2.y := GMouseDOwnPos.y + 1;
|
||||||
|
p2.z := 0;
|
||||||
|
|
||||||
|
SSGrid := GCadForm.PCad.SnapToGrids;
|
||||||
|
SSN := GCadForm.PCad.SnapToNearPoint;
|
||||||
|
SSG := GCadForm.PCad.SnapToGuides;
|
||||||
|
|
||||||
|
GCadForm.PCad.SnapToGrids := False;
|
||||||
|
GCadForm.PCad.SnapToNearPoint := False;
|
||||||
|
GCadForm.PCad.SnapToGuides := False;
|
||||||
|
|
||||||
|
CreatedLine := CreateTraceByPoints(GCadForm.PCad, p1, p2);
|
||||||
|
CreatedLine.ActualZOrder[1] := 0;
|
||||||
|
TConnectorObject(CreatedLine.JoinConnector1).actualzOrder[1] := 0;
|
||||||
|
|
||||||
|
TConnectorObject(CreatedLine.JoinConnector2).MoveP(p1.x - p2.x, p1.y - p2.y, False, False);
|
||||||
|
CreatedLine.ActualZOrder[2] := GCadForm.FRoomHeight;
|
||||||
|
TConnectorObject(CreatedLine.JoinConnector2).actualzOrder[1] := GCadForm.FRoomHeight;
|
||||||
|
|
||||||
|
CreatedLine.LengthCalc;
|
||||||
|
CreatedLine.LineLength := CreatedLine.LengthCalc;
|
||||||
|
|
||||||
|
GCadForm.PCad.SnapToGrids := SSGrid;
|
||||||
|
GCadForm.PCad.SnapToNearPoint := SSN;
|
||||||
|
GCadForm.PCad.SnapToGuides := SSG;
|
||||||
|
|
||||||
|
GMoveWithRaise := SavedMoveWithRaise;
|
||||||
|
if GCadForm.cbManualCableTracingMode.Down then
|
||||||
|
begin
|
||||||
|
if F_NormBase.GSCSBase.SCSComponent <> nil then
|
||||||
|
begin
|
||||||
|
if F_NormBase.GSCSBase.SCSComponent.IsLine = biTrue then
|
||||||
|
begin
|
||||||
|
CopyComponentToSCSObject(CreatedLine.ID, F_NormBase.GSCSBase.SCSComponent.ID);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFSCS_Main.aCreateFloorRaiseDownExecute(Sender: TObject);
|
procedure TFSCS_Main.aCreateFloorRaiseDownExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
RaiseOnFigure: TConnectorObject;
|
RaiseOnFigure: TConnectorObject;
|
||||||
@ -20087,9 +20147,8 @@ begin
|
|||||||
//Tolik 11/07/2023 --
|
//Tolik 11/07/2023 --
|
||||||
//SaveCurrProjectToUndoFiles(true);
|
//SaveCurrProjectToUndoFiles(true);
|
||||||
//
|
//
|
||||||
prLists := GetAllProjNormLists;
|
SaveUndoProjBefore3D;
|
||||||
SaveForProjectUndo(prLists, true, false, true);
|
GIs3D := True;
|
||||||
prLists.Free;
|
|
||||||
//
|
//
|
||||||
BeginProgress;
|
BeginProgress;
|
||||||
if not Assigned(frm3D) then
|
if not Assigned(frm3D) then
|
||||||
@ -21794,9 +21853,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
G3DModelForProject := True;
|
G3DModelForProject := True;
|
||||||
//Tolik 29/08/2025 --
|
//Tolik 29/08/2025 --
|
||||||
|
SaveUndoProjBefore3D;
|
||||||
GIs3D := True;
|
GIs3D := True;
|
||||||
GisChangeFrom3D := False;
|
GisChangeFrom3D := False;
|
||||||
SaveUndoProjBefore3D;
|
|
||||||
//
|
//
|
||||||
BeginProgress;
|
BeginProgress;
|
||||||
if not Assigned(frm3D) then
|
if not Assigned(frm3D) then
|
||||||
@ -22107,6 +22167,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
SubstrateFileList.Free;
|
SubstrateFileList.Free;
|
||||||
|
(*
|
||||||
if G3dUndoActList.Count > 0 then
|
if G3dUndoActList.Count > 0 then
|
||||||
begin
|
begin
|
||||||
j := G3dUndoActList.Count;
|
j := G3dUndoActList.Count;
|
||||||
@ -22117,7 +22178,6 @@ begin
|
|||||||
GCadForm.SCSUndoNormalList(true);
|
GCadForm.SCSUndoNormalList(true);
|
||||||
dec(j);
|
dec(j);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
for j := G3dUndoActList.Count - 1 downto 0 do
|
for j := G3dUndoActList.Count - 1 downto 0 do
|
||||||
begin
|
begin
|
||||||
@ -22126,6 +22186,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
}
|
}
|
||||||
end;
|
end;
|
||||||
|
*)
|
||||||
|
|
||||||
FreeAndNil(G3dUndoList); // Tolik 18/07/2025 --
|
FreeAndNil(G3dUndoList); // Tolik 18/07/2025 --
|
||||||
FreeAndNil(G3dUndoActList); // Tolik 18/07/2025 --
|
FreeAndNil(G3dUndoActList); // Tolik 18/07/2025 --
|
||||||
//
|
//
|
||||||
|
|||||||
@ -7112,12 +7112,14 @@ begin
|
|||||||
FSCS_Main.pmCreateBFMagistral.Visible := True;
|
FSCS_Main.pmCreateBFMagistral.Visible := True;
|
||||||
FSCS_Main.pmCreateBFMagistralUp.Visible := True;
|
FSCS_Main.pmCreateBFMagistralUp.Visible := True;
|
||||||
FSCS_Main.pmCreateBFMagistralDown.Visible := True;
|
FSCS_Main.pmCreateBFMagistralDown.Visible := True;
|
||||||
|
FSCS_Main.pmCreateFloorV.Visible := True;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
FSCS_Main.pmCreateBFMagistral.Visible := False;
|
FSCS_Main.pmCreateBFMagistral.Visible := False;
|
||||||
FSCS_Main.pmCreateBFMagistralUp.Visible := False;
|
FSCS_Main.pmCreateBFMagistralUp.Visible := False;
|
||||||
FSCS_Main.pmCreateBFMagistralDown.Visible := False;
|
FSCS_Main.pmCreateBFMagistralDown.Visible := False;
|
||||||
|
FSCS_Main.pmCreateFloorV.Visible := False;
|
||||||
end;
|
end;
|
||||||
//
|
//
|
||||||
|
|
||||||
@ -11346,6 +11348,8 @@ var
|
|||||||
SaveGCadRefreshFlag: boolean;
|
SaveGCadRefreshFlag: boolean;
|
||||||
begin
|
begin
|
||||||
Result := nil;
|
Result := nil;
|
||||||
|
if Gis3D then //Tolik 30/08/2025 -- çàëî÷èòü, ïîêà þçàåòñÿ 3Ä âèä
|
||||||
|
exit;
|
||||||
//Tolik 16/08/2021 --
|
//Tolik 16/08/2021 --
|
||||||
GetPathToSCSCADDir;
|
GetPathToSCSCADDir;
|
||||||
GetPathToSCSUndoDir;
|
GetPathToSCSUndoDir;
|
||||||
@ -11422,19 +11426,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
ListUndoAction := TListUndoAction.Create(aType, aSavePM);
|
ListUndoAction := TListUndoAction.Create(aType, aSavePM);
|
||||||
// çàïèñàòü ïîñëåäíåå èçìåíåíèå â ôàéë, íàçâàíèå â FUndoList
|
if a3D then
|
||||||
Count := FSCSUndoList.Count;
|
begin
|
||||||
// SetUndoName := FUndoDir + FCADListName + IntTostr(FCADListIndex) + '_' + IntToStr(Count);
|
Count := G3dUndoList.Count;
|
||||||
//Tolik 18/07/2025 --
|
SetUndoName := FUndoDir + '3D\'+ FCADListFileName + '_' + IntToStr(Count);
|
||||||
{ if a3d then
|
|
||||||
SetUndoName := FUndoDir + '3D\'+ FCADListFileName + '_' + IntToStr(Count)
|
if not DirectoryExists(FUndoDir + '3D\') then
|
||||||
else}
|
CreateDir(FUndoDir + '3D\');
|
||||||
SetUndoName := FUndoDir + FCADListFileName + '_' + IntToStr(Count);
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
// çàïèñàòü ïîñëåäíåå èçìåíåíèå â ôàéë, íàçâàíèå â FUndoList
|
||||||
|
Count := FSCSUndoList.Count;
|
||||||
|
// SetUndoName := FUndoDir + FCADListName + IntTostr(FCADListIndex) + '_' + IntToStr(Count);
|
||||||
|
//Tolik 18/07/2025 --
|
||||||
|
{if a3d then
|
||||||
|
SetUndoName := FUndoDir + '3D\'+ FCADListFileName + '_' + IntToStr(Count)
|
||||||
|
else}
|
||||||
|
SetUndoName := FUndoDir + FCADListFileName + '_' + IntToStr(Count);
|
||||||
|
end;
|
||||||
// ñîõðàíèòü â ñïèñîê ôàéëîâ
|
// ñîõðàíèòü â ñïèñîê ôàéëîâ
|
||||||
ListUndoAction.FCadFileName := SetUndoName;
|
ListUndoAction.FCadFileName := SetUndoName;
|
||||||
ListUndoAction.FIndex := Count;
|
ListUndoAction.FIndex := Count;
|
||||||
ListUndoAction.FIsProject := aIsProject;
|
ListUndoAction.FIsProject := aIsProject;
|
||||||
FSCSUndoList.Add(ListUndoAction);
|
|
||||||
|
if a3D then
|
||||||
|
G3dUndoList.Add(ListUndoAction)
|
||||||
|
else
|
||||||
|
FSCSUndoList.Add(ListUndoAction);
|
||||||
|
|
||||||
// ñîõðàíèòü â òåìïîâûé ôàéë
|
// ñîõðàíèòü â òåìïîâûé ôàéë
|
||||||
FUndoFiguresList.Clear;
|
FUndoFiguresList.Clear;
|
||||||
|
|||||||
@ -1357,6 +1357,7 @@ type
|
|||||||
Procedure CreateBFMagistralTr(aFull: Boolean = true; aDown: Boolean = False; aUp: Boolean = False; aCompon: TSCSComponent = nil);
|
Procedure CreateBFMagistralTr(aFull: Boolean = true; aDown: Boolean = False; aUp: Boolean = False; aCompon: TSCSComponent = nil);
|
||||||
function GetAllProjNormLists: TList; // Tolik 29/08/2025 --
|
function GetAllProjNormLists: TList; // Tolik 29/08/2025 --
|
||||||
procedure SaveUndoProjBefore3D; // Tolik 29/08/2025 --
|
procedure SaveUndoProjBefore3D; // Tolik 29/08/2025 --
|
||||||
|
Procedure DeleteProjectUndoActions3D; // Tolik 30/08/2025 --
|
||||||
//
|
//
|
||||||
const
|
const
|
||||||
{$IF Defined(SCS_PANDUIT) or Defined(SCS_PE)}
|
{$IF Defined(SCS_PANDUIT) or Defined(SCS_PE)}
|
||||||
@ -1774,6 +1775,34 @@ uses USCS_Main, Menus, U_main, U_MasterNewList, U_MasterNewListLite, U_AutoTrace
|
|||||||
U_InputRadio, U_BaseConstants,
|
U_InputRadio, U_BaseConstants,
|
||||||
cxSpinEdit, Printers, PCPanel, U_InputMark, U_PEAutotraceDialog{Tolik}, U_SCSClasses, U_MakeEditCrossConnection, U_DimLineDialog, U_ResourceReport;
|
cxSpinEdit, Printers, PCPanel, U_InputMark, U_PEAutotraceDialog{Tolik}, U_SCSClasses, U_MakeEditCrossConnection, U_DimLineDialog, U_ResourceReport;
|
||||||
|
|
||||||
|
//Tolik 30/08/2025 -- ñáðîñèòü ñëåïîê ïðîåêòà äëÿ 3Ä
|
||||||
|
Procedure DeleteProjectUndoActions3D;
|
||||||
|
var ProjectUndoAction: TProjectUndoAction;
|
||||||
|
ListUndoAction: TListUndoAction;
|
||||||
|
Undo3DdirNam: String;
|
||||||
|
begin
|
||||||
|
Undo3DdirNam := GCadForm.FUndodir + '\3D\';
|
||||||
|
if DirectoryExists(Undo3DdirNam) then
|
||||||
|
FullRemoveDir(Undo3DdirNam, true, true);
|
||||||
|
if G3dUndoActList <> nil then
|
||||||
|
begin
|
||||||
|
While G3dUndoActList.Count > 0 do
|
||||||
|
begin
|
||||||
|
TProjectUndoAction(G3dUndoActList[0]).free;
|
||||||
|
G3dUndoActList.delete(0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if G3dUndoList <> nil then
|
||||||
|
begin
|
||||||
|
while G3dUndoList.Count > 0 do
|
||||||
|
begin
|
||||||
|
TListUndoAction(G3dUndoList[0]).free;
|
||||||
|
G3dUndoList.delete(0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
//Tolik 29/08/2025 --
|
//Tolik 29/08/2025 --
|
||||||
function GetAllProjNormLists: TList; // Tolik 29/08/2025 --
|
function GetAllProjNormLists: TList; // Tolik 29/08/2025 --
|
||||||
var i: integer;
|
var i: integer;
|
||||||
@ -1794,7 +1823,6 @@ uses USCS_Main, Menus, U_main, U_MasterNewList, U_MasterNewListLite, U_AutoTrace
|
|||||||
procedure SaveUndoProjBefore3D;
|
procedure SaveUndoProjBefore3D;
|
||||||
var prLists: TList;
|
var prLists: TList;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
prLists := GetAllProjNormLists;
|
prLists := GetAllProjNormLists;
|
||||||
SaveForProjectUndo(prLists, true, false, true);
|
SaveForProjectUndo(prLists, true, false, true);
|
||||||
prLists.Free;
|
prLists.Free;
|
||||||
@ -1810,6 +1838,8 @@ uses USCS_Main, Menus, U_main, U_MasterNewList, U_MasterNewListLite, U_AutoTrace
|
|||||||
p1, p2: TDoublePoint;
|
p1, p2: TDoublePoint;
|
||||||
SavedMoveWithRaise, SSGrid, SSN, SSG: Boolean;
|
SavedMoveWithRaise, SSGrid, SSN, SSG: Boolean;
|
||||||
SCSList: TSCSList;
|
SCSList: TSCSList;
|
||||||
|
//11/09/2025
|
||||||
|
ObjParams: TObjectParams;
|
||||||
begin
|
begin
|
||||||
CadList := TList.Create;
|
CadList := TList.Create;
|
||||||
//Full
|
//Full
|
||||||
@ -1897,6 +1927,24 @@ uses USCS_Main, Menus, U_main, U_MasterNewList, U_MasterNewListLite, U_AutoTrace
|
|||||||
CreatedLine.ActualZOrder[2] := GCadForm.FRoomHeight;
|
CreatedLine.ActualZOrder[2] := GCadForm.FRoomHeight;
|
||||||
TConnectorObject(CreatedLine.JoinConnector2).actualzOrder[1] := GCadForm.FRoomHeight;
|
TConnectorObject(CreatedLine.JoinConnector2).actualzOrder[1] := GCadForm.FRoomHeight;
|
||||||
|
|
||||||
|
CreatedLine.Name := cCadClasses_Mes32;
|
||||||
|
SetNewObjectNameInPM(CreatedLine.ID, CreatedLine.Name);
|
||||||
|
ObjParams := GetFigureParams(CreatedLine.ID);
|
||||||
|
//11/09/2025--
|
||||||
|
CreatedLine.Name := ObjParams.Name;
|
||||||
|
CreatedLine.FIndex := ObjParams.MarkID;
|
||||||
|
CreatedLine.FIsVertical := True;
|
||||||
|
|
||||||
|
CreatedLine.CalculLength := CreatedLine.LengthCalc;
|
||||||
|
CreatedLine.LineLength := CreatedLine.CalculLength;
|
||||||
|
SetLineFigureLengthInPM(CreatedLine.ID, CreatedLine.LineLength);
|
||||||
|
CreatedLine.ReCreateCaptionsGroup(True, false);
|
||||||
|
CreatedLine.UpdateLengthTextBox(True, false);
|
||||||
|
CreatedLine.ReCreateNotesGroup(True);
|
||||||
|
CreatedLine.ShowCaptions := False;
|
||||||
|
CreatedLine.ShowNotes := False;
|
||||||
|
CreatedLine.IsShowBlock := False;
|
||||||
|
|
||||||
CreatedLine.LengthCalc;
|
CreatedLine.LengthCalc;
|
||||||
CreatedLine.LineLength := CreatedLine.LengthCalc;
|
CreatedLine.LineLength := CreatedLine.LengthCalc;
|
||||||
|
|
||||||
@ -48754,45 +48802,79 @@ begin
|
|||||||
try
|
try
|
||||||
SaveGCadRefreshFlag := GCanRefreshCad;
|
SaveGCadRefreshFlag := GCanRefreshCad;
|
||||||
GCanRefreshCad := false;
|
GCanRefreshCad := false;
|
||||||
|
if a3D then
|
||||||
if GUndoList = nil then
|
|
||||||
GUndoList := TList.Create;
|
|
||||||
ProjectUndoAction := TProjectUndoAction.create;
|
|
||||||
|
|
||||||
SavedGCadForm := GCadForm;
|
|
||||||
for i := 0 to aLists.Count - 1 do
|
|
||||||
begin
|
begin
|
||||||
vList := TF_CAD(aLists[i]);
|
if G3dUndoActList = nil then
|
||||||
GCadForm := vList;
|
G3dUndoActList := TList.Create;
|
||||||
|
if G3dUndoList = nil then
|
||||||
|
G3dUndoList := TList.Create;
|
||||||
|
|
||||||
ListUndoAction := nil; //#From Oleg# //14.09.2010
|
ProjectUndoAction := TProjectUndoAction.create;
|
||||||
//
|
|
||||||
if vList.FListType = lt_Normal then
|
|
||||||
ListUndoAction := vList.SaveForUndoNormalList(uat_Floor, aSavePM, aIsProject, i, a3D)
|
|
||||||
else
|
|
||||||
if vList.FListType = lt_ProjectPlan then
|
|
||||||
ListUndoAction := vList.SaveForUndoProjectPlan(uat_Floor, aSavePM, aIsProject, i, a3D)
|
|
||||||
else
|
|
||||||
if vList.FListType = lt_DesignBox then
|
|
||||||
ListUndoAction := vList.SaveForUndoDesignList(uat_Floor, aSavePM, aIsProject, i, a3d)
|
|
||||||
// Tolik 12/02/2021 --
|
|
||||||
else
|
|
||||||
if vList.FListType = lt_ElScheme then
|
|
||||||
ListUndoAction := vList.SaveForUndoELScheme(uat_Floor, aSavePM, aIsProject, i, a3d);
|
|
||||||
|
|
||||||
// ListUndoAction := vList.SaveForUndo(uat_Floor, aSavePM, aIsProject, i);
|
SavedGCadForm := GCadForm;
|
||||||
//
|
for i := 0 to aLists.Count - 1 do
|
||||||
if ListUndoAction <> nil then
|
|
||||||
begin
|
begin
|
||||||
ListUndoAction.FProjectUndoAction := ProjectUndoAction;
|
vList := TF_CAD(aLists[i]);
|
||||||
LinkUndoObject := TLinkUndoObject.create;
|
GCadForm := vList;
|
||||||
LinkUndoObject.FCad := vList;
|
|
||||||
LinkUndoObject.FListUndoAction := ListUndoAction;
|
ListUndoAction := nil; //#From Oleg# //14.09.2010
|
||||||
ProjectUndoAction.FLinkUndoObject.Add(LinkUndoObject);
|
//
|
||||||
|
if vList.FListType = lt_Normal then
|
||||||
|
ListUndoAction := vList.SaveForUndoNormalList(uat_Floor, aSavePM, aIsProject, i, a3D);
|
||||||
|
|
||||||
|
if ListUndoAction <> nil then
|
||||||
|
begin
|
||||||
|
ListUndoAction.FProjectUndoAction := ProjectUndoAction;
|
||||||
|
LinkUndoObject := TLinkUndoObject.create;
|
||||||
|
LinkUndoObject.FCad := vList;
|
||||||
|
LinkUndoObject.FListUndoAction := ListUndoAction;
|
||||||
|
ProjectUndoAction.FLinkUndoObject.Add(LinkUndoObject);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
GCadForm := SavedGCadForm;
|
||||||
|
G3dUndoActList.Add(ProjectUndoAction);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if GUndoList = nil then
|
||||||
|
GUndoList := TList.Create;
|
||||||
|
ProjectUndoAction := TProjectUndoAction.create;
|
||||||
|
|
||||||
|
SavedGCadForm := GCadForm;
|
||||||
|
for i := 0 to aLists.Count - 1 do
|
||||||
|
begin
|
||||||
|
vList := TF_CAD(aLists[i]);
|
||||||
|
GCadForm := vList;
|
||||||
|
|
||||||
|
ListUndoAction := nil; //#From Oleg# //14.09.2010
|
||||||
|
//
|
||||||
|
if vList.FListType = lt_Normal then
|
||||||
|
ListUndoAction := vList.SaveForUndoNormalList(uat_Floor, aSavePM, aIsProject, i, a3D)
|
||||||
|
else
|
||||||
|
if vList.FListType = lt_ProjectPlan then
|
||||||
|
ListUndoAction := vList.SaveForUndoProjectPlan(uat_Floor, aSavePM, aIsProject, i, a3D)
|
||||||
|
else
|
||||||
|
if vList.FListType = lt_DesignBox then
|
||||||
|
ListUndoAction := vList.SaveForUndoDesignList(uat_Floor, aSavePM, aIsProject, i, a3d)
|
||||||
|
// Tolik 12/02/2021 --
|
||||||
|
else
|
||||||
|
if vList.FListType = lt_ElScheme then
|
||||||
|
ListUndoAction := vList.SaveForUndoELScheme(uat_Floor, aSavePM, aIsProject, i, a3d);
|
||||||
|
|
||||||
|
// ListUndoAction := vList.SaveForUndo(uat_Floor, aSavePM, aIsProject, i);
|
||||||
|
//
|
||||||
|
if ListUndoAction <> nil then
|
||||||
|
begin
|
||||||
|
ListUndoAction.FProjectUndoAction := ProjectUndoAction;
|
||||||
|
LinkUndoObject := TLinkUndoObject.create;
|
||||||
|
LinkUndoObject.FCad := vList;
|
||||||
|
LinkUndoObject.FListUndoAction := ListUndoAction;
|
||||||
|
ProjectUndoAction.FLinkUndoObject.Add(LinkUndoObject);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
GCadForm := SavedGCadForm;
|
||||||
|
GUndoList.Add(ProjectUndoAction);
|
||||||
end;
|
end;
|
||||||
GCadForm := SavedGCadForm;
|
|
||||||
GUndoList.Add(ProjectUndoAction);
|
|
||||||
except
|
except
|
||||||
on E: Exception do addExceptionToLogEx('U_Common.SaveForProjectUndo', E.Message);
|
on E: Exception do addExceptionToLogEx('U_Common.SaveForProjectUndo', E.Message);
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -3185,6 +3185,7 @@ const
|
|||||||
cRenewRackDesign = 'Обновить дизайн шкафа?'; // Tolik 23/06/2021 --
|
cRenewRackDesign = 'Обновить дизайн шкафа?'; // Tolik 23/06/2021 --
|
||||||
F3dMmes1 = 'Левая клавиша мыши - вращение листа. Правая - перемещение.Скролл - увел./уменьш. (зум)';
|
F3dMmes1 = 'Левая клавиша мыши - вращение листа. Правая - перемещение.Скролл - увел./уменьш. (зум)';
|
||||||
F3dMmes2 = 'Недоступно в режиме просмотра "От первого лица"!'; // Tolik 08/12/2023
|
F3dMmes2 = 'Недоступно в режиме просмотра "От первого лица"!'; // Tolik 08/12/2023
|
||||||
|
F3dMmes3 = 'Применить изменения?'; //Tolik 30/08/2025 --
|
||||||
Trace_Mess = 'Задайте высоту трассы, которая будет использоваться по умолчанию, ';
|
Trace_Mess = 'Задайте высоту трассы, которая будет использоваться по умолчанию, ';
|
||||||
Trace_Mess_1 = '(вы сможете её изменить в Настройках проекта CTRL-F2)';
|
Trace_Mess_1 = '(вы сможете её изменить в Настройках проекта CTRL-F2)';
|
||||||
Trace_Mess1 = 'Задайте высоту трассы';
|
Trace_Mess1 = 'Задайте высоту трассы';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user