PIAS Handleiding  2024
Programma voor de Integrale Aanpak van het Scheepsontwerp
Draadmodellen

De hoofdreden voor de ondersteuning van draadmodellen in Fairway betreft de de import van 3D lijnen uit een andere bron dan Fairway — bijvoorbeeld uit een algemeen CAD systeem zoals Autocad of Rhino — en de conversie daarvan naar een Fairway model. De hoofdlijnen van dit proces wordt beschreven in De globale procedure van het importeren van DXF of IGES bestanden.

De aanwezigheid van deze functionaliteit dient ook een tweede doel, namelijk dat een ontwerp waarbij met een blanco ‘vel’ begonnen wordt (een zg. ab initio ontwerp) schetsmatig met losse onverbonden curven kan worden opgezet. Op een gegeven moment zal zo'n draadmodel echter toch naar een traditioneel solid geconverteerd moeten worden, hetgeen een aantal speciale uitdagingen met zich mee brengt en begrip vergt van topologie en geometrie.

Waarschuwing
Daarom raden wij de beginnende gebruiker deze werkwijze niet aan, en wij beshouwen het navolgende als verplichte leerstof...
Noot
De makkelijkste manier een ab initio ontwerp te beginnen is door op te starten met een initiele vorm die al als solid gedefinieerd is, door het kiezen van een van de eerste opties in het startmenu.

Een derde en laatste toepassing is dat punten en curven in een draadmodel gebruikt kunnen worden ter ondersteuning van het ontwerp van een ander solid, zoals het markeren van belangrijke posities, constructielijnen en als baas in baas/knechtverhoudingen.

Formaten voor de uitwisseling van tekeningen

IGES en DXF zijn veel gebruikte bestandsformaten, en ondersteuning van die formaten is een belangrijke eigenschap. Nu is het zo dat DXF en IGES niet volledig geschikt zijn voor de uitwisseling van scheepsvormen omdat deze twee formaten voornamelijk bedoeld zijn om tekeningen uit te wisselen, vandaar ook de afkortingen DXF (Drawing eXchange Format) en IGES (Initial Graphics Exchange Specification). Helaas belet deze achtergrond een gegarandeerd foutloze import als volwaardig Fairway model voor alle gevallen. Daarom worden bestanden in IGES of DXF formaat geïmporteerd als draadmodel, waarna ze binnen Fairway geschikt gemaakt kunnen worden voor de conversie naar solid.

3D lijnen uit DXF formaat importeren

Attentie
Import resulteert slechts in een draadmodel. Conversie naar volwaardig Fairway model vergt kennis van het gehele proces, startend met de sectie Draadmodellen.

Import van lijnen uit een 3-D DXF wordt gestart middels de betreffende optie uit het startmenu. Het volgende menu verschijnt:

Verband tussen schip en importfile
1. Naam importfile (*.dxf)
2. De X-as van de importfile correleert met de scheepsLengte-as
3. De Y-as van de importfile correleert met de scheepsBreedte-as
4. De Z-as van de importfile correleert met de scheepsHoogte-as
5. Opeenvolgende curven samenvoegenJa
6. Vermenigvuldigingsfactor op de import coördinaten1.0000
7. Minimum hoek waarbij in een polyline een knik wordt gemaakt10.0
8. Verhouding tussen polylinestuklengtes waarboven een knik wordt gemaakt500
9. Maximum lengte (m) van een polylinestukje500.0000

Een DXF bestand bezit dimensieloze coördinaten in een XYZ-assenstelsel. Voordat de import kan starten moet daarom de correlatie van het DXF XYZ-systeem en de lengte-, breedte- en hoogte-as van het schip gedefinieerd worden. Tevens moet een vermenigvuldigingsfactor ingevoerd worden, zoals bijvoorbeeld 0,001 als de DXF data in millimeter is.

