First commit

This commit is contained in:
Anatoly 2025-08-25 09:51:59 +03:00
parent 000979b6df
commit 1a5ebfcff8
7 changed files with 334 additions and 46 deletions

View File

@ -40,8 +40,6 @@ object frm3D: Tfrm3D
Align = alClient Align = alClient
Caption = 'Panel2' Caption = 'Panel2'
TabOrder = 0 TabOrder = 0
ExplicitWidth = 1360
ExplicitHeight = 705
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 1338 Left = 1338
Top = 42 Top = 42
@ -61,7 +59,6 @@ object frm3D: Tfrm3D
BevelOuter = bvNone BevelOuter = bvNone
Color = 15329769 Color = 15329769
TabOrder = 0 TabOrder = 0
ExplicitWidth = 1358
DesignSize = ( DesignSize = (
1340 1340
41) 41)
@ -219,8 +216,6 @@ object frm3D: Tfrm3D
Align = alClient Align = alClient
BevelInner = bvLowered BevelInner = bvLowered
TabOrder = 1 TabOrder = 1
ExplicitWidth = 1035
ExplicitHeight = 662
object Panel3: TPanel object Panel3: TPanel
Left = 2 Left = 2
Top = 2 Top = 2
@ -231,8 +226,6 @@ object frm3D: Tfrm3D
Ctl3D = False Ctl3D = False
ParentCtl3D = False ParentCtl3D = False
TabOrder = 0 TabOrder = 0
ExplicitWidth = 1031
ExplicitHeight = 658
object GLSceneViewer: TGLSceneViewer object GLSceneViewer: TGLSceneViewer
Left = 0 Left = 0
Top = 0 Top = 0
@ -249,8 +242,6 @@ object frm3D: Tfrm3D
OnMouseMove = GLSceneViewerMouseMove OnMouseMove = GLSceneViewerMouseMove
OnMouseUp = GLSceneViewerMouseUp OnMouseUp = GLSceneViewerMouseUp
TabOrder = 0 TabOrder = 0
ExplicitWidth = 1031
ExplicitHeight = 613
end end
object StatusBar1: TStatusBar object StatusBar1: TStatusBar
Left = 0 Left = 0
@ -263,8 +254,6 @@ object frm3D: Tfrm3D
Width = 50 Width = 50
end> end>
OnDrawPanel = StatusBar1DrawPanel OnDrawPanel = StatusBar1DrawPanel
ExplicitTop = 633
ExplicitWidth = 1031
end end
object sbView: TPanel object sbView: TPanel
Left = 0 Left = 0
@ -276,8 +265,6 @@ object frm3D: Tfrm3D
BevelInner = bvLowered BevelInner = bvLowered
Locked = True Locked = True
TabOrder = 2 TabOrder = 2
ExplicitTop = 613
ExplicitWidth = 1031
end end
end end
end end
@ -292,8 +279,6 @@ object frm3D: Tfrm3D
SizeBarWidth = 7 SizeBarWidth = 7
TabOrder = 2 TabOrder = 2
VisualStyle = vsClassic VisualStyle = vsClassic
ExplicitLeft = 1036
ExplicitHeight = 662
object RzPageControl1: TRzPageControl object RzPageControl1: TRzPageControl
AlignWithMargins = True AlignWithMargins = True
Left = 16 Left = 16
@ -306,11 +291,9 @@ object frm3D: Tfrm3D
TabIndex = 0 TabIndex = 0
TabOrder = 0 TabOrder = 0
TabStyle = tsSquareCorners TabStyle = tsSquareCorners
ExplicitHeight = 654
FixedDimension = 19 FixedDimension = 19
object TabSheet1: TRzTabSheet object TabSheet1: TRzTabSheet
Caption = #1052#1086#1076#1077#1083#1100 Caption = #1052#1086#1076#1077#1083#1100
ExplicitHeight = 628
object panObjects: TPanel object panObjects: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -325,7 +308,6 @@ object frm3D: Tfrm3D
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
ExplicitHeight = 628
object Splitter2: TSplitter object Splitter2: TSplitter
Left = 2 Left = 2
Top = 155 Top = 155
@ -349,10 +331,12 @@ object frm3D: Tfrm3D
TabOrder = 0 TabOrder = 0
TabStyle = tsRoundCorners TabStyle = tsRoundCorners
OnTabClick = pcTreeTabClick OnTabClick = pcTreeTabClick
ExplicitHeight = 171
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 ExplicitHeight = 145
object cxGroupBox1: TcxGroupBox object cxGroupBox1: TcxGroupBox
Left = 0 Left = 0
@ -435,12 +419,10 @@ object frm3D: Tfrm3D
000000000000000000000001067200650072006500720065002C000000000000 000000000000000000000001067200650072006500720065002C000000000000
0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072 0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072
007200650072006500} 007200650072006500}
ExplicitHeight = 98
end end
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
ExplicitHeight = 145
object cxGroupBox2: TcxGroupBox object cxGroupBox2: TcxGroupBox
Left = 0 Left = 0
Top = 0 Top = 0
@ -522,7 +504,6 @@ object frm3D: Tfrm3D
000000000000000000000001067200650072006500720065002C000000000000 000000000000000000000001067200650072006500720065002C000000000000
0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072 0000000000FFFFFFFFFFFFFFFF00000000000000000000000001077200650072
007200650072006500} 007200650072006500}
ExplicitHeight = 98
end end
object DuplicateNodeTree: TTreeView object DuplicateNodeTree: TTreeView
Left = 160 Left = 160
@ -544,10 +525,13 @@ object frm3D: Tfrm3D
TabIndex = 1 TabIndex = 1
TabOrder = 1 TabOrder = 1
TabStyle = tsRoundCorners TabStyle = tsRoundCorners
ExplicitTop = 176
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
@ -2158,6 +2142,9 @@ 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 ExplicitHeight = 628
object Label10: TLabel object Label10: TLabel
Left = 5 Left = 5
@ -3418,7 +3405,7 @@ object frm3D: Tfrm3D
Left = 100 Left = 100
Top = 57 Top = 57
Bitmap = { Bitmap = {
494C01013A00B000000310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C01013A00B000080310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000F0000000010020000000000000F0 000000000000360000002800000040000000F0000000010020000000000000F0
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000

View File

@ -23190,6 +23190,120 @@ var
SCSLineList.Free; SCSLineList.Free;
end; end;
Procedure CheckRecreateWireTrays;
var i, j: integer;
SCSLinesList, LineNodesList, WireTrayList, ObjList, Compon3DList: TList;
SCSConn: TConnectorObject;
SCsLine: TOrthoLine;
SCSList: TSCSList;
SCSCatalog: TSCSCatalog;
WireTrayCompon: TSCSComponent;
Compon3D: T3DLineComponent;
begin
if xConn.FSCSObject <> nil then
begin
SCSConn := xConn.FSCSObject;
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(TF_Cad(TPowerCad(SCSConn.Owner).Owner).FCADListID);
if SCSList <> nil then
begin
if SCSConn.ConnectorType = ct_Clear then
begin
// 1. Ñ ïðèñîåäèíåííûõ òðàññ ñîáðàòü âñå ñ ëîòêàìè è ëîòêè òîæå ... åñëè åñòü òðóáà ðàíüøå ëîòêà - òðàññó íå áåðåì
SCSLinesList := TList.Create;
LineNodesList := TList.Create;
WireTrayList := TList.Create;
for i := 0 to xConn.FSCSObject.JoinedOrtholinesList.Count - 1 do
begin
SCSLine := TOrthoLine(xConn.FSCSObject.JoinedOrtholinesList[i]);
SCSCatalog := SCSList.GetCatalogFromSortedRefBySCSID(SCSLine.ID);
if SCSCatalog <> nil then
begin
for j := 0 to SCSCatalog.ComponentReferences.Count - 1 do
begin
if SCSCatalog.ComponentReferences[j].ComponentType.SysName = ctsnTube then
break;
if SCScatalog.ComponentReferences[j].ComponentType.SysName = ctsnWireTray then
begin
if WireTrayList.IndexOf(SCScatalog.ComponentReferences[j]) = -1 then
begin
WireTrayList.Add(SCScatalog.ComponentReferences[j]); //ëîòîê
SCSLinesList.Add(SCSLine); //òðàññà
end;
break;
end;
end;
end;
end;
// 2.Óäàëèòü ëîòêè (â äåðåâå, íà ñöåíå)
ObjList := TList.Create;
Compon3DList := TList.Create;
for i := 0 to WireTrayList.Count - 1 do
begin
WireTrayCompon := TSCSComponent(WireTrayList[i]); // ëîòîê
//îñíîâíîå äåðåâî
Self.ScsModelTree.Items.BeginUpdate;
for j := 0 to Self.ScsModelTree.Items.Count - 1 do
begin
if TObject(Self.SCSModelTree.Items[j].data).ClassName = 'T3DLineComponent' then
begin
if T3DLineComponent(Self.SCSModelTree.Items[j].data).FSCSComponID = WireTrayCompon.id then
begin
Compon3D := T3DLineComponent(Self.SCSModelTree.Items[j].data);
Compon3DList.Add(Compon3D);
if T3DLineComponent(Self.SCSModelTree.Items[j].data).FGLObject <> nil then
begin
//îòëîâèòü 3Ä îáúåêò
if ObjList.IndexOf(T3DLineComponent(Self.SCSModelTree.Items[j].data).FGLObject) = -1 then
ObjList.Add(T3DLineComponent(Self.SCSModelTree.Items[j].data).FGLObject);
//óäàëèòü íîä(òóò áóäåò òîëüêî îäèí)
Self.SCSModelTree.Items[j].data := nil;
Self.ScsModelTree.Items.Delete(Self.SCSModelTree.Items[j]);
break;
end;
end;
end;
end;
Self.ScsModelTree.Items.EndUpdate;
//äóáëèêàò ()
Self.DuplicateNodeTree.Items.BeginUpdate;
for j := Self.DuplicateNodeTree.Items.Count - 1 downto 0 do
begin
if TObject(Self.SCSModelTree.Items[j].data).ClassName = 'T3DLineComponent' then
begin
if T3DLineComponent(Self.DuplicateNodeTree.Items[j].data).FSCSComponID = WireTrayCompon.id then
begin
if T3DLineComponent(Self.DuplicateNodeTree.Items[j].data).FGLObject <> nil then
begin
//îòëîâèòü 3Ä îáúåêò
if ObjList.IndexOf(T3DLineComponent(Self.DuplicateNodeTree.Items[j].data).FGLObject) = -1 then
ObjList.Add(T3DLineComponent(Self.DuplicateNodeTree.Items[j].data).FGLObject);
//óäàëèòü íîä(òóò áóäåò òîëüêî îäèí)
Self.ScsModelTree.Items.Delete(Self.DuplicateNodeTree.Items[j]);
end;
end;
end;
end;
Self.DuplicateNodeTree.Items.EndUpdate;
end;
//Óäàëèòü îáúåêòû 3Ä ñî ñöåíû
DummyCube.BeginUpdate;
for i := 0 to ObjList.Count - 1 do
begin
DummyCube.Remove(TGLBaseSceneObject(ObjList[i]), false);
TGLBaseSceneObject(ObjList[i]).Free;
end;
DummyCube.EndUpdate;
ObjList.Clear;
end;
end;
end;
end;
(*
Procedure CheckRecreateWireTrays; Procedure CheckRecreateWireTrays;
var SavedGCadForm: TF_Cad; var SavedGCadForm: TF_Cad;
SCSLine, JoinedLine: TOrthoLine; SCSLine, JoinedLine: TOrthoLine;
@ -23520,6 +23634,8 @@ var
GCadForm := SavedGCadForm; GCadForm := SavedGCadForm;
GisChangeFrom3D := True; // 11/07/2025 -- âûñòàâèòü ôëàã, ÷òîá áûëè èçìåíåíèÿ â ïðîåêòå èç 3Ä ... GisChangeFrom3D := True; // 11/07/2025 -- âûñòàâèòü ôëàã, ÷òîá áûëè èçìåíåíèÿ â ïðîåêòå èç 3Ä ...
end; end;
*)
(* (*
// //
//Tolik 21/05/2025-- //Tolik 21/05/2025--
@ -24831,7 +24947,7 @@ begin
end; end;
AlignPipeObjects; AlignPipeObjects;
AlignRelatedConns; AlignRelatedConns;
//CheckRecreateWireTrays;//ëîòîê ïðîâîëî÷íûé CheckRecreateWireTrays;//ëîòîê ïðîâîëî÷íûé
MovedLineList.free; MovedLineList.free;
OtherSideConnList.free; OtherSideConnList.free;
RelatedPipeConns.free; RelatedPipeConns.free;

View File

@ -1,7 +1,7 @@
object FSCS_Main: TFSCS_Main object FSCS_Main: TFSCS_Main
Left = 1 Left = 1
Top = 1 Top = 1
Width = 1358 Width = 1380
Height = 726 Height = 726
HorzScrollBar.Color = clBtnFace HorzScrollBar.Color = clBtnFace
HorzScrollBar.ParentColor = False HorzScrollBar.ParentColor = False
@ -46,7 +46,7 @@ object FSCS_Main: TFSCS_Main
ExplicitHeight = 641 ExplicitHeight = 641
end end
object sDiv2: TSplitter object sDiv2: TSplitter
Left = 1334 Left = 1356
Top = 188 Top = 188
Height = 456 Height = 456
Align = alRight Align = alRight
@ -80,10 +80,9 @@ object FSCS_Main: TFSCS_Main
OnDockOver = PDock1DockOver OnDockOver = PDock1DockOver
OnResize = PDock1Resize OnResize = PDock1Resize
OnUnDock = PDock1UnDock OnUnDock = PDock1UnDock
ExplicitHeight = 474
end end
object pDock2: TPanel object pDock2: TPanel
Left = 1337 Left = 1359
Top = 188 Top = 188
Width = 5 Width = 5
Height = 456 Height = 456
@ -99,24 +98,22 @@ object FSCS_Main: TFSCS_Main
OnDockDrop = PDock1DockDrop OnDockDrop = PDock1DockDrop
OnDockOver = PDock1DockOver OnDockOver = PDock1DockOver
OnUnDock = PDock1UnDock OnUnDock = PDock1UnDock
ExplicitLeft = 1359 ExplicitLeft = 1337
ExplicitHeight = 474
end end
object pCADList: TPanel object pCADList: TPanel
Left = 0 Left = 0
Top = 644 Top = 644
Width = 1342 Width = 1364
Height = 23 Height = 23
Align = alBottom Align = alBottom
BevelOuter = bvNone BevelOuter = bvNone
BorderStyle = bsSingle BorderStyle = bsSingle
TabOrder = 2 TabOrder = 2
ExplicitTop = 662 ExplicitWidth = 1342
ExplicitWidth = 1364
object pageCADList: TPageControl object pageCADList: TPageControl
Left = 0 Left = 0
Top = 0 Top = 0
Width = 1340 Width = 1362
Height = 21 Height = 21
Align = alClient Align = alClient
Font.Charset = RUSSIAN_CHARSET Font.Charset = RUSSIAN_CHARSET
@ -128,14 +125,14 @@ object FSCS_Main: TFSCS_Main
Style = tsFlatButtons Style = tsFlatButtons
TabOrder = 0 TabOrder = 0
OnChange = pageCADListChange OnChange = pageCADListChange
ExplicitWidth = 1362 ExplicitWidth = 1340
end end
end end
object cbMainPanel: TControlBar object cbMainPanel: TControlBar
AlignWithMargins = True AlignWithMargins = True
Left = 3 Left = 3
Top = 0 Top = 0
Width = 1336 Width = 1358
Height = 136 Height = 136
HelpContext = 76000 HelpContext = 76000
Margins.Top = 0 Margins.Top = 0
@ -159,7 +156,7 @@ object FSCS_Main: TFSCS_Main
OnBandPaint = cbMainPanelBandPaint OnBandPaint = cbMainPanelBandPaint
OnDockOver = cbMainPanelDockOver OnDockOver = cbMainPanelDockOver
OnMouseDown = cbMainPanelMouseDown OnMouseDown = cbMainPanelMouseDown
ExplicitWidth = 1358 ExplicitWidth = 1336
object tbFile: TToolBar object tbFile: TToolBar
Left = 11 Left = 11
Top = 2 Top = 2
@ -1221,7 +1218,7 @@ object FSCS_Main: TFSCS_Main
object pnHintBar: TRzSizePanel object pnHintBar: TRzSizePanel
Left = 0 Left = 0
Top = 136 Top = 136
Width = 1342 Width = 1364
Height = 52 Height = 52
Align = alTop Align = alTop
BorderHighlight = clBtnFace BorderHighlight = clBtnFace
@ -1231,7 +1228,7 @@ object FSCS_Main: TFSCS_Main
TabOrder = 4 TabOrder = 4
VisualStyle = vsClassic VisualStyle = vsClassic
OnHotSpotClick = pnHintBarHotSpotClick OnHotSpotClick = pnHintBarHotSpotClick
ExplicitWidth = 1364 ExplicitWidth = 1342
end end
object ActionManager: TActionManager object ActionManager: TActionManager
ActionBars.SessionCount = 1080 ActionBars.SessionCount = 1080
@ -4174,6 +4171,21 @@ object FSCS_Main: TFSCS_Main
Caption = #1057#1093#1077#1084#1072' '#1084#1086#1085#1090#1072#1078#1085#1072#1103 Caption = #1057#1093#1077#1084#1072' '#1084#1086#1085#1090#1072#1078#1085#1072#1103
OnExecute = aShieldAssemblySchemeExecute OnExecute = aShieldAssemblySchemeExecute
end end
object aCreateBFMagistral: 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' '#1089#1087#1083#1086#1096#1085#1091#1102' '#1084#1077#1078#1101#1090#1072#1078#1085#1091#1102' '#1074#1077#1088#1090#1080#1082#1072#1083#1100
OnExecute = aCreateBFMagistralExecute
end
object aCreateBFMagistralDown: 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' '#1084#1077#1078#1101#1090#1072#1078#1085#1091#1102' '#1074#1077#1088#1090#1080#1082#1072#1083#1100' '#1076#1086#1085#1080#1079#1091
OnExecute = aCreateBFMagistralDownExecute
end
object aCreateBFMagistralUp: 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' '#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
end
end end
object PrintDialog: TPrintDialog object PrintDialog: TPrintDialog
Left = 352 Left = 352
@ -5598,6 +5610,15 @@ object FSCS_Main: TFSCS_Main
object pmiListDesignBoxParams: TMenuItem object pmiListDesignBoxParams: TMenuItem
Action = aDestroyRaise Action = aDestroyRaise
end end
object pmCreateBFMagistral: TMenuItem
Action = aCreateBFMagistral
end
object pmCreateBFMagistralDown: TMenuItem
Action = aCreateBFMagistralDown
end
object pmCreateBFMagistralUp: TMenuItem
Action = aCreateBFMagistralUp
end
object pmiListRefreshDesignList: TMenuItem object pmiListRefreshDesignList: TMenuItem
Action = aRefreshDesignList Action = aRefreshDesignList
end end
@ -5868,7 +5889,7 @@ object FSCS_Main: TFSCS_Main
Left = 496 Left = 496
Top = 232 Top = 232
Bitmap = { Bitmap = {
494C0101D2008C01B80310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C0101D2008C01C00310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000005003000001002000000000000050 0000000000003600000028000000400000005003000001002000000000000050
0300000000000000000000000000000000000000000000000000000000000000 0300000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@ -12878,7 +12899,7 @@ object FSCS_Main: TFSCS_Main
Left = 248 Left = 248
Top = 280 Top = 280
Bitmap = { Bitmap = {
494C010123008C01D00320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010123008C01D80320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000800000009000000001002000000000000020 0000000000003600000028000000800000009000000001002000000000000020
0100000000000000000000000000000000000000000000000000000000000000 0100000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@ -15450,7 +15471,7 @@ object FSCS_Main: TFSCS_Main
Left = 240 Left = 240
Top = 408 Top = 408
Bitmap = { Bitmap = {
494C010112008C01C4030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C010112008C01CC030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000038000000460000000100200000000000403D 000000000000360000002800000038000000460000000100200000000000403D
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@ -19953,7 +19974,7 @@ object FSCS_Main: TFSCS_Main
Left = 240 Left = 240
Top = 344 Top = 344
Bitmap = { Bitmap = {
494C0101DE008C01AC0618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C0101DE008C01B40618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
00000000000036000000280000006000000040050000010020000000000000E0 00000000000036000000280000006000000040050000010020000000000000E0
070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF

View File

@ -1184,6 +1184,12 @@ type
aShieldAssemblyScheme: TAction; aShieldAssemblyScheme: TAction;
TimerTracingInterval: TTimer; TimerTracingInterval: TTimer;
mnuReserv: TMenuItem; mnuReserv: TMenuItem;
pmCreateBFMagistral: TMenuItem;
aCreateBFMagistral: TAction;
pmCreateBFMagistralDown: TMenuItem;
pmCreateBFMagistralUp: TMenuItem;
aCreateBFMagistralDown: TAction;
aCreateBFMagistralUp: TAction;
// ACTIONs // ACTIONs
// ñîçäàòü íîâûé ïðîåêò // ñîçäàòü íîâûé ïðîåêò
@ -1998,6 +2004,9 @@ type
procedure aShieldAssemblySchemeExecute(Sender: TObject); procedure aShieldAssemblySchemeExecute(Sender: TObject);
procedure TimerTracingIntervalTimer(Sender: TObject); procedure TimerTracingIntervalTimer(Sender: TObject);
procedure mnuReservClick(Sender: TObject); procedure mnuReservClick(Sender: TObject);
procedure aCreateBFMagistralExecute(Sender: TObject);
procedure aCreateBFMagistralDownExecute(Sender: TObject);
procedure aCreateBFMagistralUpExecute(Sender: TObject);
{ procedure SelectAllLineObjsHint(var HintStr: String; { procedure SelectAllLineObjsHint(var HintStr: String;
var CanShow: Boolean); var CanShow: Boolean);
@ -16609,13 +16618,28 @@ end;
procedure TFSCS_Main.aMasterCableTracingExecute(Sender: TObject); procedure TFSCS_Main.aMasterCableTracingExecute(Sender: TObject);
begin begin
try try
MasterCableTracing; MasterCableTracing;
except except
on E: Exception do addExceptionToLogEx('TFSCS_Main.aMasterCableTracingExecute', E.Message); on E: Exception do addExceptionToLogEx('TFSCS_Main.aMasterCableTracingExecute', E.Message);
end; end;
end; end;
//Tolik 22/08/2025 -- ñîçäàòü âåðòèêàëè â îäíîé òî÷êå ïî âñåì ëèñòàì ïðîåêòà (âûñîòîé â âûñîòó ýòàæà)
procedure TFSCS_Main.aCreateBFMagistralDownExecute(Sender: TObject);
begin
CreateBFMagistralTR(false, true);
end;
procedure TFSCS_Main.aCreateBFMagistralExecute(Sender: TObject);
begin
CreateBFMagistralTR;
end;
procedure TFSCS_Main.aCreateBFMagistralUpExecute(Sender: TObject);
begin
CreateBFMagistralTR(false, false, true);
end;
//
procedure TFSCS_Main.aCreateBlockToFileExecute(Sender: TObject); procedure TFSCS_Main.aCreateBlockToFileExecute(Sender: TObject);
var var
BlkName: string; BlkName: string;

View File

@ -134,6 +134,7 @@ object F_CAD: TF_CAD
OnPopMenuClicked = PCadPopMenuClicked OnPopMenuClicked = PCadPopMenuClicked
OnGUIEvent = PCadGUIEvent OnGUIEvent = PCadGUIEvent
OnToolChanged = PCadToolChanged OnToolChanged = PCadToolChanged
ExplicitTop = -1
object HorScroll: TScrollBar object HorScroll: TScrollBar
Left = 0 Left = 0
Top = 449 Top = 449

View File

@ -7106,6 +7106,21 @@ var
end; end;
// //
begin begin
//Tolik 24/08/2025 --
if Self.FListType = lt_Normal then
begin
FSCS_Main.pmCreateBFMagistral.Visible := True;
FSCS_Main.pmCreateBFMagistralUp.Visible := True;
FSCS_Main.pmCreateBFMagistralDown.Visible := True;
end
else
begin
FSCS_Main.pmCreateBFMagistral.Visible := False;
FSCS_Main.pmCreateBFMagistralUp.Visible := False;
FSCS_Main.pmCreateBFMagistralDown.Visible := False;
end;
//
//Tolik 16/06/2021 -- //Tolik 16/06/2021 --
FSCS_Main.Pmi_CopyCurrList.Visible := False; FSCS_Main.Pmi_CopyCurrList.Visible := False;
FSCS_Main.Pmi_CopyCurrListWCompon.Visible := False; FSCS_Main.Pmi_CopyCurrListWCompon.Visible := False;

View File

@ -1353,7 +1353,9 @@ type
function StrToFloatDef_My(const S: string; const Default: Extended): Extended; overload; function StrToFloatDef_My(const S: string; const Default: Extended): Extended; overload;
//Tolik 17/02/2022 -- //Tolik 17/02/2022 --
Procedure ShowInvoice; Procedure ShowInvoice;
//Tolik 24/08/2025 --
Procedure CreateBFMagistralTr(aFull: Boolean = true; aDown: Boolean = False; aUp: Boolean = False; aCompon: TSCSComponent = nil);
//
const const
{$IF Defined(SCS_PANDUIT) or Defined(SCS_PE)} {$IF Defined(SCS_PANDUIT) or Defined(SCS_PE)}
urlSupport = 'http://cableproject.net/chat.php'; urlSupport = 'http://cableproject.net/chat.php';
@ -1766,6 +1768,128 @@ 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 24/08/2025 --
Procedure CreateBFMagistralTR(aFull: Boolean = true; aDown: Boolean = False; aUp: Boolean = False; aCompon: TSCSComponent = nil);
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
CadList := TList.Create;
//Full
if aFull then
begin
for i := 0 to F_ProjMan.GSCSBase.CurrProject.ProjectLists.Count - 1 do
begin
if F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].Setting.ListType = lt_Normal then
begin
FCad := GetListByID(F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].SCSID);
if FCad <> nil then
CadList.Add(FCad);
end;
end;
end
else
begin
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(GCadForm.FCADListID);
if SCSList <> nil then
begin
ListIndex := F_ProjMan.GSCSBase.CurrProject.ProjectLists.IndexOf(SCSList);
//UP
if aUP then
begin
for i := ListIndex to F_ProjMan.GSCSBase.CurrProject.ProjectLists.Count - 1 do
begin
if F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].Setting.ListType = lt_Normal then
begin
FCad := GetListByID(F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].SCSID);
if FCad <> nil then
CadList.Add(FCad);
end;
end;
end
else
//Down
if aDown then
begin
for i := ListIndex Downto 0 do
begin
if F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].Setting.ListType = lt_Normal then
begin
FCad := GetListByID(F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].SCSID);
if FCad <> nil then
CadList.Add(FCad);
end;
end;
end;
end;
end;
if CadList.Count > 1 then
begin
SavedGCadForm := GCadForm;
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;
for i := 0 to CadList.Count - 1 do
begin
GCadForm := TF_Cad(CadList[i]);
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;
if SavedGcadForm.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;
GCadForm := SavedGCadForm;
GMoveWithRaise := SavedMoveWithRaise;
CadList.Free;
end;
CadList.Free;
end;
//Tolik 16/02/2022 -- //Tolik 16/02/2022 --
Procedure ShowInvoice; Procedure ShowInvoice;
var RepParams: TReportItemParams; var RepParams: TReportItemParams;