PIAS Handleiding
2024
Programma voor de Integrale Aanpak van het Scheepsontwerp
|
Er zijn drie soorten subcompartimenten, zoals hierboven gedefinieerd. Deze kunnen willekeurig door elkaar heen gebruikt worden, ook het gebruik van verschillende soorten subcompartimenten binnen één compartiment is toegestaan. Hoewel de gebruiker volkomen vrij is in de keuze van het type, zijn er toch enkele richtlijnen te geven:
Namen van (sub-)compartimenten, referentievlakken en fysieke vlakken kunnen 50 tekens lang zijn, waarbij alle zichtbare karakters zijn toegestaan. Compartimentsnamen moeten uniek zijn, op zich is dat niet een fundamenteel vereiste, maar om een compartimentsverzameling overzichtelijk te houden is toch besloten deze eis te stellen. Namen van fysieke vlakken hoeven niet uniek te zijn, het kan immers voorkomen dat er vlakken bestaan die verschillend zijn van vorm, maar die toch op dezelfde plaats staan, zodat men ze dezelfde naam kan geven. Of dat trouwens handig is is maar de vraag, maar dat moet men zelf maar beoordelen. Referentievlakken hebben oneindige afmetingen, zodoende hoeven er geen vlakken voor te komen die op dezelfde plaats staan, en kan dus de eis gesteld worden dat hun namen uniek zijn. Subcompartimentsnamen spelen alleen een rol binnen één compartiment, het is dus niet noodzakelijk dat ze een unieke naam hebben. Bij het kopieren van een (sub-)compartiment of referentievlak krijgt de kopie de naam van het origineel met daarbij de toevoeging ‘(kopie)’. Tenminste, als daar nog plaats voor is en als die naam niet al in gebruik is, anders behoudt de kopie z'n oorspronkelijke naam.
Zoals vermeld bij de definitie van subcompartimenten kunnen deze positief of negatief zijn. Het hoeft helemaal niet, maar vaak wordt een positief en een negatief subcompartiment gebruikt om precies dezelfde ruimte te modelleren. Bijvoorbeeld een brandstof dagtank in de MK als positief subcompartiment, en precies dezelfde ruimte als negatief subcompartiment die van de MK wordt afgetrokken. In dergelijke gevallen kan het handig zijn om de vorm van dat subcompartiment niet twee keer te definiëren, maar slechts één keer, en dan de tweede daarnaar te laten verwijzen. Het voordeel hiervan is dat een geometriewijziging in het ene subcompartiment dan direct ook in het tweede is doorgevoerd.
Overigens geldt zo'n verwijzing alleen voor de vorm en de naam, niet voor de permeabiliteiten (μ). En daar is een goede reden voor, omdat de permeabiliteiten weleens kunnen verschillen, zoals in ons voorbeeld waar als de μ van de MK 85% bedraagt, die van het af te trekken subcompartiment ook 85% moet bedragen, omdat er anders meer volume wordt afgetrokken dan er ooit is opgeteld. Maar de μ van de brandstof dagtank is vanzelfsprekend 98% (of elke andere permabiliteit waar de gebruiker voor kiest).
Subcompartimenten van het type ‘met coördinaten’ en ‘ruimte ontstaan tussen vlakken’ kunnen worden opgegeven tot buiten de rompvorm, typisch tot plus of min ∞ (dat geeft men op door i.p.v. een getal een <O> resp. <-><O> te tikken, van oneindig, <I> mag trouwens ook, van infinite). In dat geval worden de aansnijdingen tussen subcompartiment en rompvorm automatisch bepaald. De rompvorm zelf kan zijn gedefinieerd d.m.v. spanten (met module Hulldef) of als solid model (met Fairway). In het laatste geval is een compleet vlakkenmodel van de romp beschikbaar waarmee elke subcompartimentsaansnijding gemaakt kan worden. Maar bij een spantmodel zijn er alleen spanten, daartussen zit niks. Nou is dat helemaal niet erg, PIAS kent (van oudsher) voldoende methodes om rekenkundig een adequate oplossing te bereiken, maar voor het tekenen moet het programma z'n toevlucht nemen tot interpolatie van een subcompartimentsvlak met die spanten. In het geval van een langsvlak, zoals een dek of langsschot, zullen er i.h.a. voldoende snijpunten tussen dat vlak en de spanten zijn, zodat een voldoende accurate snijlijn getekend kan worden. Maar bij schuinstaande schotten kan het wel eens zijn dat er heel weinig snijpunten aanwezig zijn met de spanten. Op zich kan de snijlijn best getekend worden op grond van deze snijpunten, maar omdat hun aantal laag is kan de nauwkeurigheid daarvan laag zijn. Hier kan men twee dingen aan doen, het eerste is de schouders erover ophalen, omdat het alleen het plaatje betreft, en niet de berekeningsresultaten, en het tweede is een meer complete definitie d.m.v. meer spanten, die bv. met Fairway snel gegenereerd kunnen worden.
Op meerdere plaatsen in Layout kunnen eigenschappen van van een referentievlak of een fysiek vlak worden opgegeven in een tekstmenu, waarvan hierboven een voorbeeld is weergegeven. De hier weergegeven parameters zijn dezelfde als besproken in Fysieke vlakkenlijst. Als men hier op de cel ‘Absolute positie’ of ‘Relatieve positie’ de functie toets <F5> indrukt dan komt met in een uitgebreider popup menu met de geometrie van het vlak, zoals besproken in de volgende paragraaf.
Op meerdere plaatsen in Layout kan de oriëntatie, dat is de stand en positie, van een vlak — fysiek vlak dan wel referentievlak — worden opgegeven middels een popup venster, waarvan hierboven een voorbeeld is weergegeven. Hier kan men invullen:
Verder bevat dit window nog twee functies in de bovenbalk:
Enter | Volgend invulveld |
Tab | Volgend invulveld |
Shift Tab | Vorig invulveld |
Ctrl-A | Selecteer alles in vak |
Ctrl-Del | Verwijder alles in vak |
Alt-O | OK |
Alt-C | Cancel |
Alt-R | Relatief |
Alt-A | Absoluut |
Alt-Z | Zoek referentievlak |
Alt-T | Dwarsschot (Transverse, uitsluitend van toepassing op een nieuw vlak) |
Alt-L | Langsschot (Uitsluitend van toepassing op een nieuw vlak) |
Alt-D | Dek (Uitsluitend van toepassing op een nieuw vlak) |
Dit menu kan dus worden gebruikt om de oriëntatie van een vlak op te geven, of om dat vlak vast te leggen op een bepaalde vaste afstand van een referentievlak. Ongeveer hetzelfde menu wordt gebruikt om punten vast te leggen relatief t.o.v. een referentievlak. Dit popupmenu wordt opgeroepen door in de cel van een coördinaat van een punt op <F5> te drukken. Nog twee opmerking over referentievlakken:
De oriëntatie van een orthogonaal vlak, dat is een dwarsvlak, langsvlak of horizontaal vlak, is met z'n type en één getalletje volledig vastgelegd. Om een schuin vlak vast te leggen zijn echter wat meer gegevens nodig. Er zijn talloze wijzen waarop een schuin vlak kan worden vastgelegd, maar in Layout is gekozen dit te doen m.b.v. drie punten in de ruimte, omdat dat het meest intuïtief wordt geacht. Die drie punten staan in een menu, waarvan hierboven een voorbeeld is weergegeven. Dit menu bevat in essentie voor elk van de drie punten een regel, met daarbij in de kolommen de lengte- breedte- en hoogtecoördinaat van dat punt. Deze punten staan trouwens helemaal los van enig ander punt van het schip of z'n indeling — hoewel ze best kunnen verwijzen naar een referentievlak. De laatste kolom bevat de afstand van dat punt tot het schuine vlak. Het is namelijk niet zo dat het vlak direct wordt aangepast aan de positie van de drie punten, maar veiligheidshalve is ervoor gekozen dat daar later de functie [Generate] voor aangeroepen moet worden. Andere functies die beschikbaar zijn in de bovenbalk zijn:
De constellatie van fysieke vlakken legt ook de aard en vorm — of, anders gezegd, de topologie en geometrie — van de tussenliggende ruimtes, de compartimenten, vast. Dat is mooi, maar dat brengt ook een beperking met zich mee omdat vlakken dan niet voorbij hun directe buren getrokken mogen worden; dan zouden ze de hele ‘logica’ van de compartimentsindeling immers overhoop gooien. Dat kan verder gaan dan men op het eerste gezicht zou denken, want vlakken kunnen ook indirect (d.m.v. referentievlakken) een plaats krijgen. Dat wordt intern allemaal uitgezocht in Layout, en als men een vlak buiten z'n topologische grens zou willen plaatsen dan wordt de vlakpositie teruggezet tot de uiterste positie die mogelijk is. Daar wordt verder geen waarschuwing van gegeven — dat zou namelijk kunnen leiden tot vrij lange lijsten van mededelingen, en daar is ook niemand bij gebaat — maar in elk geval weet u nu wat de reden is als een vlak niet voorbij een bepaalde maat geplaatst kan worden.
Rond 1985 is de PIAS module Compart ontwikkeld, waarmee compartimenten konden worden gedefinieerd en tanktabellen etc. konden worden berekend. Deze module Layout, die in jaren 2010-2012 ontwikkeld is, dient dezelfde doeleinden, maar is veel uitgebreider, o.a. door de ondersteuning met expliciete dekken en vlakken en een GUI. Bestanden uit Compart zijn gewoon in te lezen in Layout, dat moet echter wel handmatig gedaan worden, zie daarvoor Importeer PIAS compartimenten uit pre-2012 formaat. Als er naderhand op basis van die ingelezen compartimenten fysieke vlakken gegenereerd gaan worden kan het nuttig zijn de compartimenten eerst op te schonen, zie Schoon pre-2012 PIAS compartimenten op.
Meer informatie over het doel en de operatie van constraint management kan hier en hier worden gevonden.
Constraint management is gelimiteerd tot het oplossen van het randvoorwaardeprobleem in hoeverre dat kan in een responsietijd die interactiviteit voor de gebruiker toelaat. Momenteel worden alleen randvoorwaarden die te maken hebben met de posities, oppervlakken en volumes meegenomen.
Randvoorwaarden kunnen worden gecategoriseerd aan de hand van twee eigenschappen, die groepen en typen genoemd worden. De groep waartoe de randvoorwaarde behoort zegt iets over hoe de randvoorwaarde zich relateert tot de geometrie van het schip waarop het van toepassing is. Er worden vier verschillende groepen onderscheiden:
Het is belangrijk om te noteren dat de groep aantal wel aanwezig is in constraint management, maar slechts fungeert als boekhoudkundig hulpmiddel. Dit komt doordat de constraint management werkt door het veranderen van de posities van de in het model aanwezige vlakken en schotten. Het is niet in staat om nieuwe onderdelen te creeren dan wel te verwijderen.
De tweede eigenschap van een randvoorwaarde wordt het type genoemd. Het type geeft betekenis aan de nummerieke waarde van een randvoorwaarde. Er worden vier typen onderscheiden:
De invoertabel voor randvoorwaarden kan worden geopend via de menubalk in de grafische gebruikersinterface: cOnstaints –> randvoorwaarden aanpassen. Een randvoorwaarde wordt gedefineerd door haar naam, afkorting, groep en type met bijbehorende onder- en/of bovengrens. Een randvoorwaarde kan worden ge(de)selecteerd om deze wel of niet mee te nemen bij het evalueren van de randvoorwaarden.
Een voorbeeld van de randvoorwaardentabel wordt hieronder getoond:
Nadat een randvoorwaarde is gedefinieerd moet het worden gekoppeld aan een compartiment of een fysiek vlak of schot om meegenomen te worden in het evalueren van de randvoorwaarden. Dit kan worden gedaan bij de compartimentsgegevens (zie Aantal randvoorwaarden) of bij de eigenschappen van de fysieke vlakken en schotten (zie Fysieke vlakkenlijst). Hier kunnen het aantal randvoorwaarden op het gewenste aantal worden ingesteld, waarna voor elk van deze randvoorwaarden een koppeling met de randvoorwaardentabel gemaakt kan worden via een popupmenu.
De randvoorwaarden kunnen worden geevalueerd vanaf de menubalk via cOnstraints->evaluate. Constraint management zal dan trachten een oplossing te vinden die aan alle geselecteerde en gekoppelde randvoorwaarden voldoet.
Aangezien het zeer waarschijnlijk is dat de verschillende randvoorwaarden verschillende dingen van het ontwerp verlangen, kan het vinden van het juiste compromis om aan alle randvoorwaarden te voldoen een uitdaging zijn. Meestal zullen niet alle randvoorwaarden even belangrijk zijn, of beinvloeden ze het ontwerp op een ongelijkmatige manier, en is het nodig om ze met hun eigen weging mee te nemen. Aangezien de relatieve belangrijkheid van een randvoorwaarde afhankelijk is van niet alleen de randvoorwaarde zelf, maar ook van de andere gelesecteerde randvoorwaarden, is het toekennen van deze relatieve belangrijkheid van de geselecteerde randvoorwaarden een taak van de gebruiker. Deze kan hiermee het ontwerp sturen in de hem of haar gewenste richting.
Door het openen van de randvoorwaardenbalans kunnen de gewichten van de verschillende geselecteerde en gekoppelde randvoorwaarden worden ingesteld ten opzichte van elkaar. Dit kan door de positie van de sliders op de verticale trackbars aan de passen. Elke trackbar heeft de afkorting van haar randvoorwaarde boven zich, en de onder- en/of bovengrens en de huidige waarde van de randvoorwaarde onder zich. Wanneer de huidige waarde niet aan de randvoorwaarde voldoet is deze rood gekleurd.
Nadat de sliders van de verschillende randvoorwaarde op de gewenste positie zijn gezet, kan door op de 'Evalueer randvoorwaarden'-knop onderaan de randvoorwaardenvbalans te drukken een oplossing gezocht worden die voldoet aan alle randvoorwaarden. Hiertoe zullen de fysieke vlakken en schotten van het model geherpositioneerd worden, behalve deze die zijn vastgezet voor constraint manager. De gevonden oplossing is geoptimaliseerd voor de kleinste verplaatsing van de fysieke vlakken en schotten, om zo dicht mogelijk bij de visie van de ontwerper te blijven.
Na het opstarten van Layout komt men in het hoofdmenu, waarvan de diverse opties in de volgende secties nader toegelicht worden.