De opties 5 en 7–9 — waarvan de achtergrond besproken wordt in Intermezzo polylines — betreffen lapmiddelen om met de beperkingen van slecht opgebouwde bestanden om te gaan. Indien men daartoe de mogelijkheid heeft kan het een beter idee zijn het DXF bestand in het exporterende computerprogramma op een doeltreffender manier op te bouwen. Het DXF formaat ondersteunt elementen van een uitgebreid aantal verschillende geometrische types. Fairway ondersteunt de volgende daarvan:

  • POLYLINE en LWPOLYLINE. Met deze types wordt een kromme lijn benaderd door een keten korte, rechte lijnstukjes. Een van de eigenschappen van dit type is dat de knikpunten niet expliciet gedefinieerd zijn (omdat in theorie elk punt een knikpunt is). Knikpunten moeten daarom kunstmatig toegevoegd worden. Dit kan automatisch tijdens het importeren volgens de criteria van opties 7–9, of met de hand in Fairway. Polylines worden omgezet in polycurven die door alle punten van de polyline gaan, hetgeen een onnodig groot aantal punten per curve kan opleveren.
  • LINE. Dit is een simpele rechte lijn tussen twee punten. Het komt voor dat dit element buitensporig vaak voorkomt in een bestand, terwijl een element van een ander type doeltreffender zou zijn. Een voorbeeld is wanneer alle individuele elementen van wat eigenlijk een polyline is aangeleverd worden als LINE. Met optie 5 aangezet zal Fairway opeenvolgende lijnen (binnen een tolerantie van 0,1 mm) aaneensmeden tot een doorlopende polyline. Als die optie uit staat, zal het importeren van een groot aantal lijnen tot gevolg hebben dat er uiteindelijk in Fairway een grote hoeveelheid onsamenhangende lijnstukjes komen, die moeizaam tot langere curven en polycurven verbonden zullen moeten worden.
  • ARC. Een cirkelboog.
  • SPLINE. In feite is dit een NURBS curve. Een eigenschap van deze representatiemethode is dat meerdere curven, die samen een continue polycurve representeren, in DXF niet verbonden zijn en daarom in Fairway op een later tijdstip nog verbonden moeten worden. Ook hier zal optie 5 zijn best doen om automatisch te verbinden. Een andere eigenschap van dit type is dat, hoewel de geometrie exact wordt overgedragen, geen interne punten aanwezig zijn. Dit heeft tot gevolg dat als deze curven in Fairway gestrookt worden voordat er voldoende punten zijn ingevoegd veel detail verloren kan gaan.

Intermezzo polylines

Attentie
Door de definitie van de polyline is het onmogelijk om knikpunten van normale punten te onderscheiden, daarom beschouwt Fairway een polyline als een gestrookte lijn, die door alle polyline punten loopt. Als een polyline een of meer knikpunten bevat, dient de lijn op die punten gesplitst te worden. Hierdoor worden er twee strokende lijnen gecreëerd, die elkaar in het knikpunt treffen. Als een enkele continue polyline gebruikt wordt om een geknikte lijn te beschrijven, moeten de aparte knikpunten handmatig aangewezen worden, hetgeen een vervelend karwei kan zijn. Dit werk kan bespaard worden door de polyline reeds als NURBS met knikpunten te definiëren.

Het is een trieste ervaring dat vaker een model zonder expliciete informatie over de knikpunten ter beschikking staat, dan dat deze informatie wel gedefinieerd is. Voor deze gevallen is de importprocedure van polylines uitgerust met hulpfuncties, die kunnen helpen de knikpunten automatisch herkennen. Er moet echter benadrukt worden dat deze methodes slechts een hulpmiddel zijn en geenszins een adequate vervanging van een goede definitie van de knikpunten in de invoerdata. Van deze hulpfuncties zijn er vier:

  1. De functie [Opeenvolgende curven samenvoegen] waarmee alle geïmporteerde curven nagelopen worden om te kijken of deze aaneengeregen kunnen worden tot samenhangende polycurven, gescheiden door een knikpunt. De criteria hiervoor zijn dat beide curven hetzij ruimtelijk zijn danwel gedefinieerd in het zelfde vlak, en dat ze eindpunten hebben die (met een tolerantie van 0.1 mm) samenvallen.
  2. De gebruiker kan een minimum hoek invoeren (in graden, met de optie [Minimum hoek om een knikpunt in een polyline te herkennen] te activeren). Mocht een hoek tussen twee opeenvolgende lijnen van een polyline groter zijn dan de ingevoerde hoek, wordt het gezamenlijke punt van die twee lijnen als knikpunt beschouwd.
  3. Er kan een kritieke lengteverhouding tussen twee opeenvolgende lijnen van een polyline gedefinieerd worden. Als de verhouding groter is dan de gedefinieerde kritieke verhouding, wordt het gezamenlijke punt van de lijnen als knikpunt beschouwd.
  4. Er kan tevens een maximale lengte voor een lijn van de polyline gedefinieerd worden. Als de lijnlengte groter is dan de gedefinieerde waarde worden er, met behulp van lineaire interpolatie, extra lijnpunten in het gebied toegevoegd. Deze toegevoegde polylinepunten kunnen de polyline een breder draagvlak geven en daarmee de nauwkeurigheid van de door Fairway gegenereerde lijn verbeteren.

