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
091898f947
commit
9fc3c97d9f
@ -22243,6 +22243,10 @@ var
|
||||
begin
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//Tolik 13/06/2025 --
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FListID = TF_CAD(TPowerCad(RelatedSCSLine.Owner).Owner).FCADListID then
|
||||
begin
|
||||
//
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject.ID = RelatedSCSLine.ID then
|
||||
begin
|
||||
RelatedLine := T3DLine(TTreeNode(SCSModelTree.Items[i]).Data);
|
||||
@ -22251,6 +22255,7 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
if RelatedLine <> nil then
|
||||
begin
|
||||
if A3DConn.FSCSObject.ID = RelatedLine.FJoinConnector1.FSCSObject.ID then
|
||||
@ -22279,6 +22284,10 @@ var
|
||||
begin
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//Tolik 13/06/2025 --
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FListID = TF_CAD(TPowerCad(RelatedSCSLine.Owner).Owner).FCADListID then
|
||||
begin
|
||||
//
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject.ID = RelatedSCSLine.ID then
|
||||
begin
|
||||
RelatedLine := T3DLine(TTreeNode(SCSModelTree.Items[i]).Data);
|
||||
@ -22287,6 +22296,7 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if RelatedLine <> nil then
|
||||
begin
|
||||
@ -22304,6 +22314,10 @@ var
|
||||
begin
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//13/06/2025 -- Tolik Çäåñü òîæå ïðîâåðÿåì íà ñîâïàäåíèå ëèñòà
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FListID = TF_CAD(TPowerCad(RelatedSCSLine.Owner).Owner).FCADListID then
|
||||
begin
|
||||
//
|
||||
if T3DLine(TTreeNode(SCSModelTree.Items[i]).Data).FSCSObject.ID = RelatedSCSLine.ID then
|
||||
begin
|
||||
RelatedLine := T3DLine(TTreeNode(SCSModelTree.Items[i]).Data);
|
||||
@ -22312,6 +22326,7 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if RelatedLine <> nil then
|
||||
begin
|
||||
@ -22372,6 +22387,10 @@ var
|
||||
begin
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[j]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//Tolik 13/06/2025 -- ïðîâåðÿåì íà ñîâïàäåíèå ëèñòîâ
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[j]).Data).FListID = TF_CAD(TPowerCad(SCSConn.Owner).Owner).FCADListID then
|
||||
begin
|
||||
//
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[j]).Data).FSCSObject.ID = SCSConn.ID then
|
||||
begin
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[j]).Data).FisPipeElement then
|
||||
@ -22385,6 +22404,7 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
AlignPipeObjects;
|
||||
NextSideConnsList.Free;
|
||||
SCSLineList.Free;
|
||||
@ -22987,12 +23007,14 @@ var
|
||||
currCad: TF_CAD;
|
||||
FloorHeight, MinFloorHeight, MaxFloorHeight : Double;
|
||||
ListParams: TListParams;
|
||||
ParentConnector: T3DConnector;
|
||||
ParentConnector, RelatedConn: T3DConnector;
|
||||
i: integer;
|
||||
CorrectConn: T3DConnector;
|
||||
ConnNode, ParentNode: TTreeNode;
|
||||
CanGetParent: Boolean;
|
||||
|
||||
NextConnList: TList;
|
||||
dist: Double;
|
||||
PointMoveTo: TDoublePoint;
|
||||
begin
|
||||
//Result := True;
|
||||
Result := False;
|
||||
@ -23059,10 +23081,48 @@ var
|
||||
end;
|
||||
Result := True;
|
||||
|
||||
//Ïðåäïîëàãàåìàÿ òî÷êà, êóäà ïîïàäåì â ðåçóëüòàòå ñäâèãà
|
||||
PointMoveTo.x := CorrectConn.FGLPoint.x + dp.x;
|
||||
PointMoveTo.y := CorrectConn.FGLPoint.y + dp.y;
|
||||
PointMoveTo.z := CorrectConn.FGLPoint.z + dp.z;
|
||||
|
||||
//Âûëåò çà ïðåäåëû Êàäà èëè ýòàæà ïî âûñîòå
|
||||
if ((CompareValue(PointMoveTo.y, MinFloorHeight) = -1) or
|
||||
(CompareValue(PointMoveTo.y, MaxFloorHeight) = 1)) then
|
||||
begin
|
||||
Result := False;
|
||||
exit;
|
||||
end;
|
||||
//
|
||||
|
||||
//Åñëè ýëåìåíò òðóáû ïðîâåðÿåì âûñîòû è "íàåçäû"
|
||||
if CorrectConn.FisPipeElement then
|
||||
begin
|
||||
NextConnList := TList.create;
|
||||
//åñëè åñòü ïðèñîåäèíåííûå òðàññû - ïðîâåðÿåì íàåçäû íà "ñîñåäíèå êîííåêòîðû"
|
||||
for i := 0 to CorrectConn.FJoinedLinesList.Count - 1 do
|
||||
begin
|
||||
if T3dLine(CorrectConn.FJoinedLinesList[i]).FJoinConnector1.FSCSComponID = CorrectConn.FSCSComponID then
|
||||
NextConnList.Add(T3dLine(CorrectConn.FJoinedLinesList[i]).FJoinConnector2)
|
||||
else
|
||||
NextConnList.Add(T3dLine(CorrectConn.FJoinedLinesList[i]).FJoinConnector1);
|
||||
end;
|
||||
|
||||
//ïðîâåðÿåì ñäâèã îòíîñèòåëüíî âñåõ ïðîòèâîïîëîæíûõ êîííåêòîðîâ ïðèñîåäèíåííûõ òðàññ
|
||||
for i := 0 to NextConnList.Count - 1 do
|
||||
begin
|
||||
RelatedConn := T3DConnector(NextConnList[i]);
|
||||
//Åñëè äëèíà òðàññû â ðåçóëüòàòå ñäâèãà áóäåò ñëèøêîì ìàëà - ÄÂÈÃÀÒÜ ÍÈÇÇß...
|
||||
dist := sqrt(sqr(RelatedConn.FGLPoint.x -PointMoveTo.x) + sqr(RelatedConn.FGLPoint.y -PointMoveTo.y) + sqr(RelatedConn.FGLPoint.z -PointMoveTo.z));
|
||||
if comparevalue(dist, 0.2) <> 1 then
|
||||
begin
|
||||
Result := False;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
NextConnList.Free;
|
||||
if not Result then
|
||||
exit;
|
||||
end;
|
||||
|
||||
{
|
||||
@ -23281,6 +23341,12 @@ begin
|
||||
begin
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[k]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//Tolik 13/06/2025 -- íóæíî ïðîâåðÿòü è ëèñò, íà êîòîðîì íàõîäèòñÿ îáúåêò, ò.ê. ID-êè ôîðìèðóþòñÿ íà êàæäîì ëèñòå(äëÿ ôèãóð)
|
||||
// äëÿ êàæäîãî ëèñòà, íà÷èíàÿ ñ 1000000...ìîæåò ïîëó÷èòüñÿ ïðè ìîäåëè ïðîåêòà, ÷òî áóäåò íàñêîëüêî êîííåêòîðîâ èëè òðàññ
|
||||
// ñ îäèíàêîâûìè àéäèøíèêàìè è ïîëó÷èòñÿ õåðíÿ òèïà ìóëüòèñåëåêòà òîãäà, êîãäà îí íå íóæåí
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[k]).Data).FListID = xConn.FListID then
|
||||
begin
|
||||
//
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[k]).Data).FSCSObject.ID = xConn.FSCSObject.ID then
|
||||
begin
|
||||
if T3DConnector(TTreeNode(SCSModelTree.Items[k]).Data).FGLObject <> nil then
|
||||
@ -23294,12 +23360,19 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
for k := 0 to DuplicateNodeTree.Items.Count - 1 do
|
||||
begin
|
||||
if TObject(TTreeNode(DuplicateNodeTree.Items[k]).Data) is T3DConnector then
|
||||
begin
|
||||
if T3DConnector(TTreeNode(DuplicateNodeTree.Items[k]).Data).FSCSObject <> nil then
|
||||
begin
|
||||
//Tolik 13/06/2025 -- íóæíî ïðîâåðÿòü è ëèñò, íà êîòîðîì íàõîäèòñÿ îáúåêò, ò.ê. ID-êè ôîðìèðóþòñÿ íà êàæäîì ëèñòå(äëÿ ôèãóð)
|
||||
// äëÿ êàæäîãî ëèñòà, íà÷èíàÿ ñ 1000000...ìîæåò ïîëó÷èòüñÿ ïðè ìîäåëè ïðîåêòà, ÷òî áóäåò íàñêîëüêî êîííåêòîðîâ èëè òðàññ
|
||||
// ñ îäèíàêîâûìè àéäèøíèêàìè è ïîëó÷èòñÿ õåðíÿ òèïà ìóëüòèñåëåêòà òîãäà, êîãäà îí íå íóæåí
|
||||
if T3DConnector(TTreeNode(DuplicateNodeTree.Items[k]).Data).FListID = xConn.FListID then
|
||||
begin
|
||||
//
|
||||
if T3DConnector(TTreeNode(DuplicateNodeTree.Items[k]).Data).FSCSObject.ID = xConn.FSCSObject.ID then
|
||||
begin
|
||||
if T3DConnector(TTreeNode(DuplicateNodeTree.Items[k]).Data).FGLObject <> nil then
|
||||
@ -23313,6 +23386,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{
|
||||
for l := 0 to RelatedPipeConns.Count - 1 do
|
||||
begin
|
||||
@ -23407,7 +23481,10 @@ begin
|
||||
if TglPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes.Count = 2 then
|
||||
begin
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.x := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[0].X;
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[0].Y - xConn.FZOrder;
|
||||
//Tolik 13/06/2025 --
|
||||
//T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[0].Y - xConn.FZOrder;
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[0].Y;
|
||||
//
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.z := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[0].Z;
|
||||
end
|
||||
else
|
||||
@ -23415,7 +23492,10 @@ begin
|
||||
if TglPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes.Count = 3 then
|
||||
begin
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.x := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[1].X;
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[1].Y - xConn.FZOrder;
|
||||
//Tolik 13/06/2025 --
|
||||
//T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[1].Y - xConn.FZOrder;
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.y := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[1].Y;
|
||||
//
|
||||
T3DConnector(RelatedPipeConns[i]).FGLPoint.z := TGLPipe(T3DConnector(RelatedPipeConns[i]).FGLObject).Nodes[1].Z;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4471,12 +4471,19 @@ var
|
||||
var i, j, TubeCount: Integer;
|
||||
LineCatalog: TSCSCatalog;
|
||||
LineSCSComponent: TSCSComponent;
|
||||
//Tolik 13/06/2025 -- åñëè áóäåò ìîäåëü ïðîåêòà, íóæíî ïîëó÷àòü ëèñò êàæäîãî îáúåêòà îòäåëüíî
|
||||
SCSList: TSCSList;
|
||||
|
||||
begin
|
||||
Result := False;
|
||||
TubeCount := 0;
|
||||
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(TF_CAD(TPowerCad(aConn.Owner).Owner).FCADListID);
|
||||
if SCSList <> nil then
|
||||
begin
|
||||
for i := 0 to AConn.JoinedOrtholinesList.Count - 1 do
|
||||
begin
|
||||
LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLinesList[i]).ID);
|
||||
//LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLinesList[i]).ID);
|
||||
LineCatalog := SCSList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLinesList[i]).ID);
|
||||
if LineCatalog <> nil then
|
||||
begin
|
||||
for j := 0 to LineCatalog.ComponentReferences.Count - 1 do
|
||||
@ -4490,6 +4497,7 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Result := (TubeCount > 0);
|
||||
end;
|
||||
|
||||
@ -4508,6 +4516,7 @@ var
|
||||
CableOffset: Double;
|
||||
ConnSide: integer;
|
||||
exVals: Boolean;
|
||||
SCSList: TSCSList; //13/06/2025 -- Tolik - òåêóùèé ëèñò(åñëè áóäåò ìîäåëü ïðîåêòà, ÷òîá íå áûëî "ïîòåðÿøåê"
|
||||
|
||||
//Tolik 12/11/2021 -- ïðîâåðêà íà íàëè÷èå â òî÷å÷íîì îáúåêòå ýëåìåíòà òðóáíîãî ñîåäèíåíèÿ
|
||||
function CheckisPipeElement(aConnector: TConnectorObject): Boolean;
|
||||
@ -4555,8 +4564,14 @@ var
|
||||
begin
|
||||
for i := 0 to aConn.JoinedOrthoLineslist.Count - 1 do
|
||||
begin
|
||||
LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLineslist[i]).ID);
|
||||
//Tolik 13/06/2025 --
|
||||
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(TF_CAD(TPowerCad(aConn.Owner).Owner).FCADListID);
|
||||
if SCSList <> nil then
|
||||
begin
|
||||
LineCatalog := SCSList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLineslist[i]).ID);
|
||||
//LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLineslist[i]).ID);
|
||||
if LineCatalog <> nil then
|
||||
begin
|
||||
if PassedLineList.IndexOf(LineCatalog) = -1 then
|
||||
begin
|
||||
for j := 0 to LineCatalog.ComponentReferences.Count - 1 do
|
||||
@ -4578,6 +4593,8 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
@ -4586,8 +4603,15 @@ var
|
||||
Joinedconn := TconnectorObject(aConn.JoinedconnectorsList[j]);
|
||||
for i := 0 to Joinedconn.JoinedOrthoLinesList.Count - 1 do
|
||||
begin
|
||||
LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(Joinedconn.JoinedOrthoLineslist[i]).ID);
|
||||
//Tolik 13/06/2025 --
|
||||
SCSList := F_ProjMan.GSCSBase.CurrProject.GetListBySCSID(TF_CAD(TPowerCad(aConn.Owner).Owner).FCADListID);
|
||||
if SCSList <> nil then
|
||||
begin
|
||||
LineCatalog := SCSList.GetCatalogFromReferencesBySCSID(TOrthoLine(aConn.JoinedOrthoLineslist[i]).ID);
|
||||
|
||||
//LineCatalog := F_ProjMan.GSCSBase.CurrProject.CurrList.GetCatalogFromReferencesBySCSID(TOrthoLine(Joinedconn.JoinedOrthoLineslist[i]).ID);
|
||||
if LineCatalog <> nil then
|
||||
begin
|
||||
if PassedLineList.IndexOf(LineCatalog) = -1 then
|
||||
begin
|
||||
for k := 0 to LineCatalog.ComponentReferences.Count - 1 do
|
||||
@ -4611,6 +4635,8 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
(*
|
||||
for i := 0 to CableList.Count - 1 do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user