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
6d2b2f87ce
commit
713ddf52b4
@ -156,7 +156,7 @@ object frm3D: Tfrm3D
|
|||||||
end
|
end
|
||||||
object sbApplyScsModel: TSpeedButton
|
object sbApplyScsModel: TSpeedButton
|
||||||
Left = 1091
|
Left = 1091
|
||||||
Top = 8
|
Top = 13
|
||||||
Width = 161
|
Width = 161
|
||||||
Height = 22
|
Height = 22
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
@ -169,7 +169,6 @@ object frm3D: Tfrm3D
|
|||||||
Font.Style = []
|
Font.Style = []
|
||||||
ParentFont = False
|
ParentFont = False
|
||||||
OnClick = sbApplyScsModelClick
|
OnClick = sbApplyScsModelClick
|
||||||
ExplicitLeft = 1003
|
|
||||||
end
|
end
|
||||||
object SpeedButton4: TSpeedButton
|
object SpeedButton4: TSpeedButton
|
||||||
Left = 1258
|
Left = 1258
|
||||||
@ -3405,7 +3404,7 @@ object frm3D: Tfrm3D
|
|||||||
Left = 100
|
Left = 100
|
||||||
Top = 57
|
Top = 57
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C01013A00B000DC0210001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C01013A00B000E40210001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
000000000000360000002800000040000000F0000000010020000000000000F0
|
000000000000360000002800000040000000F0000000010020000000000000F0
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
|||||||
@ -12531,6 +12531,7 @@ var
|
|||||||
SelList: TList;
|
SelList: TList;
|
||||||
selCatalog: TSCSCatalog;
|
selCatalog: TSCSCatalog;
|
||||||
CameraPos: T3DPoint;
|
CameraPos: T3DPoint;
|
||||||
|
UndoAct: TListUndoAction;
|
||||||
|
|
||||||
procedure SynchronizeCoordsToCad(aPoint: TDoublePoint; aSide: integer);
|
procedure SynchronizeCoordsToCad(aPoint: TDoublePoint; aSide: integer);
|
||||||
var SCSConn: TConnectorObject;
|
var SCSConn: TConnectorObject;
|
||||||
@ -12601,7 +12602,15 @@ var
|
|||||||
|
|
||||||
if aLine.FSCSObject <> nil then
|
if aLine.FSCSObject <> nil then
|
||||||
SCSLine := aLine.FSCSObject; // ñàìà òðàññà íà êàäå
|
SCSLine := aLine.FSCSObject; // ñàìà òðàññà íà êàäå
|
||||||
|
//Tolik 18/07/2025 -- Undo êàäà(åñëè íå áûëî)
|
||||||
|
if G3dUndoList.IndexOf(TF_CAD(TPowerCad(SCSLine.Owner).Owner)) = -1 then
|
||||||
|
begin
|
||||||
|
UndoAct := TF_CAD(TPowerCad(SCSLine.Owner).Owner).SaveForUndo(uat_None, true, false, 0, false, true);
|
||||||
|
G3dUndoList.Add(TF_CAD(TPowerCad(SCSLine.Owner).Owner));
|
||||||
|
if UndoAct <> nil then
|
||||||
|
G3dUndoActList.Add(UndoAct);
|
||||||
|
end;
|
||||||
|
//
|
||||||
FaceList := TList.Create;
|
FaceList := TList.Create;
|
||||||
ObjList := TList.Create;
|
ObjList := TList.Create;
|
||||||
Obj3dList := TList.Create;
|
Obj3dList := TList.Create;
|
||||||
@ -13111,7 +13120,7 @@ var
|
|||||||
GLSceneViewer.Camera.Position.z := CameraPos.z;
|
GLSceneViewer.Camera.Position.z := CameraPos.z;
|
||||||
|
|
||||||
GCadForm := SavedGCadForm;
|
GCadForm := SavedGCadForm;
|
||||||
|
GisChangeFrom3D := True; // 11/07/2025 -- âûñòàâèòü ôëàã, ÷òîá áûëè èçìåíåíèÿ â ïðîåêòå èç 3Ä ...
|
||||||
end;
|
end;
|
||||||
//
|
//
|
||||||
begin
|
begin
|
||||||
@ -22243,6 +22252,7 @@ begin
|
|||||||
FreeAndNil(UndoFormsList);
|
FreeAndNil(UndoFormsList);
|
||||||
EndProgress;
|
EndProgress;
|
||||||
// EndProgress;
|
// EndProgress;
|
||||||
|
SaveCurrProjectToUndoFiles(True);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(*
|
(*
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
object FSCS_Main: TFSCS_Main
|
object FSCS_Main: TFSCS_Main
|
||||||
Left = -8
|
Left = -8
|
||||||
Top = -8
|
Top = -8
|
||||||
Width = 1376
|
Width = 1380
|
||||||
Height = 744
|
Height = 744
|
||||||
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 = 1352
|
Left = 1356
|
||||||
Top = 188
|
Top = 188
|
||||||
Height = 474
|
Height = 474
|
||||||
Align = alRight
|
Align = alRight
|
||||||
@ -82,7 +82,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
OnUnDock = PDock1UnDock
|
OnUnDock = PDock1UnDock
|
||||||
end
|
end
|
||||||
object pDock2: TPanel
|
object pDock2: TPanel
|
||||||
Left = 1355
|
Left = 1359
|
||||||
Top = 188
|
Top = 188
|
||||||
Width = 5
|
Width = 5
|
||||||
Height = 474
|
Height = 474
|
||||||
@ -102,7 +102,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
object pCADList: TPanel
|
object pCADList: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 662
|
Top = 662
|
||||||
Width = 1360
|
Width = 1364
|
||||||
Height = 23
|
Height = 23
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
@ -111,7 +111,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
object pageCADList: TPageControl
|
object pageCADList: TPageControl
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 1358
|
Width = 1362
|
||||||
Height = 21
|
Height = 21
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Font.Charset = RUSSIAN_CHARSET
|
Font.Charset = RUSSIAN_CHARSET
|
||||||
@ -129,7 +129,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
AlignWithMargins = True
|
AlignWithMargins = True
|
||||||
Left = 3
|
Left = 3
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 1354
|
Width = 1358
|
||||||
Height = 136
|
Height = 136
|
||||||
HelpContext = 76000
|
HelpContext = 76000
|
||||||
Margins.Top = 0
|
Margins.Top = 0
|
||||||
@ -1214,7 +1214,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
object pnHintBar: TRzSizePanel
|
object pnHintBar: TRzSizePanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 136
|
Top = 136
|
||||||
Width = 1360
|
Width = 1364
|
||||||
Height = 52
|
Height = 52
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BorderHighlight = clBtnFace
|
BorderHighlight = clBtnFace
|
||||||
@ -5860,7 +5860,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 496
|
Left = 496
|
||||||
Top = 232
|
Top = 232
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C0101D2008C01980310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C0101D2008C01A80310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
0000000000003600000028000000400000005003000001002000000000000050
|
0000000000003600000028000000400000005003000001002000000000000050
|
||||||
0300000000000000000000000000000000000000000000000000000000000000
|
0300000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -12870,7 +12870,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 248
|
Left = 248
|
||||||
Top = 280
|
Top = 280
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010123008C01B00320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C010123008C01C00320001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
0000000000003600000028000000800000009000000001002000000000000020
|
0000000000003600000028000000800000009000000001002000000000000020
|
||||||
0100000000000000000000000000000000000000000000000000000000000000
|
0100000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -15442,7 +15442,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 240
|
Left = 240
|
||||||
Top = 408
|
Top = 408
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C010112008C01A4030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C010112008C01B4030E000E00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
000000000000360000002800000038000000460000000100200000000000403D
|
000000000000360000002800000038000000460000000100200000000000403D
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
0000000000000000000000000000000000000000000000000000000000000000
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -19945,7 +19945,7 @@ object FSCS_Main: TFSCS_Main
|
|||||||
Left = 240
|
Left = 240
|
||||||
Top = 344
|
Top = 344
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
494C0101DE008C018C0618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
494C0101DE008C019C0618001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||||
00000000000036000000280000006000000040050000010020000000000000E0
|
00000000000036000000280000006000000040050000010020000000000000E0
|
||||||
070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
070000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9188003D2413003D241300FFFF
|
||||||
|
|||||||
@ -20054,8 +20054,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
|
|
||||||
// 22.07.2011
|
// 22.07.2011
|
||||||
G3DModelForProject := False;
|
G3DModelForProject := False;
|
||||||
|
//Tolik 11/07/2023 --
|
||||||
|
SaveCurrProjectToUndoFiles(true);
|
||||||
|
//
|
||||||
BeginProgress;
|
BeginProgress;
|
||||||
if not Assigned(frm3D) then
|
if not Assigned(frm3D) then
|
||||||
Application.CreateForm(Tfrm3D, frm3d);
|
Application.CreateForm(Tfrm3D, frm3d);
|
||||||
@ -20086,6 +20089,10 @@ begin
|
|||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
frm3d.ShowModal;
|
frm3d.ShowModal;
|
||||||
FreeAndNil(frm3D);
|
FreeAndNil(frm3D);
|
||||||
|
//Tolik 11/07/2025 -- âîññòàíîâèòü ïðîåêò, åñëè áûëè èçìåíåíèÿ ÷åðåç 3Ä...
|
||||||
|
if GisChangeFrom3D then
|
||||||
|
UndoListInPM(-1, GetPathToSCSUndoUniqDir(true), true, 0, 0);
|
||||||
|
//
|
||||||
// Tolik 23/07/2018 --
|
// Tolik 23/07/2018 --
|
||||||
GCadForm.PCad.Refresh;
|
GCadForm.PCad.Refresh;
|
||||||
//
|
//
|
||||||
@ -21459,7 +21466,11 @@ var
|
|||||||
SubstrateFileName: String;
|
SubstrateFileName: String;
|
||||||
currGLPlane: TGLPlane;
|
currGLPlane: TGLPlane;
|
||||||
SubstrateFileList: TStringList;
|
SubstrateFileList: TStringList;
|
||||||
|
// Tolik 17/07/2025 --
|
||||||
|
VList: TList;
|
||||||
|
//tmpCad: TF_Cad;
|
||||||
|
Dir3dUndoName: string;
|
||||||
|
UndoAct: TListUndoAction;
|
||||||
{
|
{
|
||||||
procedure InsertIntoHList(Cad: TF_CAD);
|
procedure InsertIntoHList(Cad: TF_CAD);
|
||||||
var
|
var
|
||||||
@ -21688,6 +21699,49 @@ begin
|
|||||||
LLists := Nil;
|
LLists := Nil;
|
||||||
SubstrateFileList := TStringList.Create; // ñïèñîê ïîäëîæåê (÷òîáû ïîòîì óäàëèòü ñîçäàííûå jpeg, äàáû íå çàñîðÿòü äèñê)
|
SubstrateFileList := TStringList.Create; // ñïèñîê ïîäëîæåê (÷òîáû ïîòîì óäàëèòü ñîçäàííûå jpeg, äàáû íå çàñîðÿòü äèñê)
|
||||||
//
|
//
|
||||||
|
//Tolik 11/07/2025 -- UNDO for 3D
|
||||||
|
{for i := 0 to F_ProjMan.GSCSBase.CurrProject.ProjectLists.Count - 1 do
|
||||||
|
begin
|
||||||
|
TmpCad := GetListbyID(F_ProjMan.GSCSBase.CurrProject.ProjectLists[i].SCSID);
|
||||||
|
if TmpCad <> nil then
|
||||||
|
begin
|
||||||
|
if TmpCad <> nil then
|
||||||
|
begin
|
||||||
|
if TmpCad.FListType = lt_Normal then
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
//SaveCurrProjectToUndoFiles(true);
|
||||||
|
//Tolik 17/07/2025 -- Save Project Undo
|
||||||
|
G3dUndoList := TList.create;
|
||||||
|
G3dUndoActList := TList.Create;
|
||||||
|
{VList := TList.create;
|
||||||
|
for i := 0 to F_ProjMan.GSCSBase.CurrProject.ChildCatalogs.Count - 1 do
|
||||||
|
begin
|
||||||
|
if F_ProjMan.GSCSBase.CurrProject.ChildCatalogs[i] is TSCSList then
|
||||||
|
begin
|
||||||
|
TmpCad := GetListByID(F_ProjMan.GSCSBase.CurrProject.ChildCatalogs[i].SCSID);
|
||||||
|
if TmpCad <> nil then
|
||||||
|
VList.Add(TmpCad);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Dir3dUndoName := GetPathToSCSUndoDir +'\3D';
|
||||||
|
|
||||||
|
if DirectoryExists(Dir3dUndoName) then
|
||||||
|
FullRemoveDir(Dir3dUndoName, true, true);
|
||||||
|
if Not DirectoryExists(Dir3dUndoName) then
|
||||||
|
begin
|
||||||
|
CreateDir(Dir3dUndoName);
|
||||||
|
if DirectoryExists(Dir3dUndoName) then
|
||||||
|
SaveForProjectUndo(vList, true, false, true);
|
||||||
|
end;
|
||||||
|
//
|
||||||
|
}
|
||||||
{$ifdef 3D}
|
{$ifdef 3D}
|
||||||
ctrlDown:=(IsKeyDown(VK_LCONTROL) or IsKeyDown(VK_RCONTROL));
|
ctrlDown:=(IsKeyDown(VK_LCONTROL) or IsKeyDown(VK_RCONTROL));
|
||||||
if ActiveMDIChild <> nil then
|
if ActiveMDIChild <> nil then
|
||||||
@ -21904,6 +21958,13 @@ begin
|
|||||||
frm3d.FCAD := GCadForm;
|
frm3d.FCAD := GCadForm;
|
||||||
frm3d.ShowModal;
|
frm3d.ShowModal;
|
||||||
FreeAndNil(frm3D);
|
FreeAndNil(frm3D);
|
||||||
|
//Tolik 11/07/2025 -- âîññòàíîâèòü ïðîåêò, åñëè áûëè èçìåíåíèÿ ÷åðåç 3Ä...
|
||||||
|
//if GisChangeFrom3D then
|
||||||
|
//begin
|
||||||
|
// UndoListInPM(-1, GetPathToSCSUndoUniqDir(true), true, 0, 0);
|
||||||
|
// GCadForm.PCad.Refresh;
|
||||||
|
///end;
|
||||||
|
//
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@ -21958,6 +22019,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
SubstrateFileList.Free;
|
SubstrateFileList.Free;
|
||||||
|
if G3dUndoActList.Count > 0 then
|
||||||
|
begin
|
||||||
|
j := G3dUndoActList.Count;
|
||||||
|
while G3dUndoList.Count > 0 do
|
||||||
|
begin
|
||||||
|
if j = 0 then
|
||||||
|
break;
|
||||||
|
GCadForm.SCSUndoNormalList(true);
|
||||||
|
dec(j);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
|
for j := G3dUndoActList.Count - 1 downto 0 do
|
||||||
|
begin
|
||||||
|
cad := TF_CAD(G3dUndoList[j]);
|
||||||
|
cad.SCSUndoNormalList(true);
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
FreeAndNil(G3dUndoList); // Tolik 18/07/2025 --
|
||||||
|
FreeAndNil(G3dUndoActList); // Tolik 18/07/2025 --
|
||||||
//
|
//
|
||||||
end;
|
end;
|
||||||
// Ïðè ïðîâåðêå íà ñîîòâåòñòâèå ìàñøòàáîâ èíîãäà âîçíèêàþò êàçóñû â ïëàíå ñîîòâåòñòâèÿ "íà ãëàç" è
|
// Ïðè ïðîâåðêå íà ñîîòâåòñòâèå ìàñøòàáîâ èíîãäà âîçíèêàþò êàçóñû â ïëàíå ñîîòâåòñòâèÿ "íà ãëàç" è
|
||||||
|
|||||||
@ -536,7 +536,9 @@ type
|
|||||||
// Toilk 03/06/2021 - - çäåñü äîáàâëÿåì ôëàæîê, ÷òîáû âèäåòü, êîãäà óíäî ïðèõîäèò ñ ïðèìåíåíèÿ ñâîéñòâ ëèñòà,
|
// Toilk 03/06/2021 - - çäåñü äîáàâëÿåì ôëàæîê, ÷òîáû âèäåòü, êîãäà óíäî ïðèõîäèò ñ ïðèìåíåíèÿ ñâîéñòâ ëèñòà,
|
||||||
// ÷òîáû ñäåëàòü îäèíàêîâûé îòêàò äëÿ âñåõ òèïîâ ëèñòîâ, èíà÷å íå ñìîæåì îòêàòèòü íà âñåõ ñõåìàõ ïðèìåíåíèå ñâîéñòâ ëèñòà
|
// ÷òîáû ñäåëàòü îäèíàêîâûé îòêàò äëÿ âñåõ òèïîâ ëèñòîâ, èíà÷å íå ñìîæåì îòêàòèòü íà âñåõ ñõåìàõ ïðèìåíåíèå ñâîéñòâ ëèñòà
|
||||||
|
|
||||||
|
//Tolik 15/07/2025 -*- òóò ÷óòü ïîïðàâèì, ÷òîáû ñäåëàòü è ïåðåä 3Ä (è íå ïîòåðÿòü, ÷òîáû ïîòîì âåðíóòü )
|
||||||
//function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
{
|
||||||
function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false): TListUndoAction;
|
function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false): TListUndoAction;
|
||||||
//
|
//
|
||||||
function SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
function SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
@ -545,8 +547,22 @@ type
|
|||||||
function SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
function SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
//
|
//
|
||||||
function SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
function SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
}
|
||||||
|
//function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
|
||||||
|
function SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false; a3D: boolean = false): TListUndoAction;
|
||||||
|
//
|
||||||
|
function SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
function SaveForUndoProjectPlan(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
// Tolik 12/02/2021
|
||||||
|
function SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
//
|
||||||
|
function SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
// ïîäíÿòü ïðåäûäóùåå ñîñòîÿíèå èç òåìïîâîãî ôàéëà
|
// ïîäíÿòü ïðåäûäóùåå ñîñòîÿíèå èç òåìïîâîãî ôàéëà
|
||||||
procedure SCSUndoNormalList;
|
//Tolik 18/07/2025 --
|
||||||
|
//procedure SCSUndoNormalList;
|
||||||
|
procedure SCSUndoNormalList(a3d: Boolean = False);
|
||||||
|
//
|
||||||
procedure SCSUndoProjectPlan;
|
procedure SCSUndoProjectPlan;
|
||||||
procedure SCSUndoDesignList;
|
procedure SCSUndoDesignList;
|
||||||
procedure SCSUndoElScheme; // Tolik 12/02/2021 --
|
procedure SCSUndoElScheme; // Tolik 12/02/2021 --
|
||||||
@ -11219,7 +11235,8 @@ end;
|
|||||||
|
|
||||||
//Tolik 03/06/2021 --
|
//Tolik 03/06/2021 --
|
||||||
//function TF_CAD.SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//function TF_CAD.SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
function TF_CAD.SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false): TListUndoAction;
|
//function TF_CAD.SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false): TListUndoAction;
|
||||||
|
function TF_CAD.SaveForUndo(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; aFromMasterNewList: Boolean = false; a3D: boolean = false): TListUndoAction;
|
||||||
//
|
//
|
||||||
var
|
var
|
||||||
SavedGCadForm: TF_CAD;
|
SavedGCadForm: TF_CAD;
|
||||||
@ -11246,28 +11263,44 @@ begin
|
|||||||
// Tolik 03/06/2021 --
|
// Tolik 03/06/2021 --
|
||||||
if aFromMasterNewList then
|
if aFromMasterNewList then
|
||||||
begin
|
begin
|
||||||
Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex);
|
//Tolik 18/07/2025 --
|
||||||
|
//Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex);
|
||||||
|
Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex, a3D);
|
||||||
|
//
|
||||||
GCadForm := SavedGCadForm;
|
GCadForm := SavedGCadForm;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if FListType = lt_Normal then
|
if FListType = lt_Normal then
|
||||||
Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex)
|
//
|
||||||
|
//Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex)
|
||||||
|
Result := SaveForUndoNormalList(aType, aSavePM, aIsProject, aProjectIndex, a3D)
|
||||||
|
//
|
||||||
else
|
else
|
||||||
if FListType = lt_ProjectPlan then
|
if FListType = lt_ProjectPlan then
|
||||||
Result := SaveForUndoProjectPlan(aType, aSavePM, aIsProject, aProjectIndex)
|
//
|
||||||
|
//Result := SaveForUndoProjectPlan(aType, aSavePM, aIsProject, aProjectIndex)
|
||||||
|
Result := SaveForUndoProjectPlan(aType, aSavePM, aIsProject, aProjectIndex, a3D)
|
||||||
|
//
|
||||||
else
|
else
|
||||||
if FListType = lt_DesignBox then
|
if FListType = lt_DesignBox then
|
||||||
Result := SaveForUndoDesignList(aType, aSavePM, aIsProject, aProjectIndex)
|
//
|
||||||
|
//Result := SaveForUndoDesignList(aType, aSavePM, aIsProject, aProjectIndex)
|
||||||
|
Result := SaveForUndoDesignList(aType, aSavePM, aIsProject, aProjectIndex, a3D)
|
||||||
// Tolik 12/02/2021 -- åñëè òèï ëèñòà -- ýëåêòðè÷åñêàÿ ñõåìà îäíîëèíåéíàÿ
|
// Tolik 12/02/2021 -- åñëè òèï ëèñòà -- ýëåêòðè÷åñêàÿ ñõåìà îäíîëèíåéíàÿ
|
||||||
else
|
else
|
||||||
if FListType = lt_ElScheme then
|
if FListType = lt_ElScheme then
|
||||||
//SaveListToUndoStack(GCadForm.FCADListID);
|
//SaveListToUndoStack(GCadForm.FCADListID);
|
||||||
Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex)
|
//
|
||||||
|
//Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex)
|
||||||
|
Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex, a3D)
|
||||||
|
//
|
||||||
else
|
else
|
||||||
if FListType = lt_AScheme then
|
if FListType = lt_AScheme then
|
||||||
//SaveListToUndoStack(GCadForm.FCADListID);
|
//SaveListToUndoStack(GCadForm.FCADListID);
|
||||||
Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex);
|
//, a3D
|
||||||
|
//Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex);
|
||||||
|
Result := SaveForUndoELScheme(aType, aSavePM, aIsProject, aProjectIndex, a3D);
|
||||||
//
|
//
|
||||||
GCadForm := SavedGCadForm;
|
GCadForm := SavedGCadForm;
|
||||||
except
|
except
|
||||||
@ -11275,7 +11308,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TF_CAD.SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//Tolik 16/07/2025 --
|
||||||
|
//function TF_CAD.SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
function TF_CAD.SaveForUndoNormalList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
//
|
||||||
var
|
var
|
||||||
i, j: integer;
|
i, j: integer;
|
||||||
Count: Integer;
|
Count: Integer;
|
||||||
@ -11305,7 +11341,8 @@ begin
|
|||||||
BasePath := '';
|
BasePath := '';
|
||||||
if (aSavePM) and ((not aIsProject) or (aProjectIndex = 0)) then
|
if (aSavePM) and ((not aIsProject) or (aProjectIndex = 0)) then
|
||||||
begin
|
begin
|
||||||
BasePath := SavePMForUndo(FCADListID, aIsProject);
|
//BasePath := SavePMForUndo(FCADListID, aIsProject);
|
||||||
|
BasePath := SavePMForUndo(FCADListID, aIsProject, a3D);
|
||||||
CanProcess := BasePath <> '';
|
CanProcess := BasePath <> '';
|
||||||
end;
|
end;
|
||||||
if CanProcess then
|
if CanProcess then
|
||||||
@ -11360,6 +11397,10 @@ begin
|
|||||||
// çàïèñàòü ïîñëåäíåå èçìåíåíèå â ôàéë, íàçâàíèå â FUndoList
|
// çàïèñàòü ïîñëåäíåå èçìåíåíèå â ôàéë, íàçâàíèå â FUndoList
|
||||||
Count := FSCSUndoList.Count;
|
Count := FSCSUndoList.Count;
|
||||||
// SetUndoName := FUndoDir + FCADListName + IntTostr(FCADListIndex) + '_' + IntToStr(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);
|
SetUndoName := FUndoDir + FCADListFileName + '_' + IntToStr(Count);
|
||||||
// ñîõðàíèòü â ñïèñîê ôàéëîâ
|
// ñîõðàíèòü â ñïèñîê ôàéëîâ
|
||||||
ListUndoAction.FCadFileName := SetUndoName;
|
ListUndoAction.FCadFileName := SetUndoName;
|
||||||
@ -11403,7 +11444,10 @@ begin
|
|||||||
GCanRefreshCad := SaveGCadRefreshFlag;
|
GCanRefreshCad := SaveGCadRefreshFlag;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TF_CAD.SaveForUndoProjectPlan(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//Tolik 16/07/2025 --
|
||||||
|
//function TF_CAD.SaveForUndoProjectPlan(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
function TF_CAD.SaveForUndoProjectPlan(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
//
|
||||||
var
|
var
|
||||||
i, j: integer;
|
i, j: integer;
|
||||||
Count: Integer;
|
Count: Integer;
|
||||||
@ -11478,8 +11522,10 @@ begin
|
|||||||
on E: Exception do addExceptionToLogEx('TF_CAD.SaveForUndoProjectPlan', E.Message);
|
on E: Exception do addExceptionToLogEx('TF_CAD.SaveForUndoProjectPlan', E.Message);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Tolik 12/02/2021 --
|
// Tolik 12/02/2021 --
|
||||||
function TF_CAD.SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//function TF_CAD.SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
function TF_CAD.SaveForUndoELScheme(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction; //Tolik 16/7/2025
|
||||||
var
|
var
|
||||||
i, j: integer;
|
i, j: integer;
|
||||||
Count: Integer;
|
Count: Integer;
|
||||||
@ -11555,8 +11601,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
//
|
//
|
||||||
|
//Tolik 16/074/2025 --
|
||||||
function TF_CAD.SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
//function TF_CAD.SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0): TListUndoAction;
|
||||||
|
function TF_CAD.SaveForUndoDesignList(aType: TListUndoActionType; aSavePM: Boolean; aIsProject: Boolean; aProjectIndex: Integer = 0; a3D: boolean = false): TListUndoAction;
|
||||||
|
//
|
||||||
var
|
var
|
||||||
i, j: integer;
|
i, j: integer;
|
||||||
Count: Integer;
|
Count: Integer;
|
||||||
@ -11641,7 +11689,249 @@ begin
|
|||||||
on E: Exception do addExceptionToLogEx('', E.Message);
|
on E: Exception do addExceptionToLogEx('', E.Message);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
//Tolik 18/07/2025 --
|
||||||
|
|
||||||
|
procedure TF_CAD.SCSUndoNormalList(a3d: Boolean = False);
|
||||||
|
var
|
||||||
|
FName: string;
|
||||||
|
Figure: TFigure;
|
||||||
|
i, j: integer;
|
||||||
|
ListUndoAction: TListUndoAction;
|
||||||
|
LinkUndoObject: TLinkUndoObject;
|
||||||
|
Stream: TMemoryStream;
|
||||||
|
size: integer;
|
||||||
|
CountInPrj: Integer;
|
||||||
|
OldTick1, OldTick2, OldTick3, CurTick1, CurTick2, CurTick3: Cardinal;
|
||||||
|
CurListParams: TListParams;
|
||||||
|
ListOfLists: TList;
|
||||||
|
SavedGCadForm, CurrCad: TF_CAD;
|
||||||
|
NetObj: TNet;
|
||||||
|
//Tolik
|
||||||
|
CadFigList: TList;
|
||||||
|
SaveGCadRefreshFlag: boolean;
|
||||||
|
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
SaveGCadRefreshFlag := GCanRefreshCad;
|
||||||
|
GCanRefreshCad := false;
|
||||||
|
SavedGCadForm := GCadForm;
|
||||||
|
ListOfLists := nil; // Tolik 11/12/2020 --
|
||||||
|
|
||||||
|
// IGOR 2017-04-25 åñëè ýòî íå ñäåëàòü, äåáàãèòü ïîñëå àíäó/ðåäó ïîòîì íåðåàëüíî ïðè âêëþ÷åííîì ñòîï-îí ÀÂ
|
||||||
|
self.UnSnapFigure;
|
||||||
|
GPrevFigureTraceTo := nil;
|
||||||
|
GPrevFigureSnap := nil;
|
||||||
|
GFigureSnap := nil;
|
||||||
|
|
||||||
|
FullEndUpdateCad(true); // Tolik 24/03/2021 --
|
||||||
|
|
||||||
|
BeginProgress;
|
||||||
|
if (FSCSUndoList.Count > 0) or (G3dUndoActList.Count > 0) then
|
||||||
|
begin
|
||||||
|
if a3d then
|
||||||
|
ListUndoAction := TListUndoAction(G3dUndoActList[0])
|
||||||
|
else
|
||||||
|
ListUndoAction := TListUndoAction(FSCSUndoList[FSCSUndoList.Count - 1]);
|
||||||
|
|
||||||
|
FName := ListUndoAction.FCadFileName;
|
||||||
|
// åñòü ôàéë
|
||||||
|
if FileExists(FName) then
|
||||||
|
begin
|
||||||
|
// åñëè íà 3Ä
|
||||||
|
CountInPrj := 0;
|
||||||
|
if not a3d then
|
||||||
|
begin
|
||||||
|
// Ïåðåä UNDO, ñîçäàåòñÿ ñëåïîê òåêóùåãî ñîñòîÿíèÿ äëÿ REDO
|
||||||
|
if ListUndoAction.ActionType = uat_Floor then
|
||||||
|
begin
|
||||||
|
CountInPrj := 0;
|
||||||
|
ListOfLists := TList.Create;
|
||||||
|
for i := 0 to ListUndoAction.FProjectUndoAction.FLinkUndoObject.Count - 1 do
|
||||||
|
begin
|
||||||
|
LinkUndoObject := TLinkUndoObject(ListUndoAction.FProjectUndoAction.FLinkUndoObject[i]);
|
||||||
|
if LinkUndoObject.FCad.FListType = lt_Normal then
|
||||||
|
begin
|
||||||
|
CountInPrj := CountInPrj + 1;
|
||||||
|
ListOfLists.Add(LinkUndoObject.FCad);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
SaveForProjectRedo(ListOfLists, ListUndoAction.FSavePM, ListUndoAction.FIsProject);
|
||||||
|
//FreeAndNil(ListOfLists);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
CountInPrj := 1;
|
||||||
|
SaveForRedo(ListUndoAction.ActionType, ListUndoAction.FSavePM, ListUndoAction.FIsProject, CountInPrj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//
|
||||||
|
if FListType <> lt_Normal then
|
||||||
|
PCad.RecordUndo := False;
|
||||||
|
// ïåðåä î÷èñòêîé ñáðîñèì ÷òîáû ñðàáîòàëà ïðîâåðêà â TConnectorObject.Destroy;
|
||||||
|
PCad.OnObjectInserted := nil;
|
||||||
|
|
||||||
|
//ClearSCSFigures;
|
||||||
|
Try
|
||||||
|
F_ProjMan.Tree_Catalog.Items.BeginUpdate;
|
||||||
|
//ClearFiguresOnListUndoRedo;
|
||||||
|
GProjectClose := True;
|
||||||
|
GClearFigures := True;
|
||||||
|
GCadForm.FCadClose := True;
|
||||||
|
GProjectClose := True;
|
||||||
|
//ClearFiguresOnListDelete(GCadForm);
|
||||||
|
ClearSCSFigures;
|
||||||
|
Finally
|
||||||
|
F_ProjMan.Tree_Catalog.Items.EndUpdate;
|
||||||
|
GProjectClose := false;
|
||||||
|
GClearFigures := false;
|
||||||
|
GCadForm.FCadClose := false;
|
||||||
|
GProjectClose := false;
|
||||||
|
End;
|
||||||
|
//PCad.OnObjectInserted := nil;
|
||||||
|
FUndoFiguresList.Clear;
|
||||||
|
PCad.LoadSCSFiguresFromFile(FName);
|
||||||
|
PCad.OnObjectInserted := PCadObjectInserted;
|
||||||
|
|
||||||
|
FUndoStatus := True;
|
||||||
|
try
|
||||||
|
if GListWithEndPoint = Self then
|
||||||
|
begin
|
||||||
|
GEndPoint := nil;
|
||||||
|
GListWithEndPoint := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
GNeedReRaiseProperties := False;
|
||||||
|
//Tolik
|
||||||
|
CadFigList := TList.Create;
|
||||||
|
for i := 0 to PCad.FigureCount - 1 do
|
||||||
|
CadFigList.Add(TFigure(PCad.Figures.Items[i]));
|
||||||
|
|
||||||
|
for i := 0 to CadFigList.Count - 1 do
|
||||||
|
begin
|
||||||
|
Figure := TFigure(CadFigList[i]);
|
||||||
|
|
||||||
|
if CheckFigureByClassName(Figure, 'TNet') then
|
||||||
|
begin
|
||||||
|
NetObj := TNet(PCad.Figures.Items[i]);
|
||||||
|
if NetObj.FComponID = 0 then
|
||||||
|
begin
|
||||||
|
FActiveNet := NetObj;
|
||||||
|
ActiveNet := FActiveNet;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else if CheckFigureByClassName(Figure, cTConnectorObject) then
|
||||||
|
begin
|
||||||
|
TConnectorObject(Figure).RaiseProperties(CadFigList);
|
||||||
|
TConnectorObject(Figure).FJoinedListIDForBox := -1;
|
||||||
|
end
|
||||||
|
else if CheckFigureByClassName(Figure, cTOrthoLine) then
|
||||||
|
TOrthoLine(Figure).RaiseProperties(CadFigList)
|
||||||
|
else if CheckFigureByClassName(Figure, cTSCSFigureGrp) then
|
||||||
|
TSCSFigureGrp(Figure).RaiseProperties(CadFigList)
|
||||||
|
else if CheckFigureByClassName(Figure, cTCabinet) then
|
||||||
|
TCabinet(Figure).RaiseProperties(CadFigList)
|
||||||
|
else if CheckFigureByClassName(Figure, cTCabinetExt) then
|
||||||
|
TCabinetExt(Figure).RaiseProperties(CadFigList)
|
||||||
|
else if CheckFigureByClassName(Figure, cTHouse) then
|
||||||
|
THouse(Figure).RaiseProperties(CadFigList);
|
||||||
|
end;
|
||||||
|
FreeAndNil(CadFigList);
|
||||||
|
|
||||||
|
finally
|
||||||
|
FUndoStatus := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
FindObjectsForConvertClasses;
|
||||||
|
PCad.DrawFigures(True);
|
||||||
|
|
||||||
|
// óäàëèòü ôàéë
|
||||||
|
if FileExists(FName) then
|
||||||
|
DeleteFile(FName);
|
||||||
|
// óäàëèòü ïîñëåäíèé êîòîðûé ïîäíèìàåòñÿ èç ñïèêà
|
||||||
|
if a3d then
|
||||||
|
G3dUndoActList.delete(0)
|
||||||
|
else
|
||||||
|
FSCSUndoList.Delete(FSCSUndoList.Count - 1);
|
||||||
|
|
||||||
|
// *UNDO ProjectManager*
|
||||||
|
UndoListInPM(FCADListID, ListUndoAction.FBasePath, ListUndoAction.FIsProject, 0, CountInPrj);
|
||||||
|
|
||||||
|
// åñòü ñâÿçè ñ äðóãèìè ýòàæàìè - ïîäíÿòü ñî âñåõ ñâÿçàííûõ ëèñòîâ
|
||||||
|
if not a3d then
|
||||||
|
begin
|
||||||
|
if ListUndoAction.ActionType = uat_Floor then
|
||||||
|
begin
|
||||||
|
LoadProjectUndoActions(Self, ListUndoAction);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if CountInPrj = 1 then
|
||||||
|
begin
|
||||||
|
// List Params
|
||||||
|
CurListParams := GetListParams(FCADListID);
|
||||||
|
FCanSaveForUndo := False;
|
||||||
|
LoadSettingsForListByParams(CurListParams, True);
|
||||||
|
SetVisibleCabinetsNumbers(FShowCabinetsNumbers);
|
||||||
|
SetVisibleCabinetsBounds(FShowCabinetsBounds);
|
||||||
|
FCanSaveForUndo := True;
|
||||||
|
OnAfterUndo;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if CountInPrj > 1 then
|
||||||
|
begin
|
||||||
|
if ListOfLists <> nil then
|
||||||
|
begin
|
||||||
|
for i := 0 to ListOfLists.Count - 1 do
|
||||||
|
begin
|
||||||
|
GCadForm := TF_CAD(ListOfLists[i]);
|
||||||
|
CurListParams := GetListParams(GCadForm.FCADListID);
|
||||||
|
GCadForm.FCanSaveForUndo := False;
|
||||||
|
LoadSettingsForListByParams(CurListParams, True);
|
||||||
|
SetVisibleCabinetsNumbers(GCadForm.FShowCabinetsNumbers);
|
||||||
|
SetVisibleCabinetsBounds(GCadForm.FShowCabinetsBounds);
|
||||||
|
GCadForm.FCanSaveForUndo := True;
|
||||||
|
GCadForm.OnAfterUndo;
|
||||||
|
end;
|
||||||
|
FreeAndNil(ListOfLists);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
//
|
||||||
|
end
|
||||||
|
else
|
||||||
|
FSCSUndoList.Remove(ListUndoAction);
|
||||||
|
// óäàëèòü îáúåêò UndoAction
|
||||||
|
FreeAndNil(ListUndoAction);
|
||||||
|
// Tolik --28/06/2016 --
|
||||||
|
if Assigned(F_SCSObjectsProp) then
|
||||||
|
if F_SCSObjectsProp.Showing then
|
||||||
|
F_SCSObjectsProp.ClearAllProperties;
|
||||||
|
//
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
on E: Exception do addExceptionToLogEx('TF_CAD.SCSUndoNormalList', E.Message);
|
||||||
|
end;
|
||||||
|
|
||||||
|
//Tolik 04/06/2021 --
|
||||||
|
if FListType <> lt_Normal then
|
||||||
|
PCad.RecordUndo := True;
|
||||||
|
//
|
||||||
|
|
||||||
|
// Tolik 26/09/2017 --
|
||||||
|
if FListSettings.ShowTracesCrossPoints > 0 then
|
||||||
|
ShowTracesIntersections(2, FListSettings.ShowTracesCrossPoints);
|
||||||
|
//
|
||||||
|
GCadForm := SavedGCadForm;
|
||||||
|
GCanRefreshCad := SaveGCadRefreshFlag;
|
||||||
|
EndProgress;
|
||||||
|
|
||||||
|
{append(f);
|
||||||
|
writeln(f, 'END');
|
||||||
|
writeln(f, '---------------------------------------------------------------------------');
|
||||||
|
CloseFile(f);}
|
||||||
|
PCad.refresh;
|
||||||
|
end;
|
||||||
|
|
||||||
|
(*
|
||||||
procedure TF_CAD.SCSUndoNormalList;
|
procedure TF_CAD.SCSUndoNormalList;
|
||||||
var
|
var
|
||||||
FName: string;
|
FName: string;
|
||||||
@ -11927,6 +12217,7 @@ begin
|
|||||||
CloseFile(f);}
|
CloseFile(f);}
|
||||||
PCad.refresh;
|
PCad.refresh;
|
||||||
end;
|
end;
|
||||||
|
*)
|
||||||
|
|
||||||
procedure TF_CAD.SCSUndoProjectPlan;
|
procedure TF_CAD.SCSUndoProjectPlan;
|
||||||
var
|
var
|
||||||
|
|||||||
@ -1074,7 +1074,10 @@ type
|
|||||||
procedure SetIsCableChannel(aListID, aLineID: Integer; aFlag: Boolean);
|
procedure SetIsCableChannel(aListID, aLineID: Integer; aFlag: Boolean);
|
||||||
|
|
||||||
// UNDO äëÿ ïðîåêòà ...
|
// UNDO äëÿ ïðîåêòà ...
|
||||||
procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean);
|
//Tolik 17/07/2025 -
|
||||||
|
//procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean);
|
||||||
|
procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean; a3d: boolean = false);
|
||||||
|
//
|
||||||
// óäàëèòü âñþ öåïî÷êó Undo â ñâÿçêå ñ äðóãèìè ýòàæàìè
|
// óäàëèòü âñþ öåïî÷êó Undo â ñâÿçêå ñ äðóãèìè ýòàæàìè
|
||||||
procedure DeleteProjectUndoActions(aCad: TF_CAD; aListUndoAction: TListUndoAction);
|
procedure DeleteProjectUndoActions(aCad: TF_CAD; aListUndoAction: TListUndoAction);
|
||||||
// ïîäíÿòü âñþ öåïî÷êó UNdo â ñâÿçêå ñ äðóãèìè ýòàæàìè
|
// ïîäíÿòü âñþ öåïî÷êó UNdo â ñâÿçêå ñ äðóãèìè ýòàæàìè
|
||||||
@ -1653,6 +1656,10 @@ var
|
|||||||
GFtpFromDisk: Boolean = True; // Tolik 23/12/2024
|
GFtpFromDisk: Boolean = True; // Tolik 23/12/2024
|
||||||
GFtpToDisk: Boolean = True; // Tolik 23/12/2024
|
GFtpToDisk: Boolean = True; // Tolik 23/12/2024
|
||||||
|
|
||||||
|
GisChangeFrom3D: Boolean = false; // Tolik 11/07/2025 -- (åñëè áûëè èçìåíåíèÿ íà êàäå ÷åðåç 3Ä)
|
||||||
|
G3dUndoList: TList = nil;
|
||||||
|
G3dUndoActList: TList = nil;
|
||||||
|
|
||||||
//************* Hot Keys *********************
|
//************* Hot Keys *********************
|
||||||
hkCtrlN,
|
hkCtrlN,
|
||||||
hkCtrlL,
|
hkCtrlL,
|
||||||
@ -48568,8 +48575,9 @@ begin
|
|||||||
on E: Exception do addExceptionToLogEx('U_Common.SetIsCableChannel', E.Message);
|
on E: Exception do addExceptionToLogEx('U_Common.SetIsCableChannel', E.Message);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
//Tolik 17/07/2025 --
|
||||||
procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean);
|
procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean; a3d: boolean = false);
|
||||||
|
//procedure SaveForProjectUndo(aLists: TList; aSavePM: Boolean; aIsProject: Boolean);
|
||||||
var
|
var
|
||||||
i, j: integer;
|
i, j: integer;
|
||||||
vList: TF_CAD;
|
vList: TF_CAD;
|
||||||
@ -48596,17 +48604,17 @@ begin
|
|||||||
ListUndoAction := nil; //#From Oleg# //14.09.2010
|
ListUndoAction := nil; //#From Oleg# //14.09.2010
|
||||||
//
|
//
|
||||||
if vList.FListType = lt_Normal then
|
if vList.FListType = lt_Normal then
|
||||||
ListUndoAction := vList.SaveForUndoNormalList(uat_Floor, aSavePM, aIsProject, i)
|
ListUndoAction := vList.SaveForUndoNormalList(uat_Floor, aSavePM, aIsProject, i, a3D)
|
||||||
else
|
else
|
||||||
if vList.FListType = lt_ProjectPlan then
|
if vList.FListType = lt_ProjectPlan then
|
||||||
ListUndoAction := vList.SaveForUndoProjectPlan(uat_Floor, aSavePM, aIsProject, i)
|
ListUndoAction := vList.SaveForUndoProjectPlan(uat_Floor, aSavePM, aIsProject, i, a3D)
|
||||||
else
|
else
|
||||||
if vList.FListType = lt_DesignBox then
|
if vList.FListType = lt_DesignBox then
|
||||||
ListUndoAction := vList.SaveForUndoDesignList(uat_Floor, aSavePM, aIsProject, i)
|
ListUndoAction := vList.SaveForUndoDesignList(uat_Floor, aSavePM, aIsProject, i, a3d)
|
||||||
// Tolik 12/02/2021 --
|
// Tolik 12/02/2021 --
|
||||||
else
|
else
|
||||||
if vList.FListType = lt_ElScheme then
|
if vList.FListType = lt_ElScheme then
|
||||||
ListUndoAction := vList.SaveForUndoELScheme(uat_Floor, aSavePM, aIsProject, i);
|
ListUndoAction := vList.SaveForUndoELScheme(uat_Floor, aSavePM, aIsProject, i, a3d);
|
||||||
|
|
||||||
// ListUndoAction := vList.SaveForUndo(uat_Floor, aSavePM, aIsProject, i);
|
// ListUndoAction := vList.SaveForUndo(uat_Floor, aSavePM, aIsProject, i);
|
||||||
//
|
//
|
||||||
|
|||||||
@ -5547,7 +5547,10 @@ function GetPathToRepDesignLang: String;
|
|||||||
function GetPathToSCSCADDir(AWithCreate: Boolean=false): string; // Ïóòü ê ïàïêå, ãäå õðàíÿòñÿ îòêðûòûå ÊÀÄ ëèñòû
|
function GetPathToSCSCADDir(AWithCreate: Boolean=false): string; // Ïóòü ê ïàïêå, ãäå õðàíÿòñÿ îòêðûòûå ÊÀÄ ëèñòû
|
||||||
function GetPathToSCSTmpDir: String;
|
function GetPathToSCSTmpDir: String;
|
||||||
function GetPathToSCSUndoDir(ADefine: Boolean=true): String;
|
function GetPathToSCSUndoDir(ADefine: Boolean=true): String;
|
||||||
function GetPathToSCSUndoUniqDir: String;
|
//Tolik 11/07/2025 --
|
||||||
|
//function GetPathToSCSUndoUniqDir: String;
|
||||||
|
function GetPathToSCSUndoUniqDir(aFor3D: Boolean = false): String;
|
||||||
|
//
|
||||||
function GetPathToUndoDir(ADefine: Boolean=true): String;
|
function GetPathToUndoDir(ADefine: Boolean=true): String;
|
||||||
function GetPathToUnPackedTmp(AFileNoExists: Boolean): String;
|
function GetPathToUnPackedTmp(AFileNoExists: Boolean): String;
|
||||||
function GetPathToUserReportFile(ARepFileName: String): String;
|
function GetPathToUserReportFile(ARepFileName: String): String;
|
||||||
@ -5743,13 +5746,20 @@ procedure UndoListInPM(aListID: Integer; aBasePath: string; AIsProject: Boolean;
|
|||||||
// Óäàëèòü ñëåïîê ëèñòà ïðîåêòà äëÿ îòêàòà - Âûçîâ èç CAD
|
// Óäàëèòü ñëåïîê ëèñòà ïðîåêòà äëÿ îòêàòà - Âûçîâ èç CAD
|
||||||
procedure DeleteUndoFromPM(aListID: Integer; aBasePath: string; AIsProject: Boolean);
|
procedure DeleteUndoFromPM(aListID: Integer; aBasePath: string; AIsProject: Boolean);
|
||||||
// Ñîçäàòü ñëåïîê ëèñòà äëÿ îòêàòà - Âûçîâ èç CAD
|
// Ñîçäàòü ñëåïîê ëèñòà äëÿ îòêàòà - Âûçîâ èç CAD
|
||||||
function SavePMForUndo(aID: Integer; AIsProject: Boolean): String;
|
//Tolik 18/07/2025 --
|
||||||
|
//function SavePMForUndo(aID: Integer; AIsProject: Boolean): String;
|
||||||
|
function SavePMForUndo(aID: Integer; AIsProject: Boolean; a3D: Boolean = false): String;
|
||||||
|
//
|
||||||
// Ñîçäàò undo ñëåïîê äëÿ ïðîåêòà
|
// Ñîçäàò undo ñëåïîê äëÿ ïðîåêòà
|
||||||
function SaveCurrProjectToUndoFiles: String;
|
//Tolik 11/07/2025 --
|
||||||
|
//function SaveCurrProjectToUndoFiles: String;
|
||||||
|
function SaveCurrProjectToUndoFiles(aFor3D: Boolean = false): String;
|
||||||
|
//
|
||||||
// Ñîçäàò undo ñëåïîê äëÿ ëèñòà
|
// Ñîçäàò undo ñëåïîê äëÿ ëèñòà
|
||||||
function SaveListToUndoFiles(AListID: Integer): String;
|
//Tolik 18/07/2025 --
|
||||||
|
//function SaveListToUndoFiles(AListID: Integer): String;
|
||||||
|
function SaveListToUndoFiles(AListID: Integer; a3D: Boolean = false): String;
|
||||||
|
//
|
||||||
// Ñîõðàíèò òåêóùèé ïðîåêò â UNDO ñòåê
|
// Ñîõðàíèò òåêóùèé ïðîåêò â UNDO ñòåê
|
||||||
function SaveCurrProjectToUndoStack: String;
|
function SaveCurrProjectToUndoStack: String;
|
||||||
// ñîõðàíèò ëèñò â UNDO ñòåê
|
// ñîõðàíèò ëèñò â UNDO ñòåê
|
||||||
@ -32145,6 +32155,29 @@ begin
|
|||||||
Result := GetAnsiTempPath;
|
Result := GetAnsiTempPath;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//Tolik 11/07/2025 --
|
||||||
|
function GetPathToSCSUndoUniqDir(aFor3D: Boolean = false): String;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
if aFor3D then
|
||||||
|
begin
|
||||||
|
Result := GetPathToSCSUndoDir +'\' + '3D';
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
i := 0;
|
||||||
|
while True do
|
||||||
|
begin
|
||||||
|
Result := GetPathToSCSUndoDir +'\'+ GetUniqueFileName('', '');
|
||||||
|
Inc(i);
|
||||||
|
if (i=15) or DirectoryExists(Result) then
|
||||||
|
Break; //// BREAK ////
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{
|
||||||
function GetPathToSCSUndoUniqDir: String;
|
function GetPathToSCSUndoUniqDir: String;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -32159,6 +32192,7 @@ begin
|
|||||||
Break; //// BREAK ////
|
Break; //// BREAK ////
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
function GetPathToUndoDir(ADefine: Boolean=true): String;
|
function GetPathToUndoDir(ADefine: Boolean=true): String;
|
||||||
begin
|
begin
|
||||||
@ -42250,23 +42284,35 @@ begin
|
|||||||
FullRemoveDir(aBasePath, true, true);
|
FullRemoveDir(aBasePath, true, true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function SavePMForUndo(aID: Integer; AIsProject: Boolean): String;
|
function SavePMForUndo(aID: Integer; AIsProject: Boolean; a3D: Boolean = false): String;
|
||||||
begin
|
begin
|
||||||
Result := '';
|
Result := '';
|
||||||
if AIsProject then
|
if AIsProject then
|
||||||
Result := SaveCurrProjectToUndoFiles
|
Result := SaveCurrProjectToUndoFiles
|
||||||
else
|
else
|
||||||
Result := SaveListToUndoFiles(AID);
|
//Tolik 18/07/2025 --
|
||||||
|
//Result := SaveListToUndoFiles(AID);
|
||||||
|
Result := SaveListToUndoFiles(AID, a3d);
|
||||||
|
//
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//Tolik 11/07/2025 --
|
||||||
|
function SaveCurrProjectToUndoFiles(aFor3D: Boolean = false): String;
|
||||||
|
begin
|
||||||
|
Result := GetPathToSCSUndoUniqDir(aFor3D);
|
||||||
|
|
||||||
|
if Not F_ProjMan.GSCSBase.CurrProject.ComplexSaveToDir(Result) then
|
||||||
|
Result := '';
|
||||||
|
end;
|
||||||
|
{
|
||||||
function SaveCurrProjectToUndoFiles: String;
|
function SaveCurrProjectToUndoFiles: String;
|
||||||
begin
|
begin
|
||||||
Result := GetPathToSCSUndoUniqDir;
|
Result := GetPathToSCSUndoUniqDir;
|
||||||
if Not F_ProjMan.GSCSBase.CurrProject.ComplexSaveToDir(Result) then
|
if Not F_ProjMan.GSCSBase.CurrProject.ComplexSaveToDir(Result) then
|
||||||
Result := '';
|
Result := '';
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
function SaveListToUndoFiles(AListID: Integer): String;
|
function SaveListToUndoFiles(AListID: Integer; a3d: Boolean = false): String;
|
||||||
var
|
var
|
||||||
SCSList: TSCSList;
|
SCSList: TSCSList;
|
||||||
begin
|
begin
|
||||||
@ -42274,7 +42320,21 @@ begin
|
|||||||
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(AListID);
|
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(AListID);
|
||||||
if SCSList <> nil then
|
if SCSList <> nil then
|
||||||
begin
|
begin
|
||||||
Result := GetPathToSCSUndoUniqDir;
|
Result := GetPathToSCSUndoUniqDir(a3D);
|
||||||
|
//Tolik18/7/2025 --
|
||||||
|
if a3d then //òóò ïðàêòè÷åñêè áóäåò 2 íîâûõ êàòàëîãà, ïîòîìó íå ñîçäàñò...íóæíî ñîçäàòü îäèí, à âòîðîé (3Ä)
|
||||||
|
//óæå ñîçäàñòñÿ äàëåå
|
||||||
|
begin
|
||||||
|
if Not DirectoryExists(Result) then
|
||||||
|
CreateDir(Result);
|
||||||
|
if DirectoryExists(Result) then
|
||||||
|
Result := Result + '\' + GetUniqueFileName('', '')
|
||||||
|
else
|
||||||
|
Result := '';
|
||||||
|
end;
|
||||||
|
//
|
||||||
|
if Result = '' then
|
||||||
|
exit;
|
||||||
if Not SCSList.ComplexSaveToDir(Result) then
|
if Not SCSList.ComplexSaveToDir(Result) then
|
||||||
Result := '';
|
Result := '';
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -1 +1,3 @@
|
|||||||
тут до изменения UNDO перед 3Д, чтобы потом норм восстановить, так как придется внести слишком много изменений
|
Undo for 3d Project пока черновик, переписать/дописать в плане запрета УНДО для када, если 3Д
|
||||||
|
Сброс и перезапуск по кнопке применения с 3Д модели, а назакрытии 3Д как раз откат,
|
||||||
|
если что останется и тогда будет ОК
|
||||||
Loading…
x
Reference in New Issue
Block a user