Overigens wordt ongeacht het beschikbare file formaat (DXF of IGES), het gebruik van NURBS curven boven dat van polylines aanbevolen. De reden daarvoor is dat Fairway de polylines sowieso altijd naar NURBS converteert, waardoor de nauwkeurigheid af kan nemen nemen.

3D lijnen uit IGES formaat importeren

Attentie
Import resulteert slechts in een draadmodel. Conversie naar volwaardig Fairway model vergt kennis van het gehele proces, startend met de sectie Draadmodellen.

Import van lijnen uit een 3-D IGES bestand wordt gestart middels de betreffende optie uit het startmenu. Het volgende menu verschijnt, waarvan de beschrijving volgt.

Verband tussen schip en importfile
1. Naam importfile (*.igs)
2. De X-as van de importfile correleert met de scheepsLengte-as
3. De Y-as van de importfile correleert met de scheepsBreedte-as
4. De Z-as van de importfile correleert met de scheepsHoogte-as
5. Opeenvolgende curven samenvoegenJa

Een IGES bestand bezit dimensieloze coördinaten in een XYZ-assenstelsel. Voordat de import kan starten moet daarom de correlatie van het IGES XYZ-systeem en de lengte-, breedte- en hoogte-as van het schip gedefinieerd worden. De optie [Opeenvolgende curven samenvoegen] is beschreven als eerste hulpfunctie in het intermezzo hier vlak voor.

IGES ondersteunt een grote hoeveelheid geometrische entiteiten. Fairway herkent daarvan de volgende:

  • Entiteit type 110, de rechte lijn.
  • Entiteit type 126, de rationele B-Spline curve. Eigenlijk is dit een NURBS curve.
  • Entiteit type 128, het rationele B-Spline oppervlak (een NURBS-oppervlak). Het inlezen hiervan kan alleen succesvol verlopen als de randen van de aan elkaar grenzende oppervlakken in voldoende mate samenvallen.
  • Entiteit types 142 en 144 (resp. Curve on parametric surface en Trimmed surface). Deze entiteiten staan heel wat exotische constructies toe, die niet allemaal ondersteund worden. Bijvoorbeeld een interne trimming wordt niet verwerkt, maar dat is ook niet nodig omdat daarmee juist een gat aangegeven wordt, wat in de intrinsiek gesloten rompvorm van Fairway juist helemaal niet voor moet komen. Gangbare vormen van getrimde oppervlakken worden gewoon verwerkt.
  • Entiteit type 314, kleurdefinitie, wordt genegeerd.
  • Entiteit type 406, forms 3, 7 en 15. Dit betreft het level en de naam, die wordt herkend en overgeslagen.

Scheepsvormen in SXF/CXF formaat importeren

SARC heeft een open bestandformaat gedefinieerd die de polycurven en solid-definitie van Fairway ondersteunt en daarmee derden in de mogelijkheid stelt modellen door te sturen zonder daarbij afhankelijk te zijn van aannames en heuristieken. Een model in dit formaat bestaat uit twee bestanden: curve- en polycurve-definities staan in een tekstbestand met extensie .cxf en het solid in een tekstbestand eindigend op .sxf. Het formaat van die bestanden wordt beschrven in de bijlage, zie CXF en SXF bestandsformaat.

Bij applicaties die vaak scheepsvormen naar Fairway exporteren, wordt het aangeraden een interface routine te ontwikkelen die direct CXF en SXF files schrijven. Met die combinatie is het immers onnodig om deze vorm te reconstrueren uit een draadmodel. Dit bespaart tijd en voorkomt reconstructie anomalieën. Op deze manier kunnen ook externe applicatie — bv.  voor het genereren van parametrische objecten als tanks, NACA profielen, kielen en roeren — hun vormen zodanig wegschrijven dat zij klakkeloos in Fairway ingelezen kunnen worden.

