Zobrazit plnou verzi příspěvku: Jak správně použít 'Rozdělit' v C#?

TheXYZT
18.11.2020, 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ý objektA zde jsem vybral nástroj rozdělení => červeně označený objektV 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ý objektSplitAll: bude TrueFacesOrBody: 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
TheXYZT2020-11-18 12:55:44

Navara
18.11.2020, 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í [code]Dim part As PartDocument = ThisDoc.DocumentDim splitTool = part.ComponentDefinition.WorkSurfaces(1)Dim splitAll = TrueDim facesOrBody = part.ComponentDefinition.SurfaceBodies(1)part.ComponentDefinition.Features.SplitFeatures.SplitFaces(splitTool,splitAll, facesOrBody)[/code]uploads/9996/20201118-01.zipPS: Na Autodesku jsem to asi přehlédnul

TheXYZT
20.11.2020, 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);

Navara
20.11.2020, 12:29
Bacha, v Inventoru jsou jeho interní kolekce indexovány od 1

TheXYZT
20.11.2020, 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.

TheXYZT
20.11.2020, 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ů.

Navara
20.11.2020, 12:45
Dejte mi sem kompletní příklad, podívám se na to

TheXYZT
20.11.2020, 12:49
uploads/99624/SESTAVA_TEST.zip

Navara
20.11.2020, 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

TheXYZT
20.11.2020, 13:53
Super práce, opravil jsem chybu v rozšíření a už to běží, děkuji mnohokráte :)

Navara
20.11.2020, 14:05
Rádo se stalo