Fördelen med dubbla solidkärnor i IRONCAD

Fördelen med dubbla solidkärnor i IRONCAD
Emil Rindell

Emil Rindell

Jonas Bryntesson

Jonas Bryntesson

Henrik Andersson

Henrik Andersson

2023-09-08

5 min read
Emil Rindell

Emil Rindell

Jonas Bryntesson

Jonas Bryntesson

Henrik Andersson

Henrik Andersson

2023-09-08

5 min read

Parasolid och ACIS - att IRONCAD använder två solidkärnor samtidigt, det är inget man egentligen lägger märke till i det vardagliga arbetet. Förutom att "under huven" förenkla vissa komplexa moment utan att man som vanlig användare märker av det innebär det också att programmet kan ta hand om modeller som kommer från andra helt olika 3D CAD-system på ett väldigt bra sätt. Man kan dock behöva växla mellan de två i vissa situationer, vilket sker med en enkel knapptryckning.

Vad är en solidkärna

En geometrisk modelleringskärna (oftast kallad solidkärna) är den mjukvarukomponent (kod) som används i ett 3D CAD-system och som definierar hur en 3D-geometri är uppbyggd. För att kunna ta fram en "korrekt topologisk 3D-modell" används solidkärnan för att matematiskt beskriva hur 3D-modellen ser ut.

I begynnelsen hanterades och beräknades geometriska solider fram av varje enskilt 3D CAD-system, men på 70- och 80-talet kommersialiserades solidkärnan, vilket för många utvecklare istället blev en färdig komponent som kunde licensieras och "bakas in" i sitt egna 3D CAD-system. Det finns idag flera företag (och t.o.m. länder) som utvecklar olika konkurrerande solidkärnor och som används av många välkända eller mindre kända 3D CAD-system, där IRONCAD är unik i sitt slag då den använder sig av (licensierar) två parallella solidkärnor samtidigt! Dessa två är;

PARASOLID

Ägs och utvecklas av Siemens Digital Industries Software och är det idag dominerande alternativet bland flest CAD- och CAM-system. Själva utvecklingen av Parasolid skedde från början vid engelska Cambridge, där den först släpptes 1988 som en vidareutveckling av den första kommersiellt tillgängliga solidkärnan ROMULUS (som släpptes 1978).

ACIS

Ägs och utvecklas av Spatial Corp. (del av franska Dassault Systemes). Även ACIS utvecklades från den tidiga ROMULUS, av samma personer, för att användas i ett nytt amerikanskt CAM-system som utvecklades av just Spatial och som skulle släppas sent 80-tal.

Vid releasen av ACIS-kärnan 1989 var företaget Hewlett-Packard snabba att licensiera den för sitt UNIX- och senare DOS-baserade HP ME 3D CAD-system, vilket nyttjades för deras helt revolutionerande sätt att hantera 3D-modeller och som på olika vägar senare kom att bli en viktig byggsten i det som idag är IRONCAD.

Ett enkelt exempel där en radie i ett hörn hanteras annorlunda av Parasolid och ACIS.


Dual Kernel och Kernel Collaboration

I de första versionerna baserades IRONCAD enbart på ACIS-kärnan och först med IRONCAD version 3 (1999/2000) lades Parasolid-kärnan till genom att R&D-teamet samtidigt utvecklade något som kallas för Kernel Collaboration. Mer om det senare.

För att bestämma vilken solidkärna som ska vara "primär" i IRONCAD kan man klicka på fliken Properties, nere till vänster i 3D-scenen, och där byta mellan de två solidkärnorna. Detta bestämmer vilken av dem som ska agera "primär" solidkärna för nästa nya part som skapas. Detta gäller dock inte om man importerar filer i just filformaten Parasolid (*.x_t) eller ACIS (*.sat), då de per automatik kommer att nyttja "sin egen" solidkärna.

Genom att klicka på fliken Properties kan man snabbt växla mellan vilken av de två solidkärnorna som ska vara primär.

Man kan även i efterhand byta mellan de två solidkärnorna för en eller flera parter samtidigt. Det gäller även en eller flera sammanställningar (Assembly) som innehåller flera objekt.

Genom att markera en Part (eller Assembly) kan man i Property Browser se
vilken solidkärna som används för tillfället och vid behov växla till den andra.

Om man jobbar i ett 3D CAD-system som baseras på den ena solidkärnan, kan man nämligen få problem när man ska ta emot och hantera modeller som kommer från ett 3D CAD-system som baseras på den andra solidkärnan. Det är (än så länge) enbart IRONCAD som nyttjar både Parasolid- och ACIS-kärnorna samtidigt och tekniken för att hantera modeller det här sättet, Kernel Collaboration, utvecklades av R&D-teamet under sent 90-tal.

En part använder som sagt primärt den ena solidkärnan, men det finns en del situationer där "geometriska problem" automatiskt fixas av programmet genom Kernel Collaboration, utan att man som användare ens märker det. Det gäller främst när man skapar eller ändrar på Modification Features som Blend, Chamfer, Shell eller använder kommandot Boolean operation (slår ihop parter) samt vid arbete med direkteditering (Direct Face Modeling). Om Parasolid stöter på ett geometriskt komplext problem tar ACIS-kärnan direkt vid och löser detta "under huven".