De globale procedure van het importeren van DXF of IGES bestanden

RhinoFileIGES1024.png
Scheepsvorm weergegeven door IGES NURBS surfaces, in Rhino.
De procedure voor het inlezen van een externe file en de conversie van de inhoud daarvan naar Fairway bestaat uit een aantal duidelijk te onderscheiden stappen (die worden geïllustreerd door de figuren in dit hoofdstukje, waarvan de scheepsvorm gepubliceerd is in Mucha, P., el Moctar, O., Dettmann, T., Tenzer, M. Inland waterway ship test case for resistance and propulsion prediction in shallow water. Ship Technology Research 64(2):106-113, 2017):

  1. Importeren van 3D lijnen uit DXF of IGES, zoals beschreven in 3D lijnen uit DXF formaat importeren en 3D lijnen uit IGES formaat importeren.
  2. Als na het importeren blijkt dat lijnen die in werkelijkheid doorlopen in de bronfile bestaan uit meerdere delen of gescheiden lijnstukjes, dan is het voor een goed overzicht nuttig om deze samen te voegen. Dat zou in het bronprogramma (bv. Autocad) gedaan kunnen worden, maar ook Fairway biedt hiervoor gereedschappen. De makkelijkste is om daartoe de optie “5. Opeenvolgende curven samenvoegen” in het inleesmenu van de DXF- of IGES-file op ‘Ja’ te zetten, dan gebeurt dit samenvoegen in één klap voor alle ingelezen lijnen. Alternatief kan men handmatig lijnen samenvoegen met de functie [Join polycurves].
  3. Het genereren van een draadmodel, m.b.v. de zg. draadmodel punten, zoals besproken in Wireframe points en Wireframe connections.
  4. Het converteren van dit draadmodel naar een Fairway solid, zoals beschreven in Convert Wireframe to Solid. Voor deze conversie is het overigens nodig dat het draadmodel klopt, en daartoe wordt er eerst een test uitgevoerd. Als deze niet met succes doorlopen wordt dan kan de conversie niet plaats vinden.
fairway_from_IGES1024.png
Het ingelezen model in Fairway.
linesplan_fromimported_IGES1024.png
Met Fairway gegenereerd lijnenplan van de ingelezen vorm.

Handmatig een draadmodel opzetten

Attentie
Dit is niet de aanbevolen procedure voor ab initio ontwerpen, over het algemeen is het sneller en makkelijker om direct met een solid te beginnen in plaats van een draadmodel.

De functionaliteit voor het werken met draadmodellen in Fairway is normaal gesproken uitgeschakeld, om de gebruiker niet te verwarren met opties die niet van toepassing zijn. Als men met de hand een draadmodel wenst op te zetten dient daarom eerst die functionaliteit vrijgeschakeld te worden in [Fairway projectinstellingen] met de optie [Werken met draadmodellen]. Tijdens het importeren van draadmodellen wordt deze optie automatisch aangezet.

Daarna kan een nieuw leeg draadmodel worden toegevoegd in [Objectbeheer]. Het opstarten van een nieuw project geheel zonder solids is mogelijk middels de laatste optie van het startmenu: [Start met leeg model (gevorderd)].

Nieuwe vrije polycurven kunnen aan een draadmodel worden toegevoegd door middel van het verbinden van punten met gebruik van de actie [Connect Points]. Punten kunnen worden toegevoegd middels de actie [Wireframe points]. Voor overige acties voor het bewerken van draadmodellen zie Acties voor het werken met draadmodellen.

