Vytisknout stránku | Zavřít okno

Jak správně použít 'Rozdělit' v C#?

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: Inventor
Popis fóra: Otázky k programům Autodesk Inventor, Inventor Professional a Inventor LT, Product Design Collection a Suite, Factory Design Suite; a digitální prototypy
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=31286
Datum vytištění: 28.kvě.2026 v 09:35


Téma: Jak správně použít 'Rozdělit' v C#?
Odeslal: TheXYZT
Předmět: Jak správně použít 'Rozdělit' v C#?
Datum odeslání: 18.lis.2020 v 12:48
Dobrý den,

potřeboval bych pomoci s příkazem Rozdělit, který mi vůbec nefunguje a možná ho chápu špatně.

Problém je v tom, že nic co jsem vyzkoušel zatím nefungovalo.
Hádám, že "správně" jsem vybral Faces => neboli červeně šrafovaný objekt


A zde jsem vybral nástroj rozdělení => červeně označený objekt

V C# existuje metoda SplitFaces a popis této metody je následující:

SplitFeature SplitFaces(object SplitTool, bool SplitAll = true, object FacesOrBody = null)

A podle definice, NástrojRozdělení může být jedním z těchto objektů WorkPlane, WorkSurface, SurfaceBody a nebo Path.

Vím, že:

SplitTool: červeně označený objekt

SplitAll: bude True

FacesOrBody: je nepovinný, takže nevím jestli je vůbec za potřebí

A tady je vše co jsem zkusil. Možná to opravdu dělám špatně, jen opravdu nevím kde.

Jinak jsem se už ptal na oficiálních fórech Autodesku, ale nikdo neodpověděl.

Prosím Vás za jakoukoliv odezvu, Děkuji :)

Odkaz zde: https://forums.autodesk.com/t5/inventor-customization/how-to-correctly-splitfaces-all-of-them/td-p/9855801" rel="nofollow - https://forums.autodesk.com/t5/inventor-customization/how-to-correctly-splitfaces-all-of-them/td-p/9855801





Odpovědi:
Odeslal: Navara
Datum odeslání: 18.lis.2020 v 14:42
Podle mě je to celkem jednoduché. Viz příloha (Inv 2020)

Tohle je sice iLogic, ale převod do C# je triviální
 
Dim part As PartDocument = ThisDoc.Document
Dim splitTool = part.ComponentDefinition.WorkSurfaces(1)
Dim splitAll = True
Dim facesOrBody = part.ComponentDefinition.SurfaceBodies(1)

part.ComponentDefinition.Features.SplitFeatures.SplitFaces(splitTool,splitAll, facesOrBody)



uploads/9996/20201118-01.zip" rel="nofollow - uploads/9996/20201118-01.zip

PS: Na Autodesku jsem to asi přehlédnul


Odeslal: TheXYZT
Datum odeslání: 20.lis.2020 v 12:27
Nefunguje.



Tahle součást (neboli SplitTool) má jen 1 SurfaceBody, ale i tak, když to zkusím, tak prostě to nejde.

SplitFeatures splitFea = partDoc.ComponentDefinition.Features.SplitFeatures;
SurfaceBody psb = partComDef.SurfaceBodies[0];
SurfaceBody sb = targetDef.SurfaceBodies[1];
splitFea.SplitFaces(psb, true, sb);


Odeslal: Navara
Datum odeslání: 20.lis.2020 v 12:29
Bacha, v Inventoru jsou jeho interní kolekce indexovány od 1



Odeslal: TheXYZT
Datum odeslání: 20.lis.2020 v 12:34
Opravený index -> SurfaceBody psb = partComDef.SurfaceBodies[1];
Ale stále nic.

Tady je chybová hláška, která mi je zřejmá popisem, ale opravdu nevím.




Odeslal: TheXYZT
Datum odeslání: 20.lis.2020 v 12:43
Možná ještě může být problém v tom, že než použiju nástroj Rozdělit, tak se ještě použije nástroj "Kopírovat objekt", kde asociatvně zkopíruju porvchy objektů.




Odeslal: Navara
Datum odeslání: 20.lis.2020 v 12:45
Dejte mi sem kompletní příklad, podívám se na to



Odeslal: TheXYZT
Datum odeslání: 20.lis.2020 v 12:49
uploads/99624/SESTAVA_TEST.zip" rel="nofollow - uploads/99624/SESTAVA_TEST.zip



Odeslal: Navara
Datum odeslání: 20.lis.2020 v 13:31
Step sice není ideální zdroj, ale po drobné úpravě to funguje.
V součásti plechu je funkční iLogic pro rozdělení ploch.
Jediný problém je v tom, že kopírovaná plocha pera protíná pouze jednu vnější plochu plechu.

  uploads/9996/SESTAVA_TEST_2020-11-20_13-30-53.zip" rel="nofollow - uploads/9996/SESTAVA_TEST_2020-11-20_13-30-53.zip


Odeslal: TheXYZT
Datum odeslání: 20.lis.2020 v 13:53
Super práce, opravil jsem chybu v rozšíření a už to běží, děkuji mnohokráte :)


Odeslal: Navara
Datum odeslání: 20.lis.2020 v 14:05
Rádo se stalo Smile



Vytisknout stránku | Zavřít okno