Det finns dock några situationer där en begränsning (eller ev. bugg) i den ena solidkärnan inte direkt hanteras automatiskt, utan man måste växla över så att den andra solidkärnan är "primär". Ett sådant exempel är "non-manifold".

Topologiska problem - Non-Manifold

Det finns en tydlig begränsning med Parasolid-kärnan, där något som kallas för "nolltjocklek" eller "non-manifold" är ett problem som man ibland kan stöter på under tiden man modiferar geometrier. Ett exempel är om ett cylindriskt hål läggs tangent mot ett plan eller tangent mot en annan cylindrisk yta. Ett annat om en kantlinje på ett block tangerar en kantlinje på ett annat block. Detta innebär att modellerna plötsligt kan visas som "ihåliga" eller ger felmeddelanden eller påverkar export eller 2D-ritningen på ett negativt sätt. ACIS-kärnan skrevs från början på ett sätt så att det ska kunna hantera "non-manifold" på ett bättre sätt, men det finns även för ACIS-kärnan olika typer av begränsningar eller problem.

Här följer några exempel på "non-manifold" på identiska parter som nyttjar den ena eller den andra solidkärnan; Parasolid till vänster, ACIS till höger.

Först ut är ett cylindriskt hål som tangerar konturen på ett annat cylindriskt hål där Parasolid-kärnan oftast visar en "ihålig" ytmodellsliknande part, medan ACIS-kärnan kan hantera detta bättre.

Ett cylindriskt hål tangerar konturen på ett annat cylindriskt hål, något som även kallas för "Non-Manifold".
Parasolid används till vänster, ACIS till höger.

Detsamma kan man se mellan två block där kantlinjerna mellan blocket tangerar varandra. Ett läge som går att hamna i när man t.ex. drar med Sizebox-handtag för att snappa en sida mot en annan. Det är dock sällan man egentligen modellerar upp en modell som är tänkt att använda sig av det läget, annat än tillfälligt innan fler features lagts till eller ytterligare ändringar sker. Detta då en modell som består av en "non-manifold" i sig troligen inte heller går att tillverka. Exemplet med de två blocken här under är därför ett överdrivet sätt att visa hur felet kan uppstå.

Med kommandot Statistics, kan man kontrollera om geometrin är "topologiskt korrekt" och om det inte är det visas detta genom tydligt gulmarkerade ytor, kanter och/eller punkter. Lösning på problemet varierar med modellen.

Ett annat exempel är en Loft feature vars två tvärsnitt (sketcher) på var sida är associativa mot andra features. Där har ofta Parasolid-kärnan problem att lösa detta då det blir för tajt mellan formerna och då den har svårt att hantera en egenskap som kallas för Tangent Factor (hur långt ska formen "skjutas fram", innan den "böjer av" mot nästa snitt). Detta fungerar oftast bättre med ACIS-kärnan.

Exempel på en typ av Loft feature, associativ med två andra features, som Parasolid-kärnan (vänster) ofta går bet på.
Här ska man komma ihåg att växla solidkärna (kortkommando [Ctrl] [K] ) om problem uppstår!

Ett sista exempel är det motsatta, där Parasolid-kärnan fixar en form som inte ACIS-kärnan klarar av. Oftast beror detta på små justeringar av egenskaper och det finns i det här fallet inte en direkt tydlig orsak till vad som får den att fungera och inte. Här behöver man ofta växla mellan de två solidkärnorna och testa sig fram. Med ACIS-kärnan visas inte heller alla inställningar som är möjliga med en Thread feature.

Med Thread feature kan man skapa en "gänggeometri" kring en cylindrisk eller konisk yta,
något som Parasolid-kärnan (vänster) ibland klarar av bättre än ACIS-kärnan.

Programmet TransMagic har en längre och mer teknisk beskrivning av detta problem och hur man kan hantera det för att skapa korrekta solider.

Utvecklarna av TransMagic har också försökt förenkla begreppet (här plockat från deras blogginlägg ovan): Manifold är en geometrisk topologiterm som betyder: Att tillåta osammanhängande klumpar att existera i en enda logisk kropp. Icke-manifold betyder då: Alla osammanhängande klumpar måste vara sin egen logiska kropp. Naturligtvis är den definitionen ofta mer förvirrande, så det kanske bästa sättet att tänka på manifold och icke-manifold är detta: Manifold betyder i huvudsak "tillverkningsbar" och icke-manifold betyder "icke-tillverkningsbar". Med andra ord betyder manifold: Du kan bearbeta formen av ett enda metallblock... där det genom icke-manifold inte går att bearbeta från ett enda metallblock.

IronCAD Community

På IronCAD's användarforum finns ett par intressanta trådar, dels en äldre What Does Kernel Collaboration Mean? samt en senare tråd med några exempel Dual Geometric Modelling Kernels - Kernel Collaboration (Examples).




Avslutningsvis, tänk på att båda dessa solidkärnor fortsätter att utvecklas och att det som tidigare varit en sanning kanske inte längre är det. Att växla mellan de två är alltid något man ska tänka på som en möjlig lösning när man stöter på ett problem, även om det inte fungerat i en tidigare version.

>