Een korte inleiding in topologie en `connectivity' van solids

Een draadmodel is een open benadering van een solid, opgebouwd door hoekpunten en ribben die de solid begrenzen. Zo bevat het object in onderstaande figuur vier hoekpunten en zes ribben. Omdat een draadmodel het gesloten object niet beschrijft, is het ambivalent. Een nette en eenduidige manier om een solid te beschrijven is de methode van grensmodellering (engels: boundary modelling). Hierbij wordt expliciete informatie van de facetten inbegrepen, in een zogenaamde boundary representation of B-rep. Zo kent het voorbeeld in onderstaande figuur vier facetten.

Solid_faces_and_vertices_and_edges_800.png
Solid, facetten, ribben en hoekpunten.

Er bestaat een bekende relatie tussen het aantal hoekpunten (V), ribben (E) en facetten (F) voor solids zonder doorlopende gaten. De zogenoemde Euler-relatie is V-E+F=2. Aan de hand van bovenstaand figuur kan gemakkelijk geverifieerd worden dat deze relatie inderdaad van toepassing is.

Het belang van een eenduidige beschrijving van de facetten om een solid te beschrijven kan met behulp van het object in onderstaande figuur getoond worden. Daar is slechts de informatie over het draadmodel ter beschikking te hebben (ribben en hoekpunten) zodat de eigenlijke vorm van het object niet bepaald worden.

wireframe_only_is_ambiguous_480.png
Een draadmodel kan ambivalent zijn.

Het is daarom een belangrijke taak in de conversie van een draadmodel naar een solid is om vlakken tussen de hoekpunten te herkennen. Over het algemeen is een dergelijk probleem onoplosbaar, maar onder bepaalde praktische voorwaarden zijn er iteratieve methodes beschikbaar. De Fairway converter is voorzien van één van deze methodes. De methode werkt onder de volgende restricties:

  • Het solid moet gesloten zijn, zonder doorlopende gaten.
  • Het solid mag niet 2-connected zijn.

Een 2-connected solid is een lichaam dat door het verwijderen van twee ribben in twee verschillende solids gesplitst wordt. Het object in onderstaande figuur is 2-connected. Door het verwijderen van ribben 1 en 2 wordt de verbinding van het kleine binnenste gedeelte verbroken met het grotere buitenste gedeelte. Merk op dat door een extra ribbe tussen de punten 3 en 4 toe te voegen het object niet meer 2-connected is.

2-connected_object.png
Een 2-connected object.

Op het eerste gezicht kan verwacht worden dat het bizarre object in bovenstaande figuur niet snel zal voorkomen als men scheepslijnen in Fairway wil importeren. Maar neem eens onderstaande figuur, beschouw dit object als een bijzonder simpel lijnenplan. Het is een in hoge mate 2-connected object, omdat door verwijdering van vele combinaties van ribben het object in twee delen gesplitst kan worden (ribben 2-4 & 3-5, 4-6 & 5-7, 6-8 & 7-9 etc.).

bodyplan_is_2-connected_480.png
Dit simpele lijnenplan is 2-connected.

Enkele verdere opmerkingen over deze figuur:

  • Behalve de theoretische aspecten van 2-connectivity kan dit draadmodel niet naar een solid geconverteerd worden omdat expliciete informatie over de binnen- en buitenkant ontbreekt.
  • Het toevoegen van extra waterlijnen, verticalen of slechts een enkele ribbe, tussen de punten 1 en 20, maakt dit object niet meer 2-connected.

Het zou ons te ver gaan alle theoretische aspecten van de 2-connectivity te bespreken, er zijn namelijk toch uitzonderingen waarbij een 2-connected object wel naar een solid kan worden geconverteerd:

  • Sommige soorten 2-connectivity zijn aanvaardbaar, namelijk als het onverbonden gedeelte van het draadmodel een facet vormt met de hoekpunten die het object 2-connected maken. In het simpele lijnenplan hierboven is dat het geval voor de punten 2 en 3, en omdat ze een facet vormen maakt het geen verschil.
  • Voor ‘open’ objecten, zoals het simpele lijnenplan hierboven, is 2-connectivity toegestaan.

Al deze overwegingen hebben tot een twee fase facet-herkenning-procedure geleid in Fairway:

  • In eerste instantie wordt er niet van uit gegaan dat het object 2-connected is en facetten worden overeenkomstig gegenereerd. Wordt er een geldige solid gevonden, dan wordt het proces afgebroken, omdat het een theoretisch geldige oplossing is.
  • Als er geen geldige combinatie gevonden kan worden, wordt het draadmodel grafisch gemarkeerd met de vertex-paren die het model 2-connected maken. Uiteindelijk worden de facetten gegenereerd onder de aanname dat het object 2-connected is. Dit tweede stadium kan mogelijkerwijze geen geldig resultaat opleveren.

Acties voor het werken met draadmodellen

Daarnaast werken de volgende algemene acties ook op curven in draadmodellen: