1 DEPARTEMENT INDUSTRIELE WETENSCHAPPEN EN TECHNOLOGIE A s s o c i a t i e K. U. L e u v e n Basisopleiding van 2 cycli Academiejaar : Opleiding : ELE...
Mededeling ‘Deze eindverhandeling was een examen; de tijdens de verdediging vastgestelde fouten werden niet gecorrigeerd. Gebruik als referentie in publicaties is toegelaten na gunstig advies van de KHBO-promotor, vermeld op het titelblad.’
Woord vooraf Deze eindverhandeling is het sluitstuk van mijn studies Industrieel Ingenieur en daarom wil ik hier enkele mensen bedanken die dit alles mogelijk gemaakt hebben. Allereerst wil ik mijn ouders bedanken die mij de kans hebben gegeven om te studeren en mij daarin ook ten volle hebben gesteund. Daarnaast bedank ik ook mijn binnenpromotor ir.L.Monserez voor het mooie thesisonderwerp dat ik met beide handen heb aangenomen, en voor de uitstekende begeleiding van mijn eindwerk. Speciaal bedank ik mijn buitenpromotor ing.E.Devos voor de toffe stageperiode in Picanol en de begeleiding van mijn thesis. Ik apprecieerde het heel erg om naast de CAM-wereld ook eens de realiteit op de fabrieksvloer mee te maken, en enkele ‘echte’ problemen te zien die bij de productie voorkomen. Tot slot bedank ik nog P.Dejonghe van UGS en C.Rys die mij telkens weer op de sporen gezet hebben op de momenten toen het iets moeilijker ging met mijn thesis.
Picanol NV
Samenvatting Het doel is te oordelen of de nieuwe simulatiemodule (ISV) uit het softwarepakket Unigraphics NX 2.0 Vericut kan vervangen, een gespecialiseerd softwarepakket voor de virtuele simulatie van CNC-programma’s. Er werd gewerkt rond één machine van Picanol: een 5-assig bewerkingscenter. Een driedimensionaal model van de machine en van enkele gereedschappen werden geïntegreerd in Unigraphics. De kinematica van de machine werd in ISV ingevoerd. Er zijn drie manieren om de simulatie uit te voeren waarbij voor de eerste twee manieren een geschikte postprocessor nodig is die de geprogrammeerde gereedschapsbanen omzet naar machinecode. Telkens er een lijn NC-code gegenereerd wordt, voert de simulatiemodule van Unigraphics via een programma dat nauw aansluit bij de postprocessor, het juiste simulatiecommando uit en laat de machine op het beeldscherm bewegen. Een probleem echter is dat de oude handgeschreven postprocessor van Picanol niet bruikbaar is, en dat de UGmodule die erbij hoort om te kunnen simuleren, ontbreekt. Via een ander programma (Postbuilder) is het mogelijk om een nieuwe postprocessor met simulatieprogramma te maken, maar het is niet evident om de postprocessor voor de machine van Picanol na te maken. Een derde onderzochte mogelijkheid, bestaat er in om de machinecode als het ware te lezen en van daaruit de simulatie aan te sturen. Het voordeel is dat deze manier van simuleren dicht bij de realiteit aanleunt, maar deze software is nog nieuw en het bleek al vlug dat niet alle machinecodes ondersteund werden. Gedurende het vele test- en zoekwerk bleek ook dat Vericut op bepaalde vlakken beter scoort, maar de simulatiemodule van Unigraphics is natuurlijk nog nieuw en zal wellicht nog verbeteren in latere versies. De eindconclusie: Vericut is voorlopig nog de betere voor Picanol, maar dit kan veranderen als er een nieuwe postprocessor gemaakt kan worden en betere simulatiesoftware beschikbaar wordt bij latere versies.
Thomas Sarre KHBO 2004-2005
4
Picanol NV
Inhoudsopgave
Mededeling ........................................................................................................... 2 Woord vooraf....................................................................................................... 3 Samenvatting ....................................................................................................... 4 Inhoudsopgave ..................................................................................................... 5 Lijst van gebruikte afkortingen en symbolen................................................... 7 Inleiding................................................................................................................ 8 Voorstelling van de Picanol Group..................................................................................... 8 Mijn werkomgeving ............................................................................................................. 9 De probleemstelling............................................................................................................ 11 De opdracht......................................................................................................................... 12
1
Startpositie: softwaresystemen en andere benodigdheden..................... 13 1.1 1.2 1.3 1.4
Korte beschrijving van ISV................................................................................... 28 Machine Tool Model .............................................................................................. 30
2.3
Assembly............................................................................................................... 30 Het kinematics-model........................................................................................... 32 Integratie in de Unigraphics-database ................................................................ 39
2.3.1 2.3.2 2.3.3 2.3.4
De gereedschappen................................................................................................. 41
2.4
Vooraf................................................................................................................... 41 Gereedschappen uit de CAM................................................................................ 42 Zelf gereedschappen maken ................................................................................. 44 Integratie in de Unigraphics-database ................................................................ 47
2.4.1 2.4.2 2.4.3
Machine Tool Driver.............................................................................................. 51 Algemeen .............................................................................................................. 51 De drie ‘modes’ van de MTD............................................................................... 55 Integratie in de Unigraphics-database ................................................................ 57
Thomas Sarre KHBO 2004-2005
5
Picanol NV
2.5 2.5.1 2.5.2
Simuleren met ISV ................................................................................................. 61
De Plugin black box.................................................................................... 66 3.1 3.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5
Vooraf...................................................................................................................... 66 Structuur en werking van de Generic-Plugin...................................................... 67 Het testen van de Generic-Plugin ......................................................................... 72
3.4
4
Testmiddelen......................................................................................................... 72 Lineaire- en rotatie-assen .................................................................................... 74 Cirkelbewegingen................................................................................................. 77 Gereedschapswissel en -lengtecorrectie .............................................................. 78 Boorcycli .............................................................................................................. 80 Besluit ...................................................................................................................... 82
ISV versus Vericut...................................................................................... 83
Algemeen besluit................................................................................................ 86 Bijlagen............................................................................................................... 88 Bijlage I: voorbeeld Shop Documentation: gereedschapslijst........................................ 88 Bijlage II: voorbeeld Cutter Location Source File.......................................................... 88 Bijlage III: voorbeeld NC-code ......................................................................................... 89 Bijlage IV : bestand “dbc_machine_ascii.def” ................................................................ 90 Bijlage V : begin tool-database-bestand........................................................................... 91 Bijlage VI: klasse “PICANOL” uit dbc_tool_ascii.def ................................................... 93 Bijlage VII: basis- en hogere S&V commando’s ............................................................. 94 Bijlage VIII: Pluging-MTD-bestand voor de Willemin W418 ..................................... 126 Bijlage IX: Bestanden uit de Plugin black box .............................................................. 130
Inleiding Voorstelling van de Picanol Group Al meer dan een halve eeuw speelt de Picanol Groep een pioniersrol als ontwikkelaar en producent van hoogproductieve weefsystemen. In 1971 introduceerde Picanol de eerste elektronisch
gestuurde
weefmachine
ter
wereld.
Tevens
was
het
de
eerste
weefmachinebouwer die het ISO 9001-certificaat behaalde. Sinds 1966 noteert Picanol op Euronext Brussel onder het symbool PIC. Naast de hoofdzetel in Ieper heeft de Picanol Groep productiesites in Azië, Europa en de VS. De Picanol Group is de voorbije jaren geëvolueerd van traditionele weefmachinebouwer tot wereldwijde leverancier van totaaloplossingen voor de textielindustrie en andere sectoren. In dit kader werd de organisatiestructuur met ingang van 2005 verder gestroomlijnd rond twee kerndivisies: Technologies en Weaving Machines & Services (figuur I). De vroegere GTP-activiteiten werden daarbij grotendeels geïntegreerd in deze divisies.
Figuur I: Organisatiestructuur Picanol Group
De divisie Technologies ontwikkelt, produceert en verkoopt hoogtechnologische onderdelen en systeemoplossingen voor Original Equipment Manufacturers (OEM’s) uit zowel de textielindustrie als andere sectoren. Deze divisie is opgebouwd uit Proferro & BUMAC (gieterijen mechanische productieactiviteiten), Mechatronics (mechatronica) en GTP Accessories (rieten, hevels, kaders en insertietechnologie). Technologies brengt zijn producten op de markt via de merken Protronic, Proferro, Te Strake Textile, Burcklé, Steel Heddle, Melotte en Verbrugge.
Thomas Sarre KHBO 2004-2005
8
Picanol NV
De divisie Weaving Machines & Services ontwikkelt, produceert en verkoopt hoogtechnologische weefmachines en aanvullende diensten en producten voor de after market. Weaving Machines & Services spitst zich toe op weefmachines waarbij de inslag gebeurt op basis van lucht- (airjet of luchtweefmachine) of grijpertechnologie (rapier of grijperweefmachine). Picanol is de merknaam voor deze weefmachines. Deze divisie is opgebouwd
uit
Weaving
Machines
Customer
Relation
Teams
(verkoop
van
weefmachines), After Market Sales & Support (aanvullende producten en diensten) en Airjet & Rapier (ontwikkeling en productie van weefmachines). De twee kerndivisies worden op hun beurt ondersteund door twee corporate functies: Finance & Administration en Human Resources.
Mijn werkomgeving Tijdens mijn stageperiode en gedurende het schooljaar voor mijn thesis heb ik gewerkt in de afdeling GERMAC. Deze afdeling is onderdeel van de Manufacturing Business Unit ‘BUMAC Ieper’ die op zijn beurt behoort tot de divisie Technologies. GERMAC houdt zich bezig met de grijpertechnologie voor de weefmachines, het maken van prototypes en wisselstukken en het ontwerpen en maken van nieuwe gereedschappen en toebehoren. Mijn buitenpromotor Erwin Devos bijvoorbeeld is projectingenieur en hij werkt ook in de afdeling GERMAC, hoewel hij behoort tot de afdeling PROJECTS. Eén van zijn functies is o.a. ‘gereedschappen’: database aanpassingen en beheer, leverancierscontacten, introductie nieuwe tools en technieken / testen, standaardisatie, marktonderzoek en kostenreductie. De afdeling GERMAC is gelegen in de fabriek in Ieper in een kantoor dat rechtstreeks aansluiting heeft met de fabrieksvloer. Via het bedrijfsnetwerk staat het kantoor in verbinding met de werkplaatsen, de machines, de andere afdelingen, de buitenwereld en het Internet. De gigantische gereedschapsdatabase van Picanol is ook via het bedrijfsnetwerk toegankelijk en aanpasbaar. De communicatie tussen kantoor en arbeiders gebeurt meestal telefonisch, maar er wordt ook heel wat heen en weer gelopen tussen werkvloer en bureau. Verder gelden de algemene veiligheidsvoorschriften volgens ISO 9001 en zijn er comités die zich met de veiligheid bezighouden. Het onthaal bij de vestiging in Ieper gebeurt aan de bedrijfsbewaking en dan verder bij verschillende
Thomas Sarre KHBO 2004-2005
9
Picanol NV
recepties op het fabrieksterrein. Er heerst een aangename werksfeer in het kantoor en de omgang met de andere werknemers is heel goed. De mensen zijn geïnteresseerd in wat je komt doen en als student kon ik altijd vragen stellen. Figuur II toont de structuur van BUMAC Ieper met de verschillende mensen die er werkten op 1 januari 2005.
Figuur II: BUMAC Ieper
Thomas Sarre KHBO 2004-2005
10
Picanol NV
De probleemstelling Picanol werkt met het CAD/CAM systeem Unigraphics NX 2.0 van UGS. Met deze software worden werkstukken volgens een 3D-model ontworpen (CAD). Daarnaast beschikt de software ook over een CAM-module waarin de gebruiker de gereedschappen kiest, de gereedschapsbanen genereert en alle verspanende bewerkingen op het werkstuk kan omzetten naar NC-code voor de machine in de werkplaats. Dit laatste wordt ‘postprocessen’ genoemd. Via het bedrijfsnetwerk wordt de NC-code doorgezonden naar de machine om dan over te gaan tot het werkelijk produceren van de stukken. Het is echter niet zo dat na het genereren van de machinecode deze direct naar de machine doorgestuurd wordt, er kunnen immers fouten in de code zitten met alle gevolgen voor machine en werkstuk. Daarom gebruikt Picanol het softwareprogramma ‘Vericut’. Dit is een simulatiepakket waarin het verspaningsproces gesimuleerd wordt volgens de NC-code die ingevoerd wordt in het programma. De software maakt gebruik van een 3D-model van de machine en het werkstuk om het productieproces grafisch voor te stellen zoals het er in werkelijkheid uitziet. Vanuit deze software heeft de gebruiker ook toegang tot de gereedschappen uit de database van Picanol. Door de optie ‘collision detection’ te gebruiken kan nagegaan worden of er een botsing optreedt tussen de verschillende elementen, bijvoorbeeld tussen gereedschap en machine of tussen machine en werkstuk. Tot voor kort werkte Picanol met UG V.18 en Vericut 5.1, die volledig los staan van elkaar. In de vroegere versies 17 (UG) en 4.8 (Vericut) bestond er nog een link tussen deze twee programma’s, zodat een werkstuk direct kon gesimuleerd worden met Vericut vanuit UG. Het is echter zo dat bij de overgang van UG V.17 naar V.18 de samenwerking met Vericut verbroken werd omwille van onderlinge meningsverschillen tussen de twee softwareproducenten. Op zich was dit geen probleem voor Picanol omdat Vericut 5.1 blijvend gebruikt kon worden als ‘stand alone’ simulatieprogramma, zonder de link met UG. Omdat Unigraphics nu een soort ‘leegte’ had na de breuk met Vericut integreerden ze een nieuwe module in hun pakket: ‘Integrated Simulation & Verification’ ofwel ‘ISV’ afkomstig van de Duitse softwareproducent dCADE; opgekocht door UGS. Nu werkt Picanol met UG NX 2.0 en het zou natuurlijk interessant zijn als de volledig geïntegreerde simulatiemodule ISV gebruikt kan worden i.p.v. Vericut. Aan de andere kant is Vericut wel één van de beste simulatieprogramma’s op de markt!
Thomas Sarre KHBO 2004-2005
11
Picanol NV
Als laatste moet nog gezegd worden dat er ook met Vericut een probleem is op gebied van de licenties. Het programma is versnipperd in modules waarvoor telkens een aparte licentie nodig is. Picanol heeft een aantal licenties voor draaien, voor frezen, enz. Bij een bepaalde update van Vericut is de licentiepolitiek veranderd in die zin dat bepaalde modules nu gegroepeerd zijn en Picanol verplicht is om de licentie voor de volledige groep aan te kopen ook als ze er slechts één module uit nodig hebben. Het gevolg was dat Picanol plots enkele licenties kwijt was en daarop hebben ze besloten het onderhoud en de updates van Vericut stop te zetten. Er wordt dus gewerkt met een verouderde versie van Vericut die bovendien geen link meer heeft met UG. De vraag is dus of deze situatie opgelost kan worden met de komst van de nieuwe simulatiemodule ISV van UG NX 2.0.
De opdracht De opdracht van deze thesis is het bestuderen van de volledig nieuwe simulatiemodule binnen Unigraphics NX 2.0. In hoeverre is dit simulatiepakket te vergelijken met Vericut m.a.w. wat zijn de voor- en nadelen t.o.v. Vericut? Hoe komt de machine in de simulatie, hoe kom je aan de gereedschappen in de simulatie, loopt de simulatie correct, kan je ook hier collision detection toepassen, …? Het zijn allemaal vragen waar een antwoord op gevonden moet worden. Om het in één zin te zeggen: kiest Picanol voor UG met ISV in één pakket, maar met misschien minder goede of moeilijker te implementeren simulatiemogelijkheden of kiezen ze ervoor om verder te werken met één van de beste, maar heel dure simulatiepakketten: Vericut? Deze opdracht is in hoofdzaak een studie van een softwarepakket, er komen dus vrijwel geen ontwerpen, berekeningen of metingen aan te pas. De moeilijkheid ligt in het grondig begrijpen van de structuur van het programma, hoe het bestandensysteem in elkaar zit, de TCL of ‘Tool Command Language’ leren begrijpen waarmee veel onderdelen van UG werken, enz. Bovendien moeten er ook aanpassingen kunnen gemaakt worden zoals het toevoegen van machines en gereedschappen van Picanol. Een bijkomende moeilijkheid is het feit dat ik nog nooit met deze software gewerkt heb en dat ik dus aan de hand van zelfstudie zal moeten leren werken met Unigraphics NX 2.0. Praktische kennis van Vericut is niet vereist voor deze opdracht. Het is enkel nodig te weten hoe Picanol werkt met Vericut en wat de hoofdmogelijkheden zijn van dit simulatieprogramma.
Thomas Sarre KHBO 2004-2005
12
Picanol NV
1
Startpositie: softwaresystemen en andere benodigdheden Om de opdracht van deze thesis tot een goed einde te brengen, zijn er een aantal middelen nodig. Zoals al gezegd gaat het hier voornamelijk over software dus is er in de eerste plaats een PC nodig. Ik had het geluk om mijn eigen draagbare PC te kunnen gebruiken, een Dell Inspiron 8200 met het besturingsprogramma Windows XP Professional van Microsoft. Het grote voordeel hiervan is dat ik zowel thuis als in Picanol kan werken en bovendien volledig onafhankelijk ben van het computernetwerk van Picanol omdat de software met een alleenstaande licentie draait op mijn PC. Aangezien de opdracht de studie van ISV is, financierde Picanol het softwarepakket Unigraphics NX 2.0 met een licentie voor één jaar. Om het programma te kunnen draaien op mijn PC is nog een hardware-key nodig die de licentiecode bevat. Op het ogenblik dat ik UG NX 2.0 kreeg, werkte Picanol nog met versie 18, maar ondertussen zijn ze ook overgeschakeld op de versie 20 (NX 2.0). Om een goede vergelijking te kunnen maken tussen Unigraphics en Vericut zou ik ook dit laatste programma moeten hebben op mijn PC, maar dit pakket is heel duur en het is voornamelijk de bedoeling dat de mogelijkheden van de nieuwe simulatiemodule ISV in Unigraphics worden bestudeerd. Alle informatie die ik nodig heb over Vericut kan ik bekomen bij Picanol via mijn thesisbegeleider. Hij stelde voor om bij de studie van ISV te werken met één van de CNC-machines van Picanol, de Willemin W418. Ik kreeg een Unigraphics CAD-model van deze machine om mee te experimenteren. Bij dit machinemodel kreeg ik ook het werkstuk BA218793 dat gemaakt wordt op de Willemin met het NC-programma dat erbij hoort. Als laatste kreeg ik van UGS een CD-rom met informatie over ISV en enkele voorbeelden van machinemodellen. De volgende punten gaan wat dieper in op de voornaamste elementen die nodig waren voor deze thesis.
1.1 Unigraphics NX 2.0 Unigraphics NX 2.0 is een wereldwijd bekend en heel uitgebreid CAD/CAM-pakket van UGS dat gebruikt wordt in tal van bedrijven voor het ontwerp en de productie van nieuwe producten. De weg om van een idee voor een product tot het afgewerkte product zelf te komen is lang en bestaat uit vele verschillende stappen. Unigraphics verenigt deze stappen in één programma gaande van het ontwerp (CAD) in 2D en 3D, berekeningen op het ontworpen stuk (CAE) tot de voorbereiding van de productie (CAM) en het genereren van
Thomas Sarre KHBO 2004-2005
13
Picanol NV
de juiste machinecode. Met de versie NX 2.0 is het nu ook mogelijk om het productieproces virtueel uit te voeren met de nieuwe simulatiemodule ISV. UG NX 2.0 probeert dus een totaaloplossing te bieden zodat slechts één softwarepakket nodig is bij de ontwikkeling van nieuwe producten. Dit staat ook wel bekend onder de noemer ‘PLM’. Figuur 1-1 toont de verschillende onderdelen of applicaties van Unigraphics. Machine Tool Builder dient om machinemodellen en gereedschappen te maken die gebruikt worden tijdens de simulatie met ISV (zie verder). Verder zijn er nog Modeling (3D CAD), Drafting (tekeningen genereren), Shape Studio (vormen ontwerpen), Manufacturing (CAM), Structures en MasterFEM (sterkteberekeningen, CAE), enz …
Figuur 1-2: CAM-initialisatie
Figuur 1-1: Applicaties UG
Voor het onderwerp van deze thesis is de applicatie Manufacturing of de CAM het belangrijkst omdat deze in direct verband staat met de simulatiemodule ISV. Hier worden namelijk de gereedschappen gekozen en de gereedschapsbanen geprogrammeerd (frezen, boren, draaien, …) die nodig zijn om het werkstuk te produceren. Vervolgens kunnen deze gereedschapsbanen
gesimuleerd
configuratiebestanden
kunnen
en/of de
gepostprocessed
bewerkingsmethoden,
worden.
Via
aanpasbare
gereedschapsbibliotheken,
postprocessoren, enz … gedefinieerd worden die in de CAM beschikbaar zullen zijn. Met zogenaamde ‘templates’ kan de gebruikersomgeving van de CAM aangepast worden en kunnen bepaalde bewerkingsconfiguraties ingesteld worden die machines, gereedschappen, bewerkingsmethoden, gemeenschappelijke geometrieën en bepaalde volgorden van operaties bevatten. Het is dus duidelijk dat de CAM grondig kan aangepast worden door de gebruiker naar zijn specifieke voorkeur en behoeften. Figuur 1-2 stelt het venster voor dat verschijnt als de Manufacturing applicatie voor het eerst geactiveerd wordt voor een nieuw Thomas Sarre KHBO 2004-2005
14
Picanol NV
werkstuk. De keuze van het type configuratie en de CAM-setup zullen bepalend zijn voor de soort bewerkingen die beschikbaar zijn als een nieuwe gereedschapsbaan gemaakt wordt. De keuze is echter niet definitief en kan gelijk wanneer aangepast worden. Figuur 13 stelt ook het initialisatievenster van de CAM voor, maar met nog extra uitleg over de aanpasbare configuratiebestanden en de templates.
Figuur 1-3: Configuratiebestanden en templates
Een belangrijk gegeven in het gebruik van de Manufacturing application is de ‘Operation Navigator’. Hierin worden alle geprogrammeerde gereedschapsbanen weergegeven en dit viermaal, telkens volgens een andere parameter. Een eerste rangschikking van de gereedschapsbanen is deze volgens het ‘Program Order View’ en stelt alle banen voor in volgorde van uitvoering tijdens het verspaningsproces. De tweede onderverdeling heet ‘Machine Tool View’ en stelt de toolpaths voor per gereedschap zodat gemakkelijk te zien is welke bewerkingen een bepaald gereedschap moet uitvoeren. Ten derde is er het ‘Geometry View’ en deze rangschikt de gereedschapsbanen volgens een bepaald geometrisch kenmerk zoals alle gatbewerkingen, alle bewerkingen in een bepaald vlak (volgens bepaald assenstelsel), enz … Als laatste is er nog het ‘Machining Method View’ die de operaties sorteert volgens de soort bewerking (ruwen, finisseren, boren, …). Met de Thomas Sarre KHBO 2004-2005
15
Picanol NV
Operation Navigator kan gemakkelijk genavigeerd worden tussen de verschillende rangschikkingen van de gereedschapsbanen met de knoppen voorgesteld in figuur 1-4.
Figuur 1-4: Program Order View / Machine Tool View / Geometry View / Machining Method View
Het is niet de bedoeling om nog verder in te gaan op de programmatie van gereedschapsbanen omdat dit niet het doel is van deze thesis en het slechts nodig is een korte algemene werking van de CAM te formuleren. Eens de gereedschapsbanen geprogrammeerd zijn, kunnen vanuit de CAM nog een aantal bewerkingen gedaan worden in verband met deze banen. Ten eerste kan er via ‘Information → Shop Documentation’ een bestand gemaakt worden waarin allerlei informatie kan staan afhankelijk van welke keuze gemaakt wordt in het venster dat verschijnt (zie figuur 1-5).
Figuur 1-5: Shop Documentation
Er kan een lijst gemaakt worden van alle gebruikte gereedschappen met gegevens zoals hun diameter of lengte (voorbeeld: zie bijlage I p. 88). Of een lijst met alle geprogrammeerde gereedschapsbanen gerangschikt volgens de vier verschillende manieren uit de Operation Navigator. Er bestaat bovendien nog een keuze of het bestand dat gemaakt zal worden in TEXT-formaat of HTML-formaat moet staan. Ten tweede kan er een CLSFbestand of ‘Cutter Location Source File’ gemaakt worden van één of meerdere gereedschapsbanen. Een Cutter Location Source File is een bestand waarin de coördinaten van de posities van het gereedschap geprogrammeerd staan uit de gereedschapsbanen (in Thomas Sarre KHBO 2004-2005
16
Picanol NV
APT-programmeertaal). De verschillende soorten bewegingen tussen deze coördinaten evenals de voedingssnelheden kunnen ook in dit bestand teruggevonden worden. Een CLSF-bestand kan o.a. gebruikt worden om bewerkingen op het werkstuk grafisch te verifiëren waarbij een driedimensionaal model van het gereedschap de gereedschapsbanen volgt en virtueel materiaal afneemt van een ruw stuk. De bewegingen van het gereedschap worden gestuurd met behulp van het CLSF-bestand verbonden aan de overeenkomstige gereedschapsbaan. Het grafisch verifiëren van de geprogrammeerde gereedschapsbanen gebeurt door één of meerdere banen te selecteren in de operation navigator en te kiezen voor ‘Toolpath → Verify’. Tijdens het verifiëren, passeren de coördinaten uit het CLSFbestand telkens voorafgegaan door een commando zoals: GOTO (lineaire beweging), FEDRAT (waarde van de voedingssnelheid) gevolgd door een GOTO, RAPID (bewegen in ijlgang) gevolgd door een GOTO, CIRCLE (een cirkelbeweging uitvoeren), LOAD TOOL (gereedschap nemen), enz. Bijlage II p. 88 toont een voorbeeld van een CLSF-file van enkele CAM-gereedschapsbanen. Het CLSF-bestand van één of meerdere gereedschapbanen kan op elk ogenblik weergegeven worden in een apart informatievenster door te kiezen voor ‘Toolpath → List’. Het is ook mogelijk om het CLSF-bestand op te slaan ergens op de harde schijf van de computer door te kiezen voor ‘Output → CLSF …’. Het bestand kan in verschillende bestandsformaten opgeslagen worden zoals figuur 1-6 aantoont.
Figuur 1-6: CLSF-file
Figuur 1-7: Postprocess
Een derde en laatste bewerking op de gereedschapsbanen is het omzetten naar CNC-code via de postprocessor. De postprocessor is een programma dat de gereedschapsbanen uit de CAM omzet naar NC-code via MOM-variabelen en Toolpath-events. Bij nieuwe versies van UG kunnen deze MOM-variabelen veranderen waardoor ook de postprocessor aangepast moet worden. Er zijn echter ook postprocessoren die de CLSF-bestanden Thomas Sarre KHBO 2004-2005
17
Picanol NV
gebruiken om NC-code te genereren, maar deze zijn dan op een andere manier geprogrammeerd. Voor elke machine moet er een overeenkomstige postprocessor bestaan omdat iedere machine haar eigen kinematica heeft en bovendien soms speciale NC-codes ondersteunt. Een juiste postprocessor is dus van essentieel belang voor het correct functioneren van de CNC-machine. Deze verschillende postprocessoren woorden in de database van Unigraphics geplaatst zodat ze kunnen gebruikt worden vanuit de CAM. Via ‘Output → UG/Post Postprocess …’ kan een bepaalde postprocessor gekozen worden en een bestand gemaakt worden met de NC-code (zie figuur 1-7 p. 17) van de geselecteerde gereedschapsbanen. Bijlage III p. 89 toont een voorbeeld van gegenereerde NC-code. Als laatste wordt nog opgemerkt dat bij het creëren van een shop documentation-bestand, een CLSF-bestand en een NC-bestand telkens kan gekozen worden om het bestand naar buiten te brengen in het informatievenster van UG als het weggeschreven wordt door het knopje ‘List Output’ aan te vinken. Ook de keuze ‘Output Units’ is belangrijk voor het verschil tussen metrische eenheden en inches. Het maken van de drie soorten besproken bestanden kan ook korter via de knoppen uit de werkbalk (zie figuur 1-8). CLSF Postprocess Shop Documentation Figuur 1-8: Knoppen werkbalk
1.2 Postbuilder Bij het softwarepakket Unigraphics NX 2.0 is nog een ander programma beschikbaar, namelijk Postbuilder. Deze applicatie dient om postprocessoren aan te maken aan de hand van een wizard of geleide methode. Het is ook mogelijk om eigen bewerkingen of procedures (custom commands) in de postprocessor te integreren of om bestaande procedures aan te passen. Alles gebeurt via een grafische interface waardoor het niet meer nodig is om de postprocessor rechtstreeks met de hand te programmeren. Postbuilder doet dit voor de gebruiker aan de hand van enkele kenmerkende gegevens van de kinematica van de machine die ingegeven moeten worden. Het grote voordeel van Postbuilder is dat
Thomas Sarre KHBO 2004-2005
18
Picanol NV
de programmeertaal TCL (Tool Command Language) waarmee posts geschreven zijn, niet gekend moet zijn om een eigen postprocessor te maken. Het is dus veel voordeliger voor een bedrijf om zelf de post te maken voor een eigen machine in plaats van veel geld te betalen om een postprocessor te laten maken. Een belangrijk nadeel van Postbuilder echter is dat de gebruiker bijna verplicht is om met dit programma te werken om posts te maken als deze ook gebruikt willen worden om er simulaties mee te doen. Het is niet zo evident om simulaties te laten lopen met eigen postprocessoren omdat die in een andere ‘stijl’ geschreven zijn dan Postbuilder. Postbuilder is een programma dat automatisch postprocessoren genereert en daarom zit er dan ook een zekere logica achter waardoor alle posts die er uit komen in dezelfde vorm geschreven zijn. Zoals later zal blijken is het zeker om een simulatie aan te sturen nodig dat deze vorm gehanteerd wordt zodat de post kan samenwerken met de simulatiesturing die trouwens ook via Postbuilder gemaakt wordt per machine en moeilijk zelf te schrijven is. Picanol werkt vandaag nog met de oude handgeschreven postprocessoren die in de loop van de tijd telkens manueel aangepast werden, maar deze posts zijn dus niet simuleerbaar, gezien ze niet met Postbuilder gegenereerd werden. Als de postprocessoren enkel voor hun hoofddoel gebruikt worden, namelijk NC-code maken, dan doet deze probleemsituatie zich niet voor. Er moet telkens de juiste NC-code gemaakt worden ongeacht of de post met de hand geschreven of met Postbuilder gemaakt werd, een simulatie heeft hier niks mee te maken! De versie van Postbuilder die met Unigraphics NX 2.0 meekwam, bleek al verouderd te zijn en daarom werd een update uitgevoerd naar versie 3.2.1. Figuur 1-9 toont het startvenster van Postbuilder.
Figuur 1-9: Startvenster Postbuilder
Onder de knop Utilities zitten twee functies: ‘Edit Template Posts Data File’ en ‘Browse MOM Variables’. Via de eerste knop kunnen verwijzingen naar nieuwe postprocessoren direct ingeschreven worden in het bestand ‘template_post.dat’ van Unigraphics zodat ze herkend worden door het systeem en direct gebruiksklaar zijn. Via de tweede knop kunnen alle MOM-variabelen van de CAM bekeken worden met een beschrijving en hun mogelijke waarden. MOM staat voor ‘Manufacturing Output Manager’ en het zijn deze Thomas Sarre KHBO 2004-2005
19
Picanol NV
variabelen die aan de basis liggen van de werking van de CAM. Om een nieuwe postprocessor te beginnen, wordt gekozen voor ‘File → New …’ of direct via de knop ‘New’. Figuur 1-10 toont het venster dat dan verschijnt.
Figuur 1-10: Een nieuwe post maken
In dit dialoogvenster gebeuren de eerste belangrijke keuzes voor het type machine, de eenheden, de naam van de postprocessor en het type sturing. Voor het type sturing kan gekozen worden tussen een algemene sturing (generic), een specifieke sturing uit de library (siemens, fanuc, enz.) of een eigen gedefinieerde sturing (user’s). Voor deze laatste moet een extern bestand aangewezen worden dat Postbuilder dan kan gebruiken. Na dit venster heeft Postbuilder al een eerste bepaling van het soort postprocessor die gemaakt moet worden. De volgende stap is het belangrijkst en omvat in de eerste plaats het invoeren van de kinematica van de machine (zie figuur 1-11 p. 21). Via het tabblad ‘Machine Tool’ wordt de kinematica in verschillende stappen ingevuld. Ten eerste kunnen bijvoorbeeld het bereik van de lineaire assen ingegeven worden, de maximum voedingssnelheid, de nulpositie van de machine, enz. Daarnaast moeten ook de rotatie-assen gedefinieerd worden (als de machine er tenminste heeft). Figuur 1-12 op de volgende pagina toont de verschillende in te vullen parameters voor een rotatie-as.
Thomas Sarre KHBO 2004-2005
20
Picanol NV
Figuur 1-11: Kinematica machine invoeren
Figuur 1-12: Kinematica rotatie-as
Thomas Sarre KHBO 2004-2005
21
Picanol NV
Een belangrijke waarde is de ‘Pivot Distance’ die de afstand weergeeft tussen de top van de spindel en het punt waarrond de spindel draait (enkel als de spindel op een rotatie-as ligt!). Deze afstand wordt dan gebruikt om de lengtecorrectie van het gereedschap uit te voeren als de spindel onder een hoek staat. Andere waarden die hier ingevuld kunnen worden, zijn de voedingssnelheden, de bereiken, enz. Het venstertje van ‘4th Axis Center To 5th Axis Center’ bevat belangrijke waarden voor machines met twee rotatie-assen. Deze getallen geven de afstand tussen de twee assen in de X-, Y- en Z-richting en bepalen dus de ligging van deze assen tegenover elkaar. In de handleiding van Postbuilder is echter weinig informatie hierover te vinden en wordt slechts een vage omschrijving gegeven terwijl dit toch wel heel belangrijke waarden zijn om een correcte postprocessor te maken. Dit is dan ook een moeilijk te omzeilen hindernis bij het maken van een nieuwe post! De andere tabbladen die te zien zijn in figuur 1-11 p. 21 dienen om o.a. ‘custom commands’ te integreren in de postprocessor of om bestaande procedures aan te passen, kortom daar wordt de post tot in de details aangepast. Het is niet de bedoeling hier verder op in te gaan omdat het maken van een postprocessor niet behoort tot de opdracht van deze thesis. Later zal echter blijken dat voor bepaalde sturingen van de simulatie er een postprocessor nodig is die met Postbuilder gemaakt is, vandaar deze korte uiteenzetting over Postbuilder en het invoeren van de kinematica van een machine. Als laatste in verband met de simulatie is het nog belangrijk om te vermelden dat via het tabblad ‘Output Settings’ een optie bestaat om een bestand aan te maken dat samen met de postprocessor nodig is om te simuleren (zie ook verder in § 2.4). Dit bestand heet een VNC-bestand en figuur 1-13 toont waar en hoe dit bestand kan aangemaakt worden.
Figuur 1-13: VNC-bestand maken
1.3 Vericut Bij Picanol wordt het softwarepakket Vericut 5.1 gebruikt om simulaties van de verspanende bewerkingen op een werkstuk uit te voeren vooraleer dat stuk daadwerkelijk geproduceerd wordt op de CNC-machine. Een simulatie met Vericut heeft als input een
Thomas Sarre KHBO 2004-2005
22
Picanol NV
bestand met de NC-code die vertaald wordt naar bewegingen van het gereedschap of bewegingen van de volledige machine. Op die manier kan nagegaan worden of de geprogrammeerde gereedschapsbanen uit de CAM correct zijn en er nergens botsingen voorkomen tussen machine, werkstuk of de opspanmal. Vericut is een extern programma dat volledig los staat van Unigraphics en de NC-code uit de CAM heel goed simuleert. Het is één van de beste simulatiepakketten op de markt, maar het is dan ook heel duur. Nu Unigraphics een eigen simulatiemodule heeft (ISV) zou het natuurlijk interessant zijn om die te gebruiken en daarmee de grote kost van Vericut uit te sparen, maar zijn de simulaties dan nog zo goed? Omdat ik niet beschik over Vericut op mijn PC heb ik er in de tijd die ik doorgebracht heb in het bedrijf wat uitleg over gekregen en kort kennis mee gemaakt. Daarom volgt hier een algemene beschrijving van het programma en wat de belangrijkste mogelijkheden zijn die gebruikt worden door Picanol. Om een nieuwe simulatie te starten met Vericut, kiest de gebruiker eerst welke machine nodig is. De machines zijn samengesteld uit verschillende onderdelen die tegenover elkaar kunnen bewegen, zoals de tafel, de spindel, de lineaire assen, enz. Elk van deze onderdelen is een 3D-model dat met een CAD-pakket gemaakt werd; ze zijn samengesteld tot de volledige machine in één assembly. Vericut haalt deze CAD-bestanden één voor één binnen onder de vorm van universele STL-bestanden en plaatst alle machineonderdelen in een soort boomstructuur. In deze structuur krijgen alle elementen van het machinemodel een naam en worden de bewegingsassen gedefinieerd, m.a.w. deze boomstructuur weerspiegelt eigenlijk de kinematica van de machine. Naast het kiezen van de machine kunnen verschillende ‘views’ of vensters gekozen worden om bijvoorbeeld het werkstuk van verschillende kanten en/of de machine tegelijk te bekijken tijdens de simulatie. Deze views worden ook in een boomstructuur geplaatst onder elkaar en in elk ervan moet het CAD-model van het werkstuk (met ruw stuk) en de opspanmal (als die er is) gedefinieerd worden. Figuur 1-14 op de volgende pagina geeft een overzicht van de boomstructuur uit Vericut met de belangrijkste onderdelen om een simulatie te beginnen.
Thomas Sarre KHBO 2004-2005
23
Picanol NV
Simulatie Machine View 1
werkstuk opspanmal
View 2
werkstuk opspanmal
Figuur 1-14: Boomstructuur Vericut
In een volgende stap wordt het NC-programma gekozen dat gesimuleerd moet worden via ‘Setup → Toolpath’. Er kunnen hier dan ook enkele opties geactiveerd worden voor de simulatie zoals: moet de gereedschapshouder zichtbaar zijn of niet en welke kleur moet die hebben, hoe moeten de bewegingen tijdens de simulatie gebeuren? Hier kan gedefinieerd worden wanneer de simulatie moet stoppen: na elke gereedschapswissel, na een aantal lijnen NC-code, enkel aan het einde van het programma, als er zich een botsing voordoet, na een aantal fouten of waarschuwingen, enz. Verder kan in dit gedeelte ingesteld worden met welk stuurpunt de NC-code uitgevoerd wordt: de top of het center van de afrondingsstraal van het gereedschap. De gebruiker kan ook kiezen welke de bewegingen moeten zijn bij boorcycli: geen beweging of alles volledig weergeven. In het venster ‘Job Tables’ kunnen een aantal nulpunten gedefinieerd worden omdat in een NC-programma soms overgeschakeld wordt tussen verschillende nulpunten. Om de simulatie goed te laten verlopen, moeten dan nog enkele details in verband met de machine ingesteld worden. Er kan gedefinieerd worden tot welke minimum afstand twee onderdelen uit de simulatie mogen naderen tot elkaar vooraleer er een botsing gedetecteerd wordt. Verder is het ook nodig een aantal posities in te stellen zoals: de gereedschapswissel, de thuispositie van de machine, enz. Ook de maximum verplaatsingen van de assen worden gedefinieerd en de prioriteit van de assen met een nummer (welke as is afhankelijk van een andere). Als alles klaar staat kan de simulatie beginnen en beweegt het gereedschap alleen of samen met de volledige machine en neemt het materiaal af van het ruwe stuk. Het voordeel bij een simulatie is dat het werkstuk langzaam tevoorschijn komt uit het ruwe stuk en het direct opvalt wanneer iets verkeerd loopt, bijvoorbeeld verkeerde materiaalafname of een botsing. Bovendien is het mogelijk om metingen te doen op het half afgewerkt stuk midden Thomas Sarre KHBO 2004-2005
24
Picanol NV
in de simulatie en om ergens tijdens de simulatie het bestand op te slaan (‘Inprocess Save’) en het later weer te openen om verder te werken. Tijdens het simuleren kunnen er via de optie ‘Info’ een aantal gegevens naar buiten worden gebracht zoals: de verwerkte NCcode, de verstreken tijd, enz. Nadien kan het LOG-bestand bekeken worden waarin een gedetailleerde versie van alle gebeurtenissen beschreven staat en een samenvatting van de gebruikte gereedschappen en de totale verstreken tijd. De ervaring bij Picanol leert dat de tijdsmeting redelijk accuraat is, maar niet bij boorcycli. Merk op dat er naast een normale simulatie ook gewoon een lijn NC-code kan ingegeven worden die de machine dan uitvoert. Zo kan nagegaan worden hoe Vericut de NC-codes interpreteert. Ten tweede valt op te merken dat in de CAM van Unigraphics ook dynamische materiaalafname kan gesimuleerd worden via ‘Toolpath → Verify’ (zie § 1.1 p.17), maar dat is gebaseerd op gereedschapsbanen uit de CAM en niet op NC-code. Het simuleren van NC-codes staat dichter bij de werkelijkheid omdat de echte machine ook deze code moet interpreteren! Vericut
beschikt
over
een
‘Toolmanager’
of
gereedschapsbeheer
waarin
ook
gereedschappen kunnen aangemaakt worden. Picanol verdeelt een gereedschap in een houder, een tussenstuk en een snijdend gedeelte. Van deze onderdelen wordt een lijnenprofiel getekend dat dan rond de symmetrieas van het gereedschap gewenteld wordt waardoor een 3D-model ontstaat. Omdat complexe vormen mogelijk zijn met het lijnenprofiel kunnen alle soorten gereedschappen gemaakt worden. Het is mogelijk om gereedschappen die enkel verschillen op bepaalde diameters of lengtes te kopiëren zodat niet telkens het volledige gereedschap opnieuw getekend moet worden. Aan de andere kant is het niet eenvoudig om de gekopieerde tools aan te passen! Er moet ook een nulpunt (geprogrammeerd punt) gedefinieerd worden op elk gereedschap vooraleer het geschikt is voor simulaties. Meestal zal dit de top van het snijdende gedeelte zijn, maar bij vormfrezen bijvoorbeeld moeten eenduidige afspraken gemaakt worden waar dat nulpunt moet liggen. Schijffrezen zijn hierin speciale gevallen omdat soms de bovenkant van de schijf belangrijk is of soms de onderkant. Dit heeft Picanol opgelost door van iedere schijffrees twee versies te maken: één met het nulpunt aan de bovenkant van de schijf en één met het nulpunt op de onderkant van de schijf. Elke versie krijgt een verschillend nummer zodat Vericut weet waar het geprogrammeerde punt van het gereedschap ligt. De postprocessoren van Picanol weten dit niet zodat het punt manueel moet ingesteld worden om tot de juiste lengtecorrectie of diametercorrectie te komen. In de NC-code staan deze correcties dan als een H12 of H14 en/of een D12 of D14 (zie figuur 1-15). Thomas Sarre KHBO 2004-2005
25
Picanol NV
H12
H14
D14
D12
Figuur 1-15: Schijffrees
Picanol volgt meestal de materiaalafname met enkel het bewegende gereedschap dat te zien is op twee ‘views’ waarin het werkstuk van twee kanten tegelijk getoond wordt tijdens de simulatie. De botsingsdetectie met de volledige machine gebeurt dan wel, maar wordt niet weergegeven omwille van de zware grafische belasting van het computersysteem waardoor alles begint te vertragen. Vanuit dit standpunt bekeken ziet deze manier van werken er hetzelfde uit als het grafisch verifiëren van gereedschapsbanen in Unigraphics, maar in Vericut wordt vertrokken van de NC-code en zijn er meer uitgebreide functies. Het is nu de vraag in hoeverre ISV een evenwaardig alternatief kan zijn voor Vericut.
1.4 Willemin W418 Om een concreet startpunt te hebben, stelde mijn stagebegeleider voor om te werken rond één van de machines van Picanol: de Willemin W418. Dit is een 5-assig kop/tafel bewerkingscenter met automatisch gereedschapsmagazijn en palletwisselaar. De machine staat opgesteld in een geklimatiseerde ruimte en heeft een werkvolume van X = 500 mm, Y = 248 mm en Z = 400 mm. De spindel met het gereedschap draait rond de B-as die een bereik heeft van 0° tot 110°. De tafel waarop de opspanmal met het werkstuk bevestigd wordt, draait rond de C-as die een bereik heeft van -360° tot 360°. De snelheden in ijlgang zijn voor de X-, Y- en Z-as = 20 m/min, voor de B-as = 5400°/min en voor de C-as = 18000°/min. De maximale voedingsnelheden zijn voor de X-, Y- en Z-as = 6000 mm/min, voor de B-as = 5000°/min en voor de C-as = 12000°/min. Het center van de tafel wordt gebruikt als oorsprong om extra bewerkingsvlakken tegenover te definiëren die bijvoorbeeld onder een bepaalde hoek in de driedimensionale ruimte kunnen liggen. Figuur 1-16 p. 27 is een foto van de Willemin W418 maar zonder de automatische palletwisselaar. Van deze machine bestaat er een CAD-model dat gebruikt wordt in Vericut en dat gemaakt werd met Unigraphics 18. Dit model kreeg ik omdat het niet de bedoeling is dat ik die machine helemaal ging tekenen met de CAD-applicatie. Bovendien moet dit uiterst
Thomas Sarre KHBO 2004-2005
26
Picanol NV
nauwkeurig gebeuren en dit is niet eenvoudig. Met het oog op een simulatie werd het CAM-model van het werkstuk BA218793 geselecteerd samen met de bijhorende NC-code. Met deze machine en het werkstuk heb ik een zeker startpunt om te beginnen aan ISV. Figuren 1-17 en 1-18 tonen respectievelijk het machinemodel en het werkstuk.
Figuur 1-16: Willemin W418
Figuur 1-17: CAD-model Willemin W418
Thomas Sarre KHBO 2004-2005
Figuur 1-18: CAD-model BA218793
27
Picanol NV
2
ISV: Integrated Simulation & Verification 2.1 Korte beschrijving van ISV Integrated Simulation en Verification is de nieuwe simulatiemodule van Unigraphics die volledig kan aangepast worden door de gebruiker en die het verspanend productieproces simuleert aan de hand van een virtueel model van de CNC-machine. ISV helpt een dergelijk model - dat de kinematica van de machine bevat - te bouwen dat dan getoond wordt tijdens het werken in de CAM. ISV bestaat uit de ‘Machine Tool Driver (MTD)’ en de ‘S&V Engine’. De Machine Tool Driver is een uitbreiding van de Unigraphics NX 2.0 postprocessor die naast het genereren van NC-code ook het gedrag en de eigenschappen van de machine omvat. De MTD stuurt simulation & verification bevelen door naar de S&V-engine die deze verzamelt, verwerkt en de resultaten grafisch naar buiten brengt onder de vorm van bijvoorbeeld bewegingen van het machinemodel. Andere resultaten kunnen bijvoorbeeld terecht komen in het ‘Simulation Control Panel’ dat actief is wanneer de simulatie loopt en dat informatie toont zoals: de positie van het gereedschap, de waarden van de machine-assen, de verwerkte NC-code, enz.
Figuur 2-1: Structuur ISV
Thomas Sarre KHBO 2004-2005
28
Picanol NV
Figuur 1-2 op de vorige pagina illustreert de structuur van ISV en toont dat de Machine Tool Driver inderdaad bestaat uit twee delen: de postprocessor (‘Event Handler’) en een ‘Virtual NC Controller’ die de S&V-bevelen naar de S&V-engine stuurt. In § 2.4 wordt dieper ingegaan op de MTD. De S&V-engine is onderdeel van de Unigraphics programmatuur zelf en is daarom niet aan te passen. Op figuur 2-1 is ook te zien dat er bepaalde zaken nodig zijn in de CAM om ISV te kunnen gebruiken. Ten eerste moet er een model van de machine beschikbaar zijn, het zogenaamde ‘Machine Tool Model’. Dit model bestaat enerzijds uit een ‘assembly’ (samenstelling) van aparte CAD-bestanden die elk een geometrisch onderdeel van de volledige machine bevatten. Anderzijds moet de kinematica van de machine nog ingevoerd worden zodat ISV weet hoe de machine kan bewegen. Als het Machine Tool Model klaar is, moet het dan nog in de database van Unigraphics geplaatst worden om het te kunnen oproepen in de CAM. Ten tweede zijn er gereedschappen nodig uit de database van Unigraphics. De gereedschappen kunnen gemaakt worden zoals het Machine Tool Model in een assembly van verschillende CADmodellen, maar dit is niet verplicht. Als er geen geometrisch model van het gereedschap beschikbaar is dan maakt ISV er zelf één aan de hand van de gegevens uit de CAM. Ten derde is er een Machine Tool Driver nodig om de simulatie te kunnen sturen. In de volgende paragrafen wordt dieper ingegaan op de verschillende benodigde onderdelen voor ISV aan de hand van een machine van Picanol: de Willemin W418. Als alles op punt staat is er enkel nog een werkstuk met de geprogrammeerde gereedschapsbanen nodig om te kunnen simuleren. Wanneer de simulatie loopt, worden de gegevens uit het machinemodel gebruikt om de exacte bewegingen van het gereedschap weer te geven. Omdat ISV het gedrag van de machine met zijn sturing grafisch weerspiegelt, kunnen problemen en/of fouten tijdens het programmeren van de gereedschapsbanen direct gedetecteerd en opgevangen worden. Het is bovendien ook mogelijk een eigen simulatiedriver te integreren in de ISV-structuur en botsingen te laten detecteren tussen machineonderdelen, opspanningen, gereedschappen en het werkstuk. Als het werkstuk klaar is om werkelijk geproduceerd te worden, kan er met zekerheid gezegd worden dat er direct een goed product uit de machine komt zonder fouten of problemen. Op die manier kan een dure CNC-machine veel efficiënter gebruikt worden door eventuele (dure) problemen vooraf te elimineren in de werkvoorbereiding.
Thomas Sarre KHBO 2004-2005
29
Picanol NV
2.2 Machine Tool Model Het Machine Tool Model bestaat hoofdzakelijk uit twee delen: een assembly van alle machineonderdelen en een ‘Kinematics Model’ dat de kinematica van de machine bevat. Het MTM is absoluut noodzakelijk om een eigen machinemodel te gebruiken binnen ISV! Voor de Willemin W418 maakte ik een MTM door enkele voorbeeldmodellen van machines die standaard in de database van UG zitten te bestuderen en deze na te maken.
2.2.1
Assembly
Bij de opbouw van de assembly werd gewerkt volgens het ‘Master Model’ concept. Dit wil zeggen dat er een hoofdbestand met de naam van de machine bestaat dat verwijst naar onderliggende componenten of andere assemblies en dus niet rechtstreeks geometrische componenten bevat. Figuur 2-2 toont het beeld uit de Assembly Navigator en illustreert hoe de assembly voor de Willemin W418 in elkaar zit.
Bevat elementen uit Kinematics Model Bevat de geometrische componenten van de assembly
Figuur 2-2: Assembly W418
Het hoofdbestand ‘Willemin_W418’ bevat enkel een aantal gegevens met betrekking op het ‘Kinematics Model’ (zie §2.2.2), maar geen geometrische objecten. Dit hoofdbestand verwijst naar een onderliggende assembly ‘5axis_ctable_xyzbhead’ die op zijn beurt enkel een verwijzing is naar de componenten van de machine en dus de geometrische componenten van de machine omvat. Op die manier ontstaat er een soort boomstructuur die ook gebruikt wordt bij de voorbeeldmachines uit UG. De machine wordt normaal onderverdeeld in de belangrijkste componenten die op de werkelijke machine bewegen tegenover elkaar. Voor deze machine zijn dat het frame, de draaitafel, de spindel, en het blok dat de XYZ bewegingen uitvoert. Figuur 2-3 op de volgende pagina toont de verschillende geometrische componenten van de Willemin W418.
Thomas Sarre KHBO 2004-2005
30
Picanol NV
Frame
XYZ-frame
Spindel
Tafel
Figuur 2-3: Componenten Willemin W418
Het is gebruikelijk om enkel de componenten te tekenen die relevant zijn voor de kinematica van de machine en niet om de machine tot in detail na te maken. Meestal zijn deze details overbodig en louter bedoeld om alles wat esthetisch mooier te laten ogen, maar in sommige gevallen kunnen ze toch belangrijk zijn. De kleine buisjes voor de koelvloeistof onderaan de spindel van de Willemin bijvoorbeeld zijn ook getekend in het ISV-machinemodel omdat deze kunnen botsen met het werkstuk, de opspanning of andere machineonderdelen. Voor het praktisch opbouwen van een assembly-boomstructuur zoals in figuur 2-2 van de vorige pagina en het positioneren van de verschillende onderdelen tegenover elkaar verwijs ik naar de handleiding van Unigraphics NX 2.0. Het is niet voldoende om bij het samenstellen van de assembly enkel de machinecomponenten samen te brengen tot één geheel (zie figuur 1-17 p.27), maar er moet ook bepaald worden hoe de onderdelen tegenover elkaar kunnen bewegen. In een gewone samenstelling bestaan de componenten nog volledig los van elkaar, maar om er een machinemodel van te maken moeten een aantal bewegingsvrijheidsgraden geëlimineerd worden. Dit moet zodanig gebeuren dat enkel de bewegingen die de machine in werkelijkheid uitvoert overblijven. Via ‘Assemblies → Components → Mate Components …’ of door rechts te klikken op een component uit de Assembly Navigator en ‘Mate …’ te kiezen, verschijnt het venster van de ‘Mating Conditions’ (zie figuur 2-4 p. 32). Met Mating Conditions worden verbanden gelegd tussen verschillende objecten uit een assembly door bepaalde geometrische kenmerken van die objecten vast met elkaar te verbinden. Vaak bestaan deze geometrische kenmerken onder de vorm van hulpvlakken en -assen (‘Datum Planes’ en ‘Datum Axes’). De manier om deze kenmerken te verbinden, kan gekozen worden bij ‘Mating Type’. Enkele mogelijkheden zijn: twee vlakken tegen elkaar leggen (‘Align’), twee assen vast zetten(‘Mate’), een variabele hoek definiëren tussen twee vlakken (‘Planar Angle’), enz. Op die manier worden de bewegingsThomas Sarre KHBO 2004-2005
31
Picanol NV
vrijheidsgraden beperkt totdat de twee componenten enkel nog op de gewenste manier kunnen bewegen tegenover elkaar. Zoals op figuur 2-4 te zien is, zijn er per twee machinecomponenten telkens drie Mating Conditions nodig om tot het gewenste resultaat te komen, maar dit kunnen er ook minder of meer zijn afhankelijk van welke Mating Types gekozen worden of het aantal vrijheidsgraden dat overgehouden moet worden. De machineonderdelen die ‘gemate’ worden bij de Willemin W418 zijn: de spindel aan het XYZ-frame (verduidelijkt op figuur 2-4), het XYZ-frame aan het machineframe en het machineframe aan de tafel. Bij Picanol wordt er vertrokken van de tafel die vast staat waarop dan het frame ‘gemate’ wordt en dan daarop het XYZ-frame en ten slotte daarop de spindel. Nu kan het model van de Willemin enkel nog bewegen zoals dat in werkelijkheid gebeurt. Als laatste wordt de volledige assembly opgeslagen onder de naam van het hoogste element in de assembly-boomstructuur (zie figuur 2-2 p.30).
datum axis
datum plane
Figuur 2-4: Mating Conditions
2.2.2
Het kinematics-model
De volgende stap om tot een Machine Tool Model te komen is het creëren van een kinematics-model. Dit model bevat alle gegevens over de kinematica van de machine en het is dus heel belangrijk dat dit correct is om zo tot een goede simulatie te komen. Net Thomas Sarre KHBO 2004-2005
32
Picanol NV
zoals bij het maken van de assembly, volg ik het voorbeeld van de voorbeeldmachines. Om een kinematics-model te maken bestaat er een aparte applicatie in UG: ‘Machine Tool Builder’. Wanneer de assembly klaar staat, wordt gekozen voor ‘Application → Machine Tool Builder’ (zie figuur 1-1 p.14) en de ‘Machine Tool Navigator’ verschijnt in de rechter werkbalk:
. De ‘Machine Tool Navigator’ is aanvankelijk leeg met enkel de naam van
de hoofd-assembly bovenaan het venster; de machinenaam dus. Om te beginnen moeten er eerst ‘kinematics componenten’ of ‘K-componenten’ gedefinieerd worden. De K-componenten verwijzen naar geometrische onderdelen van de machine uit de assembly en kunnen één bepaalde bewegingsrichting van dat machineonderdeel vertegenwoordigen. Afhankelijk van de gekozen Mating Conditions zal het onderdeel uit de assembly maar op één of meer manieren kunnen bewegen en zijn er dus ook één of meer K-componenten nodig om die bewegingen te kunnen definiëren. Het kan dus gebeuren dat er K-componenten zijn zonder verwijzing naar een geometrisch object, maar het is ook mogelijk dat ze verwijzen naar meerdere objecten omdat het bijvoorbeeld mogelijk is dat een bewegend machineonderdeel bestaat uit meerdere stukken of een subassembly. Aan de andere kant is het ook mogelijk dat een K-component enkel verwijst naar geometrische objecten zonder een beweging te definiëren. Dit is bijvoorbeeld het geval bij het definiëren van het werkstuk, het ruwe stuk en de opspanning die ook moeten opgenomen worden in het kinematics-model. Het komt er eigenlijk op neer dat een K-component een deel van de kinematica en/of de fysieke vormgeving van de machine voorstelt. K-componenten worden niet zomaar los van elkaar bepaald, maar ze moeten opgebouwd worden in een boomstructuur (kinematics-tree) waaruit de verbanden tussen de verschillende componenten van de machine blijken. Figuur 2-5 toont de kinematics-tree voor de Willemin W418.
Figuur 2-5: Kinematics-tree Willemin W418
Thomas Sarre KHBO 2004-2005
33
Picanol NV
Het
model
wordt
opgebouwd
vertrekkende
van
de
naam
van
de
machine
‘Willemin_W418’ (de hoofd-assembly!) door een eerste K-component toe te voegen die de machinebasis of het machineframe voorstelt. De component ‘machine_base’ wordt toegevoegd door rechts te klikken op ‘Willemin_W418’, te kiezen voor ‘Insert → Machine Base Component’ en het onderdeel ‘w418_freem_00’ uit de assembly aan te duiden als ‘Geometry Entity’ (zie figuur 2-6) of geometrisch object. Er kan maar één ‘machine_base’ bestaan in een kinematics-model. Andere K-componenten kunnen toegevoegd worden door rechts te klikken op het element van de kinematics-tree waaronder ze moeten komen en voor ‘Insert → K-Component’ te kiezen. Het venster ‘Create K-Component’ verschijnt (figuur 2-6) en er kan een naam ingegeven worden en eventueel een geometrische component uit de assembly geselecteerd worden via de knop ‘Add’.
Figuur 2-6: K-component maken
Door telkens nieuwe K-componenten onder elkaar te plaatsen ontstaat een boomstructuur die een voorstelling is van de kinematica van de machine. Op figuur 1-17 op p.27 is te zien dat de draaitafel en het XYZ-frame machineonderdelen zijn die verbonden zijn met het machine-frame. Daarom moeten de K-componenten van deze onderdelen beide onder ‘machine_base’ geplaatst worden. De K-componenten ‘X_slide’, ‘Y_slide’ en ‘Z_slide’ stellen de drie bewegingen voor van het XYZ-frame en staan telkens onder elkaar omdat deze drie bewegingen afhankelijk zijn van elkaar. Enkel de ‘Z_slide’ verwijst naar het XYZ-frame uit de assembly terwijl de andere twee louter bewegingen voorstellen. Ook de spindel staat onder ‘Z_slide’ omdat de spindel moet meebewegen als één van de lineaire assen beweegt. De K-componenten voor het werkstuk, het ruwe stuk en de opspanning staan in een samenvattende K-component ‘Setup’ die dan onder de ‘C-slide’ (tafel) staat (dit is ook zo bij de voorbeeldmachines!). De boomstructuur zal voor elke soort machine anders zijn en moet dus opgebouwd worden met de posities en de bewegingen van de machine-assen in het achterhoofd.
Thomas Sarre KHBO 2004-2005
34
Picanol NV
Met de K-componenten alleen bestaat er louter een beschrijving van het machinemodel, maar om er functionaliteit in te krijgen, moeten er in een tweede fase ‘junctions’ en assen gedefinieerd worden. Een junction is een coördinatenstelsel dat een punt voorstelt waar twee K-componenten elkaar ontmoeten of waar twee componenten bewegen tegenover elkaar. Junctions worden gebruikt als herkenningspunten door de Machine Tool Driver om K-componenten te positioneren of om coördinatentransformaties te berekenen. Ze dienen ook om de oriëntatie van NC-assen van de machine te definiëren. Om een junction toe te voegen aan een K-component klikt de gebruiker rechts op deze component en wordt gekozen voor ‘Junctions’. Door vervolgens op de knop ‘Add’ te klikken kan een nieuwe junction gemaakt worden (zie figuur 2-7). Er wordt een naam ingegeven en via de knop ‘Define Coordinate System’ kan de junctie op de juiste plaats gezet worden in het grafische model van de machine. Om de junctions op de juiste positie te brengen is het handig - maar niet verplicht - om gebruik te maken van ‘Datum Planes’ en ‘Datum Axes’. Dit zijn vlakken en assen die getekend worden op een andere layer in het machinemodel en die bijvoorbeeld de symmetrie-as van een onderdeel kunnen voorstellen. De snijpunten van deze assen en vlakken zijn dan punten tussen twee machineonderdelen waartegenover een beweging gebeurt en zijn dus de aangewezen plaatsen om junctions op te plaatsen. ‘Datum Planes’ en ‘Datum Axes’ worden ook gebruikt bij het ‘maten’ van de machine-onderdelen (zie p.32). ROT_B
Op figuur 2-8 hierboven zijn de junctions te zien die in het model van de Willemin W418 zitten. De junction ‘ROT_B’ staat op het punt waar de spindel draait op het XYZ-frame, ‘ROT_C’ staat op het punt waar de tafel draait tegenover het machineframe. De junctions ‘TOOL_MOUNT_JCT’ en ‘PART_MOUNT_JCT’ dienen respectievelijk om het gereedschap
en
het
werkstuk
te
positioneren.
‘MACHINE_ZERO’
stelt
het
machinenulpunt voor en dit coördinatenstelsel wordt gebruikt om de oriëntatie van de lineaire assen van de machine tegenover te definiëren (zie ook figuur 2-10). Het voorgaande maakt duidelijk dat junctions belangrijk zijn om de machine-assen in het MTM te kunnen integreren. Met behulp van deze assen kan een bepaalde beweging toegekend worden aan een K-component. Het is uiteraard de bedoeling dat de beweging die de as vertegenwoordigt deze is die vooropgesteld werd toen de Mating Conditions toegekend werden. Om een machine-as in het MTM te plaatsen klikt, wordt rechts geklikt op de Kcomponent in de kinematics-tree die de desbetreffende beweging moet uitvoeren en wordt gekozen voor ‘Insert → Axis’. Het ‘Create Axis’ venster verschijnt (figuur 2-9) waar in de eerste plaats de naam van de as ingegeven moet worden. Heel belangrijk is nu welke junction gebruikt zal worden om de oriëntatie van de NC-as in te stellen (+X of -X). In figuur 2-9 is te zien dat er gekozen werd om de lineaire X-as te definiëren tegenover de junction ‘MACHINE_ZERO’ die verbonden is met de K-component ‘MACHINE_BASE’. Op het model in het grafische scherm verschijnt de richting van de NC-as dan onder de vorm van een gele pijl op de desbetreffende junction (zie figuur 2-10).
Figuur 2-9: Create Axis Thomas Sarre KHBO 2004-2005
Figuur 2-10: Richting NC-as
36
Picanol NV
Ook de maximale verplaatsingen langs de as kunnen ingesteld worden in het vakje ‘Axis Limits’. Deze verplaatsingen kunnen ook visueel gecontroleerd worden in het grafische scherm door te werken met de knoppen met de rode pijltjes. De maximale versplaatsingen moeten wel gekend zijn uit de gegevens van de machine. Elke NC-as moet op deze manier in het MTM geïntegreerd worden zodat de MTD weet hoe de kinematica van de machine in elkaar zit. Figuur 2-11 toont het volledige venster van de Machine Tool Navigator.
Figuur 2-11: Volledige voorstelling van het kinematics-model van de Willemin W418
Op deze figuur is duidelijk te zien bij welke K-componenten de junctions en de assen horen. Het is dus niet zo dat als een junction in het grafische scherm op een bepaalde Kcomponent ligt deze daarom ook verbonden is met die component. Bij de Willemin W418 is dat het geval met de junction ‘MACHINE_ZERO’ die op de top van de spindel ligt, maar verbonden is aan het machineframe. Bovendien is het ook zo dat er op de spindel en de tafel meerdere junctions op elkaar liggen zodat de voorstelling van die junctions in het grafische scherm nog verwarrender overkomt. Ook de NC-assen moeten verbonden worden met de K-component die moet bewegen volgens die as en bovendien moeten ze georiënteerd worden met de juiste junction! Om het kinematics-model af te werken, worden in een laatste fase enkele K-componenten en junctions geclassificeerd. Daardoor worden ze herkenbaar voor de MTD als onderdelen die een specifieke functie hebben. Op figuur 2-11 is duidelijk te zien hoe en welke componenten er geclassificeerd zijn. ISV moet namelijk weten door welke K-component het werkstuk (part), het ruwe stuk (blank), het machineframe, enz … voorgesteld wordt. De classificatie als ‘_SETUP_ELEMENT’ dient om duidelijk te maken dat op deze plaats later nog componenten zullen toegevoegd worden. Omdat er in het model van de machine nog geen werkstuk, ruw stuk of opspanning zit, maar die er later zeker zullen bijkomen, moet er dus een plaats gedefinieerd worden voor deze toekomstige componenten. Door daarbij nog een junction te definiëren (part_mount_jct), wordt het werkstuk direct op de juiste plaats gepositioneerd als de machine opgeroepen wordt in de CAM. Het nulpunt van het werkstuk wordt dan Thomas Sarre KHBO 2004-2005
37
Picanol NV
automatisch op de junction ‘part_mount_jct’ gelegd. Een component die geclassificeerd wordt als ‘_PART’ of als ‘_WORKPIECE’ wordt automatisch ook als ‘_SETUP_ ELEMENT’ geclassificeerd. Door rechts te klikken op de K-component die geclassificeerd moet worden en te kiezen voor ‘Classify’, verschijnt het venster van figuur 2-12.
Figuur 2-12: Classificatie
Figuur 2-13: Junction classificatie
Er is keuze uit een aantal voorgedefiniëerde classificaties die gekozen worden door het vakje ernaast aan te vinken. Er kunnen echter ook eigen classificaties gemaakt worden met het vak ‘New Class’. Het classificeren van K-componenten is vooral belangrijk voor het programma dat botsingen moet detecteren tijdens de simulatie omdat de componenten die niet in contact mogen komen, gekend moeten zijn. Ook junctions kunnen geclassificeerd worden door in het venster van figuur 2-7 p.35 de knop ‘Classify’ te gebruiken. Het venster van figuur 2-13 verschijnt dan met vier mogelijke classificaties. In het kinematicsmodel van een machine is enkel de classificatie als ‘Machine Zero’ van belang, de andere worden gebruikt bij het maken van gereedschappen (zie § 2.3.3). In de Machine Tool Navigator verschijnt dan naast de naam van de junction een markering (zie figuur 2-11 p. 37) en de MTD weet dan direct dat deze junction het machinenulpunt voorstelt. Samengevat gebeurt het maken van een kinematics-model in de volgende stappen: 1. K-componenten definiëren die een kinematisch gegeven en/of fysieke vormgeving van de machine voorstellen en deze rangschikken in een kinematics-tree waaruit de opbouw van de machine blijkt; 2. toekennen van junctions op de juiste plaatsen en bij de juiste K-componenten; 3. machine-assen definiëren bij de correcte K-componenten en junctions; 4. zoveel mogelijk K-componenten en junctions classificeren. Thomas Sarre KHBO 2004-2005
38
Picanol NV
Er moet opgemerkt worden dat bepaalde namen van junctions en assen niet willekeurig gekozen mogen worden (zie figuur 2-11 p. 37). De namen van de NC-assen moeten X,Y,Z,A,B of C zijn omdat de Machine Tool Driver deze assen enkel maar herkent als ze de namen hebben zoals die voorkomen in NC-code. De namen van de junctions ‘TOOL_MOUNT_JCT’ en ‘PART_MOUNT_JCT’ staan vast, want anders verschijnen er foutmeldingen. Een laatste maar belangrijke opmerking is dat tijdens het maken van een kinematics-model de CAM-applicatie absoluut niet geopend mag worden omdat het MTM later niet bruikbaar zal zijn in de CAM! In de CAM bestaat namelijk de ‘Machine Tool Setup Configurator’
die qua vormgeving gelijk is aan de ‘Machine Tool Navigator’
en dezelfde mogelijkheden heeft als de Machine Tool Builder. De Machine Tool Setup Configurator dient om het werkstuk, de opspanning en het ruwe stuk in het MTM te plaatsen tijdens de CAM. Het kinematics-model kan hier ook aangepast worden zonder de Machine Tool Builder te moeten gebruiken, maar niet om een nieuw MTM te maken!
2.2.3
Integratie in de Unigraphics-database
Als er een assembly en een kinematics-model gemaakt zijn dan is het Machine Tool Model van de machine klaar voor gebruik in ISV. Maar eerst moet het nog in de bibliotheek of ‘library’ van UG geplaatst worden zodat het kan opgeroepen worden vanuit de CAM. Ten eerste worden alle part-files van het MTM in de library-directory voor de machines geplaatst. De part-files moeten in een map met de naam van het machinemodel gestopt worden die dan zelf in de map ‘graphics’ (zie figuur 2-14) geplaatst wordt.
Figuur 2-14: part-files directory Willemin
Figuur 2-15: locatie databasebestand
Het MTM van elke soort machine moet altijd in een map gebundeld worden met de machinenaam die gelijk moet zijn aan de naam van het hoofdbestand van de assembly. Het is deze naam die gebruikt wordt in het systeem van Unigraphics om de onderdelen van het MTM terug te vinden in de library! In een tweede stap moet de naam van de machine en enkele andere gegevens die nodig zijn voor de dialoogvensters in de CAM in een database Thomas Sarre KHBO 2004-2005
39
Picanol NV
bestand ingevoerd worden. Het bestand heet ‘machine_ database.dat’ en bevindt zich ook in de machine library-directory, maar in de map ‘ascii’ (zie figuur 2-15 van de vorige pagina). Dit bestand bevat een lijst met alle machinemodellen die in de UG-library zitten. Per machine zijn enkele variabelen gegeven die belangrijk zijn voor het UG-systeem. Figuur 2-16 toont een stuk van de databaselijst met machines.
Figuur 2-16: Machine database
De variabelen worden gedefinieerd naast de lijn met ‘FORMAT’ terwijl ze ingevuld worden voor elke machine in een ‘DATA’ lijn. ‘LIBRF’ is de variabele die de naam van de machine en dus ook van de assembly bevat. Deze naam komt terecht in het dialoogvenster van de CAM als een machine opgeroepen wordt vanuit UG. Met behulp van deze variabele weet het systeem van UG ook direct in welke map in de graphics-directory de onderdelen van het MTM zich bevinden. De variabele ‘T’ stelt het type machine voor en dient om de machine onder te brengen in een bepaalde klasse zoals freesmachines, draaibanken, enz. ‘MNF’ en ‘DESCR’ stellen respectievelijk de fabrikant en een beschrijving van de machine voor. Deze variabelen zijn louter bedoeld om extra informatie te verschaffen bij de selectie van een machine in de CAM. ‘CNTR’ is voor de soort sturing van de machine en is ook enkel informatief. De variabele ‘POST’ ten slotte verwijst naar het postprocessordatabasebestand dat op zijn beurt verwijst naar de postprocessor(en) voor de machine (zie § 2.4.2/.3/.4). Het databasebestand bevat dus enkel verwijzingen naar bestandlocaties en informatie die in de UG-gebruikersomgeving terecht komt. De manier waarop de informatie uit de database in UG terecht komt kan zelf aangepast worden door de bestanden ‘dbc_machine_ascii.def’ (bijlage IV p. 90) en ‘dbc_machine _ascii.tcl’, die in dezelfde map als het databasebestand staan, te bewerken. Het DEFbestand definieert de verschillende variabelen uit het databasebestand, bepaalt de onderverdeling van de machines in klassen aangeduid met een cijfer in de variabele ‘T’ en bepaalt welke informatie uit het databasebestand in UG terecht komt. Door dit bestand aan te vullen met nieuwe eigen variabelen (bijvoorbeeld een variabele die een bedrijfseigen Thomas Sarre KHBO 2004-2005
40
Picanol NV
machinenummer bevat) kan de functionaliteit van de library uitgebreid worden. Er dient wel rekening mee gehouden te worden dat enkel het definiëren van een nieuwe variabele niet genoeg is, ze moet ook effectief werken en daarvoor moet er geprogrammeerd worden in het TCL-bestand. Dit is echter niet nodig in het geval er een nieuwe klasse aangemaakt wordt. Dit werd gedaan door in het DEF-bestand een klasse ‘PICANOL’ bij te voegen door gewoon enkele regeltjes te kopiëren en een uniek klassenummer te definiëren voor de variabele ‘T’ (zie bijlage IV p. 90). Vervolgens werd de Willemin W418 in het databasebestand geplaatst met het juiste klassenummer in de variabele ‘T’ (zie figuur 2-16 op de vorige pagina). Als dan een nieuwe machine geselecteerd wordt in de CAM bestaat direct de keuze voor een onderverdeling ‘PICANOL’ (zie figuur 2-17). Daaronder zit dan de Willemin in een lijst met alle informatie uit de variabelen van het databasebestand. Het is ook mogelijk te bepalen welke informatie er in deze lijst komt en welke niet. Uit het voorgaande blijkt dat de library en de werking ervan geschikt zijn voor customisatie!
Figuur 2-17: klasse PICANOL
2.3 De gereedschappen 2.3.1
Vooraf
Het is belangrijk dat er modellen bestaan van de gereedschappen die gebruikt worden bij de productie van werkstukken. Deze modellen kunnen dan dienen als virtuele voorstelling van de gereedschappen in een simulatie met ISV. Er zijn twee manieren om modellen te maken die bruikbaar zijn voor ISV: via de CAM of door zelf de gereedschappen te tekenen. Aanvankelijk werd de eerste manier bestudeerd omdat Picanol ook zo gereedschappen maakt om te gebruiken in de CAM. De kenmerkende parameters en afmetingen van de enorme hoeveelheid gereedschappen van Picanol zitten in de database van het bedrijf. Als de werkvoorbereider een bepaald gereedschap nodig heeft, worden de gegevens uit deze database via een conversieprogramma binnengehaald in UG en bouwt de CAM het gereedschap op aan de hand van deze gegevens. Het is natuurlijk ook mogelijk een gereedschap manueel te bouwen via de wizards in de CAM. In de volgende paragraaf Thomas Sarre KHBO 2004-2005
41
Picanol NV
wordt hier dieper op ingegaan. Bij Picanol wordt deze manier van werken enkel gebruikt tijdens de werkvoorbereiding (CAM), maar niet om te simuleren! Om te simuleren is er Vericut en daar zijn de gereedschappen op een andere manier gebouwd (zie § 1.3 p.23) die nauwkeuriger is en meer mogelijkheden biedt dan de standaard gereedschappen uit de CAM van UG. Daarom werd ook de tweede manier onderzocht om gereedschappen te maken, namelijk door ze zelf te tekenen op een analoge manier zoals dat in Vericut gebeurt. Het is immers de bedoeling dat er gezocht wordt naar een manier om Vericut te vervangen
door
ISV
en
dat
betekent
dus
ook
dat
de
mogelijkheden
om
gereedschapsmodellen te maken, bestudeerd moet worden.
2.3.2
Gereedschappen uit de CAM
De CAM van Unigraphics is uitgerust met een uitgebreide wizard om talrijke soorten gereedschappen aan te maken. Om een nieuw gereedschap te maken kiest de gebruiker voor ‘Insert → Tool…’ of wordt geklikt op het icoontje ‘Create Tool’
.
Figuur 2-18: Create Tool
Het venster van figuur 2-18 verschijnt en toont dat er eerst een type bewerking gekozen wordt (vlakfrezen, contourfrezen, boren, draaien, enz.) waardoor er dan een aantal subtypes gereedschappen verschijnen. Unigraphics maakt dus zelf een selectie van geschikte gereedschappen naargelang de bewerking die uitgevoerd moet worden. Er wordt een subtype gekozen, een naam en een ‘Parent Group’ (meestal de machine) en door op ‘OK’ te klikken, verschijnt het venster waar het gereedschap gemaakt moet worden met de juiste afmetingen, de houder, het materiaal, enz. Figuur 2-19 p. 43 toont dit venster voor het subtype ‘MILL’. In het tabblad ‘Tool’ worden de afmetingen van het gereedschap ingevuld aan de hand van het figuurtje. Er kunnen complexere ‘tools’ gemaakt worden door te kiezen voor een 7-parameter of 10-parameter frees. Het figuurtje verandert dan en er kunnen dan extra afrondingen gedefinieerd worden. De mogelijkheid om een bolfrees te maken bestaat ook. Onderaan het venster kunnen nog een paar gegevens zoals het Thomas Sarre KHBO 2004-2005
42
Picanol NV
gereedschapsnummer ingegeven worden. Met de knop ‘Display Tool’ verschijnt het voorlopige gereedschap in het grafische scherm waardoor visueel kan gecontroleerd worden of het gedefinieerde gereedschap correct is. In het tabblad ‘Holder’ (figuur 2-20) kan een houder gemaakt worden voor het gereedschap door één of meer cilinders te definiëren voor de schacht van het gereedschap en een opspankonus voor de opname in de spindel. Er kunnen houders gemaakt worden die uit veel onderdelen bestaan. Het figuurtje toont aan dat er voor elk stuk van de houder een viertal afmetingen kunnen ingevoerd worden. Het tabblad ‘More’ dient om het materiaal en het nummer van de houder te definiëren, de draairichting van het gereedschap in te stellen, enz. Als alle gegevens in orde zijn, wordt gekozen voor ‘OK’ en het gereedschap verschijnt in het ‘Machine Tool View’.
Figuur 2-19: Frees maken
Figuur 2-20: Houder
Naargelang het type en subtype gereedschap zullen de vensters van figuren 2-19 en 2-20 natuurlijk verschillen, maar het is duidelijk dat de gebruiker in zekere zin beperkt is tot enkele standaard gereedschappen die opgelegd worden door Unigraphics. Niettegenstaande de grote hoeveelheid mogelijke soorten gereedschappen zal een bedrijf altijd wel ergens een paar speciale gereedschappen hebben die dan niet op deze manier in de CAM kunnen geïntegreerd worden. Vormfrezen of speciale boren zijn hier al een voorbeeld van. Dit betekent niet dat de gereedschapswizard van de CAM nutteloos is, de normale en courante gereedschappen kunnen gemaakt worden en voor de werkvoorbereiding is het meestal Thomas Sarre KHBO 2004-2005
43
Picanol NV
voldoende een eenvoudig model te hebben. Er kan ook gesimuleerd worden met de gereedschapsgegevens uit de CAM, dus eenvoudige ‘tools’ kunnen snel klaargestoomd worden voor een simulatie.
2.3.3
Zelf gereedschappen maken
Het werkstuk voor de Willemin W418 dat ik kreeg van Picanol bevat alle gereedschapsbanen en gereedschappen die nodig zijn voor de volledige afwerking van het stuk. Die gereedschappen zijn via de database van Picanol in de CAM terecht gekomen en hadden de overgang van UG 18 naar UG 2.0 niet zo goed doorstaan toen het werkstuk geopend werd in de CAM. Houders waren verdwenen, lengtes van de snijkanten waren verkeerd, enz. Het vraagt veel tijd om alle gereedschappen weer min of meer in orde te krijgen volgens de methode uit de vorige paragraaf en ik heb hierbij veel problemen gehad. Bovendien was het al snel duidelijk dat deze gereedschappen niet geschikt zouden zijn om te simuleren als ze vergeleken worden met de overeenkomstige gereedschappen uit Vericut. Daarom werd een andere methode onderzocht om gereedschappen te maken in Unigraphics, namelijk door ze zelf te tekenen en op te bouwen. Aan de hand van een driedimensionaal model van een gereedschap met houder (als voorbeeld) dat ik vond in de database van UG en de nauwkeurige afmetingen van het profiel van de gereedschappen uit Vericut, bouwde ik een aantal ‘tools’. De manier van werken is dezelfde als bij het creëren van een Machine Tool Model: eerst een assembly samenstellen en dan een kinematics-model toevoegen. Om te beginnen wordt er een driedimensionaal model gemaakt van het snijdende gedeelte van het gereedschap en van de houder. Dit gebeurt in de applicatie ‘Modeling’ door eerst een tweedimensionale schets te maken in een vlak van het vaste coördinatenstelsel. De helft van het profiel van de gereedschapsonderdelen wordt getekend tegenover de symmetrielijn van het gereedschap. Vervolgens wordt dit profiel met de operatie ‘Revolve’ 360° gedraaid rond die symmetrieas zodat een driedimensionaal model ontstaat. De gereedschappen uit Vericut worden ook op deze manier gemaakt. Er moet opgemerkt worden dat bepaalde gereedschappen uit Vericut een snijdend gedeelte hebben dat hol is vanbinnen. Bij het samenstellen van snijdend gedeelte en houder wordt dit holle stuk op de houder geschoven zodat aan de onderkant de houder zichtbaar is. De bedoeling hiervan is om gereedschappen die niet kunnen duiken of boren te definiëren. Als het model van dat gereedschap tijdens de simulatie toch zou duiken in het materiaal dan zal er een botsing Thomas Sarre KHBO 2004-2005
44
Picanol NV
gedetecteerd worden tussen de houder en het werkstukmateriaal! Dit principe werd ook toegepast op de gereedschappen die ik maakte in UG (zie figuur 2-21). De figuur illustreert ook het resultaat wanneer het snijdende gedeelte en de houder samengesteld zijn tot één volledig gereedschap. Door de gereedschappen zelf te tekenen zijn complexe vormen mogelijk zoals vormfrezen en schroefdraadfrezen (zie figuur 2-22). Het snijdende gedeelte en de houder moeten samengesteld worden in een assembly onder een overkoepelende hoofd-assembly die de naam draagt van het gereedschap (zie figuur 2-23). In tegenstelling tot de assembly van het Machine Tool Model (§ 2.2.1 p. 30) moeten er bij de assembly van de gereedschappen geen ‘Mating Conditions’ gedefinieerd worden. De onderdelen van het gereedschap moeten immers niet kunnen bewegen tegenover elkaar tijdens een simulatie.
Figuur 2-22: complexe gereedschappen
Figuur 2-21: Beveiliging tegen duiken
Figuur 2-23: Tool-assembly
In een volgende fase moet er een soort mini-kinematics-model aan de gereedschappen toegevoegd worden omdat de geometrische vormen van het gereedschap op zich nog niet herkenbaar zijn voor ISV. Net zoals bij het machinemodel wordt de applicatie ‘Machine Tool Builder’ geopend en verschijnt de ‘Machine Tool Navigator’
in de rechter
werkbalk. Ook hier geldt dat de CAM niet geopend mag worden zodat er niet gewerkt kan worden met de ‘Machine Tool Setup Configurator’
(zie § 2.2.2 p. 39)! In de ‘Machine
Tool Navigator’ staat reeds één component en van daaruit wordt vertrokken om het kinematics-model op te bouwen. Door rechts te klikken op die component en te kiezen voor ‘Insert → Tool Base Component’ wordt een K-component aangemaakt die de geometrie van het gereedschapsmodel zal voorstellen. Die geometrie wordt gedefinieerd door in het vak ‘Geometry Entities’ (zie figuur 2-6 p. 34) de houder en het snijdende gedeelte van het gereedschap aan te duiden. Alle onderdelen van de assembly moeten in Thomas Sarre KHBO 2004-2005
45
Picanol NV
deze K-component terecht komen en door vervolgens op ‘OK’ te klikken wordt de component ‘TOOL_BASE’ effectief gecreëerd en automatisch geclassificeerd als ‘_TOOL’. In een volgende en uiterst belangrijke stap moeten er twee junctions toegevoegd worden op de ‘TOOL_BASE’ om tot een correct kinematics-model te komen. Een eerste junction komt op de plaats waar het gereedschap opgenomen wordt in de spindel van de machine en een tweede op de top van het gereedschap (zie figuur 2-24).
TOOL MOUNT JCT
Figuur 2-24: Tool-junctions
SIM_TOOL_MOUNT
SIM_TOOL_TIP
Figuur 2-25: Verband junctions gereedschap en machine
Het cijfer 1 op de figuur duidt de junction aan voor de gereedschapsopname en het cijfer 2 de junction voor de top van het gereedschap. De X-as van de junctions definieert de rotatie-as van het gereedschap dus moet er voor gezorgd worden dat de junctions correct gepositioneerd worden met hun X-as weg van de top van het gereedschap gericht. De oorsprong van de junction op de top van het gereedschap stelt het geprogrammeerde punt Thomas Sarre KHBO 2004-2005
46
Picanol NV
voor dat gebruikt wordt om de gereedschapsbanen te programmeren in de CAM. De andere junction zorgt ervoor dat het gereedschap altijd op de juiste manier in de spindel van de machine terechtkomt door deze junction met de ‘TOOL_MOUNT_JCT’ van het Machine Tool Model overeen te laten komen (zie figuur 2-8 p. 35). Figuur 2-25 op de vorige pagina toont een gereedschap met de twee junctions en de junction ‘tool_mount’ op de spindel van de machine. Merk op dat de X-as van de junction ‘tool_mount’ ook volgens de rotatie-as van het gereedschap moet liggen omdat anders het ‘tool’ verkeerd georiënteerd wordt in de spindel. Op deze figuur staan ook de namen van de twee gereedschapsjunctions: ‘SIM_TOOL_MOUNT’ en ‘SIM_ TOOL_TIP’. Het is aan te raden deze namen te gebruiken omdat ISV de junctions anders niet zal herkennen en er een foutmelding tevoorschijn komt waardoor de simulatie niet zal starten. Om de twee junctions op de ‘TOOL_BASE’ te plaatsen, wordt rechts geklikt op deze K-component en gekozen voor ‘Junctions’. Figuur 2-7 p. 35 toont het venster dat dan verschijnt. Via de knop ‘Add’ kan een junction toegevoegd worden, een naam gedefinieerd worden en met de knop ‘Define Coordinate System’ wordt de junction op de juiste plaats gezet zoals in figuur 2-25 van de vorige pagina te zien is. Met de knop ‘Classify’ kunnen de junctions ook direct geclassificeerd worden als ‘Tool Mount’ en ‘Tool Tip’ (zie figuur 2-13 p.38). Daardoor zijn ze herkenbaar voor de sturing van ISV en is het gereedschap klaar om te gebruiken in simulaties. Figuur 2-26 toont de Machine Tool Navigator met het volledige kinematicsmodel van één gereedschapsmodel. De geclassificeerde junctions zijn gemerkt met een tekentje naast hun naam. Het kinematics-model voor een gereedschap is dus relatief eenvoudig te noemen in vergelijking met dat van een machinemodel: er is slechts één Kcomponent en er zijn geen assen.
Figuur 2-26: Kinematics model van een gereedschapsmodel
2.3.4
Integratie in de Unigraphics-database
Unigraphics beschikt over een database om gereedschappen in op te slaan zodat deze kunnen opgeroepen worden vanuit de CAM. De database zelf bestaat uit één bestand ‘tool_database.dat’ dat in de map ‘Metric’ zit van de UG tool-library-directory (zie figuur 2-27 op de volgende pagina). Thomas Sarre KHBO 2004-2005
47
Picanol NV
Figuur 2-27: tool-library-directory
De werking van dit bestand is analoog aan het databasebestand voor de machines. De regels met ‘FORMAT’ vooraan dienen om een aantal variabelen of parameters te definiëren die voor elk gereedschap in de database ingevuld worden in een lijn met ‘DATA’ vooraan (zie figuur 2-16 p. 40). Elk gereedschap heeft als eerste variabele ‘LIBRF’ die de naam van het part-file van het gereedschap bevat en dus verwijst naar een driedimensionaal model. Deze modellen met elk hun kinematics-model worden in de map ‘graphics’ van de tool-library-directory geplaatst. Alle gereedschappen die ik gemaakt heb zoals beschreven in § 2.3.3 komen dus ook hier terecht. Het valt direct op dat er veel minder modellen in de graphics-map zitten dan er gereedschappen in het databasebestand staan. In de database staan een grote hoeveelheid gereedschappen waarvan de meeste een ‘LIBRF’ variabele hebben die enkel de naam bevat van het ‘tool’ zonder dat er een model van bestaat. Als zo een gereedschap opgeroepen wordt uit de CAM dan wordt er een soort ‘default’ driedimensionaal model opgebouwd aan de hand van de afmetingen van het gereedschap die uit de daarvoor gedefinieerde variabelen komen in de database. Dit gebeurt eigenlijk ook als een gereedschap gemaakt wordt vanuit de CAM zoals beschreven in § 2.3.2. Het verschil is dat er nu via een aantal zoekcriteria een gereedschap uit de database gehaald wordt en dit niet meer gebeurt door zelf de afmetingen in te geven in de wizard van de CAM. Als er wel een model bestaat dan wordt dit uiteraard uit de library gehaald en ingeladen in de CAM. Volgens het soort gereedschap zullen bepaalde variabelen bestaan voor de afmetingen (te vergelijken met die uit de wizard uit de CAM; zie figuur 2-19 p. 43), maar voor ieder gereedschap bestaan er variabelen die een beschrijving bevatten over het soort materiaal, de fabrikant, de soort houder, enz. Elk gereedschap bevat ook de variabelen ‘T’, ‘ST’, ‘UGT’ en ‘UGST’ waarin een getal terecht komt. De eerste twee dienen om de ‘tools’ onder te verdelen in klassen en subklassen in de database. De laatste twee verdelen de gereedschappen in types en subtypes uit de selectievensters van de CAM zoals in figuur 2-18 p. 42. In het databasebestand staat een lijst met deze onderverdeling en met het bijhorende getal dat in de variabelen moet komen. Bij elke subklasse in de database staat ook een lijst met alle variabelen voor dat soort Thomas Sarre KHBO 2004-2005
48
Picanol NV
‘tools’ samen met een nauwkeurige uitleg van elke variabele. Bijlage V p. 91 toont het begin van het databasebestand dat het bovenstaande illustreert en waarin extra uitleg staat over de werking van de database. De gereedschapsdatabase is aanpasbaar door de gebruiker net zoals de machinedatabase. Dit kan door het bestand ‘dbc_tool_ascii.def’ en/of het bestand ‘dbc_tool_ascii.tcl’ te bewerken. Deze bestanden bevinden zich in de map ‘ascii’ in de tool-library-directory. Het DEF-bestand definieert de structuur van de klassen en subklassen uit de database en kan simpel aangepast worden door hierin een klasse en/of subklasse bij te voegen. Ik heb dit gedaan door een klasse ‘PICANOL’ aan te maken met daaronder twee subklassen ‘FREZEN’ en ‘GATBEWERKINGEN’ en die allemaal een uniek nummer te geven om in te vullen in de variabelen ‘T’ en ‘ST’ (zie bijlage VI p. 93). Het is hier ook mogelijk om te bepalen welke variabelen zullen verschijnen in de dialoogvensters in de CAM en zelfs welk figuurtje er in die vensters komen. Figuur 2-28 toont een deel van de gegevens die ik in de database plaatste voor alle frezen van Picanol die ik maakte.
Figuur 2-28: Database gegevens Picanol frezen
De variabelen met de afmetingen van de gereedschappen staan niet op de figuur. ‘T’ en ‘ST’ zijn nu ingevuld met de nummers van de zelfgemaakte klassen. ‘UGT’ en ‘UGST’ zijn ingevuld volgens de types en -subtypes die het beste passen bij de zelfgemaakte gereedschappen, maar die zijn eigenlijk niet nodig omdat de ‘tools’ rechtstreeks uit de database gekozen worden en niet via de wizard van de CAM. De waarden van de afmetingen komen terecht in de CAM zoals in figuren 2-19 en 2-20 p. 43. Op figuur 2-28 is de variabele ‘SOORT’ te zien die een bepaalde code bevat voor het soort frees. Deze variabele heb ik zelf aangemaakt door ze te definiëren in ‘dbc_tool_ascii.def’ en ze te programmeren in ‘dbc_tool_ascii.tcl’. De variabele wordt ook getoond in het
Thomas Sarre KHBO 2004-2005
49
Picanol NV
selectievenster in de CAM en wordt daar gebruikt als zoekparameter. Dit alles bewijst dat de gereedschapsdatabase uitermate geschikt is voor customisatie. Als de gebruiker een gereedschap uit de database wil gebruiken in de CAM wordt gekozen voor ‘Insert → Tool…’ of wordt geklikt op de knop ‘Create Tool’. Het venster van figuur 2-29 verschijnt en er wordt gekozen voor ‘Retrieve Tool’ in het vak met de subtypes.
Figuur 2-29: Retrieve Tool
Door op ‘OK’ te klikken verschijnt het ‘Library Class Selection’ venster (zie figuur 2-30 p. 51) waarin de klassen en subklassen uit het databasebestand staan. De zelfgemaakte Picanol-klasse komt hier tevoorschijn naast de andere klassen uit de database. Ook de subklassen ‘Frezen’ en ‘Gatbewerkingen’ staan gerangschikt onder de Picanol hoofdklasse. Er kan een klasse of subklasse geselecteerd worden en vervolgens op ‘OK’ geklikt worden. Door een subklasse te kiezen wordt het aantal te doorzoeken gereedschappen natuurlijk drastisch verminderd en verloopt de gereedschapsselectie meer gericht. Na de selectie van de subklasse frezen van Picanol verschijnt het venster van figuur 2-31 p. 51. In dit venster kunnen meerdere zoekcriteria opgegeven worden om snel het gewenste gereedschap te vinden. Merk op dat de zelfgemaakte variabele ‘SOORT’ hier gebruikt kan worden als zoekparameter. De gebruiker kan het aantal zoekparameters bepalen in de subklassen in het bestand ‘dbc_tool_ascii.def’ (zie bijlage VI p. 93). Vul bijvoorbeeld ‘VGF’ in bij de zoekparameter ‘Soort’. Door op de knop ‘Count Matches’ te drukken worden alle frezen van de soort ‘VGF’ of vingerfrezen uit de database gefilterd (zie figuur 2-28 p. 49). Op de figuur is te zien dat er 4 vingerfrezen in de database gevonden zijn en door op ‘OK’ te klikken verschijnt het venster met de zoekresultaten van deze 4 frezen. In dit venster kan informatie uit de variabelen van de database getoond worden, bijvoorbeeld de diameter van de frees of het soort coating van de snijplaatjes. Via de knop ‘Display’ kan een driedimensionaal model van het gereedschap bekeken worden voordat een definitieve keuze gemaakt wordt. Het gereedschap komt dan terecht in het Machine Tool View en kan gebruikt worden in de CAM en in ISV. Thomas Sarre KHBO 2004-2005
50
Picanol NV
Figuur 2-30: Klasse-selectie
Figuur 2-31: Zoekcriteria
Het onderzoek naar de mogelijkheden van de gereedschapsdatabase door enkele zelfgemaakte gereedschappen te integreren heeft uitgewezen dat de database goed aan te passen is alsook de dialoogvensters bij de selectie van databasegereedschappen in de CAM. In realiteit zou het onbegonnen werk zijn om alle gereedschappen van Picanol te tekenen en die in de database te plaatsen, maar door dit te doen worden de werking en de mogelijkheden van het Unigraphics-systeem duidelijk. Deze kennis helpt ook veel bij de studie van ISV op andere vlakken.
2.4 Machine Tool Driver 2.4.1
Algemeen
De Machine Tool Driver of MTD is een heel belangrijk onderdeel van ISV en omvat de klassieke MOM-postprocessor en een ‘Virtual NC Controller’ of ‘VNC’. Deze VNC roept Simulation and Verification commando’s (S&V commando’s) aan die het grafische model van de machine op het beeldscherm aansturen en brengt informatie naar buiten tijdens de simulatie. Terwijl de postprocessor enkel de NC-code genereert, zorgt de VNC er voor dat
Thomas Sarre KHBO 2004-2005
51
Picanol NV
alles wat te maken heeft met de simulatie in goede banen geleid wordt. Kortom de MTD zorgt ervoor dat de gereedschapsbanen uit de CAM omgezet worden in een NCprogramma en controleert de werking en de terugkoppeling van de simulatie. Het eigenlijke doel van de Machine Tool Driver kan omschreven worden in een drietal punten. Ten eerste geeft de MTD een feedback van de exacte gereedschapspositie en van de relatie tussen gereedschap en werkstuk tijdens het genereren van de gereedschapsbanen. Een tweede doelstelling is het spelen van een sleutelrol in het simuleren van het verspanend proces en van de machine zelf. Omdat CNC-machines alsmaar ingewikkelder worden is het simuleren van het productieproces op deze machines van groot belang om er maximaal rendement uit te halen. Een derde doel is het grafisch weergeven van de events van de postprocessor. Lineaire bewegingen, rotaties, cycli, enz … worden grafisch voorgesteld door het Machine Tool Model aan te sturen met S&V commando’s. De MTD hanteert verschillende soorten coördinatenstelsels om NC-code te genereren en de juiste S&V commando’s uit te sturen. Het MCS of ‘Manufacturing Coordinate System’ is een coördinatenstelsel waar tegenover één of meerdere gereedschapsbanen gedefinieerd worden. Meestal bestaan er meerdere MCS’en op een werkstuk die de verschillende bewerkingsvlakken aangeven. Alle gereedschapsbanen die in een bepaald vlak moeten staan worden dan tegenover het MCS van dat vlak geprogrammeerd. De MCS’en kunnen beschouwd worden als verschillende nulpunten voor de NC-code waartussen geschakeld wordt als er veranderd wordt van bewerkingsvlak (G54 e.v.). Om een simulatie aan te sturen is het nodig de coördinaten van de gereedschapsbanen met de verschillende MCS’en te transformeren naar een gemeenschappelijk werkstuknulpunt, het ZCS of het ‘Zero Coordinate System’. Van daaruit kan dan de ‘offset’ berekend worden tot het MTCS of ‘Machine Tool Coordinate System’ dat de positie van de machinekop weergeeft. Als deze ‘offset’ bekend is, weet de MTD waar werkstuk en machine zich bevinden en kunnen de juiste S&V commando’s gestuurd worden. Als bovendien rekening wordt gehouden met de lengte van het gereedschap kan de offset tussen ZCS en het geprogrammeerde punt van het gereedschap berekend worden. Figuur 2-32 op de volgende pagina illustreert de offset tussen ZCS en MTCS (rode pijl). MCS’en staan niet op deze figuur, maar kunnen bijvoorbeeld op de hoekpunten van het werkstuk staan om de verschillende zijvlakken van het blokvormige werkstuk aan te geven.
Thomas Sarre KHBO 2004-2005
52
Picanol NV
Machine Tool Coordinate System MTCS
Zero Coordinate System ZCS
Figuur 2-32: Coördinatenstelsels gebruikt door MTD
Zoals eerder al vermeld, roept de VNC S&V commando’s aan om op die manier de instructies voor de simulatie door te geven aan de sturing van ISV in Unigraphics. S&V commando’s zijn als het ware bevelen voor de sturing van de simulatie. Voor elke gebeurtenis die het machinemodel verandert bestaat er een S&V commando, bijvoorbeeld: SIM_move_linear_axis laat één van de lineaire assen van het machinemodel bewegen over een bepaalde afstand. Er zijn twee soorten S&V commando’s: basis commando’s en hogere commando’s. De basis commando’s zijn geschreven in de programmeertaal C en zijn onder te verdelen in een zestal categorieën gaande van commando’s voor bewegingen tot commando’s die informatie uit het machinemodel halen en doorgeven aan de MTD. De hogere commando’s echter zijn geschreven in de programmeertaal TCL en combineren meerdere basis commando’s om meer complexe bevelen uit te voeren zoals circulaire interpolatie bij cirkelbewegingen. In bijlage VII p. 94 staat een lijst met alle basis- en hogere S&V commando’s. Figuur 2-33 hieronder toont schematisch wat de VNC eigenlijk doet: gebeurtenissen (events) die van de postprocessor komen worden verwerkt in een Thomas Sarre KHBO 2004-2005
53
Picanol NV
S&V commando volgens een drietal stappen. Het resultaat hiervan is een S&V event dat begrepen wordt door de sturing van ISV binnen Unigraphics.
Figuur 2-33: Werking VNC
De manier waarop de VNC de S&V commando’s aanroept kan op drie manieren gebeuren en wordt bepaald door de MTD: de SIM-event-mode, de Direct-mode en de Plugin-mode. Het basisprincipe blijft echter altijd hetzelfde: de postprocessor zorgt voor de NC-code terwijl de VNC de S&V commando’s aanroept. De Plugin-mode is een geval apart omdat deze geen postprocessor nodig heeft en rechtstreeks NC-code kan interpreteren (zie hoofdstuk 3). Figuur 2-34 toont een overzicht van de structuur van de MTD waarop ook de drie ‘modes’ te zien zijn.
Figuur 2-34: Structuur MTD
Thomas Sarre KHBO 2004-2005
54
Picanol NV
2.4.2
De drie ‘modes’ van de MTD
De SIM-event mode is een eerste manier waarop de VNC kan werken. In het begin van het postprocessor-bestand wordt verwezen naar een TCL-bestand dat de VNC bevat, de VNC wordt ‘gesourced’ vanuit de postprocessor. Als de simulatie eenmaal loopt, werken de postprocessor en de VNC simultaan naast elkaar (niet na elkaar zoals zou gedacht worden uit figuur 2-34 p. 54). Elke lijn NC-code die gegenereerd wordt (post-event) veroorzaakt ook een SIM-event dat dan verwerkt wordt door een S&V commando tot een S&V-event (zie figuren 2-33 en 2-34 p. 54). De SIM-event mode is de gemakkelijkste manier om een MTD te maken voor een simulatie omdat de gewone postprocessor behouden blijft en enkel een verwijzing moet gemaakt worden naar een VNC-bestand dat aangemaakt kan worden met Postbuilder. Daarom is deze manier van werken ook erg geschikt voor demonstraties en opleiding. Een belangrijk nadeel echter van de SIM-event mode is dat er tweemaal zoveel ‘events’ zijn: de normale postprocessor events en dan nog eens evenveel SIM-events die bovendien nog eens omgezet moeten worden naar S&V-events. Daardoor wordt het computersysteem waarop ISV gebruikt wordt zwaarder belast en is het mogelijk dat de gegenereerde NC-code niet synchroon verloopt met de S&V-events. Figuur 2-35 toont de onderlinge verbanden tussen de verschillende bestanden die gebruikt worden bij de SIM-event-mode. Het databasebestand verwijst naar de bestanden van de postprocessor zodat deze gebruikt kunnen worden in de CAM; meer daarover in § 2.4.3. CAM
databasebestand
post.tcl source
post.def Postprocessor
vnc.tcl Machine Tool Driver Figuur 2-35: bestanden SIM-event mode
Een andere manier waarop de VNC kan werken is de Direct-mode. In tegenstelling tot de SIM-event-mode is hier de VNC nauwer verbonden met de postprocessor waardoor er geen SIM-events meer nodig zijn. De S&V commando’s zijn deel van de postprocessor, maar staan toch nog in een apart VNC-bestand dat op één of andere manier ‘gesourced’ wordt (en dit op een andere manier dan bij de SIM-event-mode!). Telkens er NC-code Thomas Sarre KHBO 2004-2005
55
Picanol NV
gegenereerd wordt, staat er direct een S&V commando klaar zonder tussenkomst van een SIM-event (zie figuur 2-34 p. 54). Dit zorgt voor een nauwkeurige en snelle simulatie, maar is moeilijker te implementeren dan de SIM-event mode. De Direct-mode werd niet grondig bestudeerd omwille van de moeilijke implementatie en omdat hetzelfde resultaat in de simulaties bekomen kan worden met de gemakkelijker te implementeren SIM-eventmode. Figuur 2-36 toont de onderlinge verbanden tussen de verschillende bestanden die gebruikt worden bij de Direct-mode. Het databasebestand verwijst naar de bestanden van de postprocessor zodat deze gebruikt kunnen worden in de CAM; meer daarover in § 2.4.3. CAM
post.tcl + vnc.tcl
databasebestand
post.def
Postprocessor Machine Tool Driver Figuur 2-36: bestanden Direct-mode
Een derde en laatste manier waarop de VNC gebruikt kan worden is in Plugin-mode. Hier wordt een extern programma gebruikt (een plugin) om NC-code te interpreteren en vervolgens het machine tool model in ISV aan te sturen. Dit gebeurt net zoals in de twee andere ‘modes’ met de S&V commando’s, maar die nu aangeroepen worden vanuit het externe programma. Dit externe programma wordt ook de ‘plugin black box’ genoemd (zie figuur 2-34 p. 54) en is een TCL-programma of een DLL. Een DLL is een programma dat draait binnen de omgeving van een ander programma. De DLL plugin gebruikt een bestaande soort VNC afkomstig van dCade die deze gebruikte in hun eigen simulatiepakket Unisim. dCade werd echter overgenomen door UGS waardoor die VNC nu in ISV terechtgekomen is onder de vorm van een DLL (deze werd niet bestudeerd). In het andere geval is de plugin black box zuivere TCL-programmatuur die in staat is om NCcode te interpreteren en de overeenkomstige S&V commando’s aan te roepen. Bij de SIMevent-mode en de Direct-mode werken postprocessor en VNC samen om tegelijk NC-code te maken en te simuleren, maar die simulatie is eigenlijk gebaseerd op de gereedschapsbanen uit de CAM die nog niet door de postprocessor verwerkt werden. In de realiteit werkt een machine met NC-code en niet met gereedschapsbanen dus is het mogelijk dat een simulatie op de computer goed verloopt maar dat het nadien fout gaat op Thomas Sarre KHBO 2004-2005
56
Picanol NV
de echte machine. De plugin-mode werkt anders en interpreteert de NC-code die uit de postprocessor komt en stuurt dan pas de simulatie met S&V commando’s. De plugin black box bootst eigenlijk de echte machine na en zorgt daardoor voor een simulatie die dicht aanleunt bij de realiteit. Dit alles staat schematisch voorgesteld op figuren 2-34 p. 54 en figuur 2-37. Nadelen van de plugin zijn dat de zogenaamde black boxes nog niet standaard zijn, de ontwikkelingskosten hoog zijn en dat kennis van TCL-programmeren nodig is. MTD: Plugin-mode
MTD: SIM-event of direct-mode CAM CNC
MTD
CAM SIM
POST MTD
CNC
SIM
CNC
PLUGIN
SIM
Figuur 2-37: Plugin-mode vs. SIM-event- en direct-mode
2.4.3
Integratie in de Unigraphics-database
Uit de vorige paragraaf blijkt dat een Machine Tool Driver uit een postprocessor, een VNC en - in het geval van de Plugin-mode - een externe black box bestaat. Net zoals dit het geval was bij het Machine Tool Model en de gereedschappen moet de MTD in de database van UG geplaatst worden zodat hij gebruikt kan worden om simulaties aan te sturen. De TCL- en DEF-bestanden van de postprocessoren en de VNC-bestanden worden in de postprocessor-library geplaatst (zie figuur 2-38). Omdat de SIM-event-mode en de Directmode zelf NC-code genereren, worden deze in dezelfde map geplaatst als de postprocessoren die niet gebruikt worden in een MTD, want het zijn immers diezelfde postprocessoren. Het verschil is dat er een VNC aan vast hangt om te simuleren en die het postprocessen niet hindert.
Figuur 2-38: postprocessor-library Thomas Sarre KHBO 2004-2005
57
Picanol NV
Ook nu weer wordt er gewerkt met databasebestanden die verwijzingen naar bestanden bevatten zodat deze opgeroepen kunnen worden vanuit de CAM. De verschillende MTD’s krijgen elk een databasebestand met bij voorkeur de naam van het machinemodel waarvoor ze dienen. Figuur 2-39 toont het databasebestand ‘Willemin_W418.dat’ dat verwijst naar de SIM-event MTD voor de Willemin W418.
Figuur 2-39: Willemin W418 databasebestand
Het bestand bevat slechts één regel met de naam van de MTD en vervolgens de namen van het TCL- en DEF-bestand. ‘UGII_CAM_POST_DIR’ is een systeemvariabele van Unigraphics die de locatie van de postprocessor-map aangeeft. Merk op dat ook in deze map het ‘template_post.dat’ bestand staat die verwijzingen naar alle postprocessoren bevat (zie § 1.2 p. 18). In dit bestand staat ook dezelfde regel als in figuur 2-39 omdat de postprocessoren van de MTD’s eigenlijk ook de gewone posts zijn. Alle posts die in ‘template_post.dat’ staan, verschijnen in het venster van figuur 1-7 p. 17 als de gebruiker gereedschapsbanen wil postprocessen. Via de knop ‘Browse’ kan er altijd manueel een andere postprocessor gekozen worden. De databasebestanden met de MTD’s worden gekoppeld aan het overeenkomstige Machine Tool Model (zie § 2.2.3 p. 39) zodat bij een simulatie niet eerst de MTD gekozen moet worden, maar er direct kan gestart worden. Als een MTD in Plugin-mode gebruikt wil worden, moet het databasebestand niet verwijzen naar het TCL-bestand van de postprocessor (wel nog naar het DEF-bestand!), maar naar een ander TCL-bestand. Dit bestand kan een naam hebben zoals ‘mtd_ Willemin_W418_plugin.tcl’ en figuur 2-40 toont dan hoe het databasebestand van de MTD voor de Willemin er uit ziet.
Figuur 2-40: Willemin W418 databasebestand voor de Plugin-mode
Dit nieuwe TCL-bestand is de ‘Plugin-MTD’ (zie bijlage VIII p. 126) en is eigenlijk een interface tussen ISV en het externe programma of black box dat de NC-code kan interpreteren en de juiste S&V bevelen uitstuurt. Deze black box kan zich in gebundelde
Thomas Sarre KHBO 2004-2005
58
Picanol NV
vorm (hij bestaat uit meerdere TCL-bestanden, zie hoofdstuk 3) bevinden in de postprocessor-map, maar staat meestal op de locatie die in figuur 2-41 getoond wordt.
Figuur 2-41: locatie plugin black box
Daarom moet er eerst en vooral een variabele ‘PLUGIN_TCL_LIBRARY’ gemaakt worden in het Plugin-MTD-bestand (bijlage VIII p. 126!) die deze locatie aangeeft. Vervolgens moet beslist worden of de Plugin-MTD in ‘DLL’ of ‘DIRECT’ mode gebruikt zal worden (zie § 2.4.2 p. 56). Daarvoor wordt de variabele ‘PLUGIN_MODE’ gemaakt en ingevuld met ‘DLL’ of ‘DIRECT’. In een volgende stap worden een aantal variabelen ingesteld die betrekking hebben tot de gereedschappen, circulaire interpolatie, namen van K-componenten en junctions uit het Machine Tool Model, de gebruikte eenheden (millimeters of inches), enz. Deze variabelen dienen om de werking van de black box in te stellen en om noodzakelijke informatie door te geven voor de berekeningen. Tot slot bevat de Plugin-MTD drie belangrijke event-handlers voor de communicatie tussen UG/ISV en de plugin black box, namelijk: ‘MOM_SIM_ initialize_mtd’, ‘MOM_SIM_exit_mtd’ en ‘MOM_SIM_execute_nc_command’. Figuur 2-42 toont hiervan een overzicht.
Figuur 2-42: Overzicht van de drie event-handlers in de Plugin-MTD Thomas Sarre KHBO 2004-2005
59
Picanol NV
‘MOM_SIM_initialize_mtd’ wordt aangeroepen voordat de simulatie start, initialiseert de MTD en zet hem in Plugin-mode. Telkens wanneer een nieuwe lijn NC-code gelezen wordt, wordt ‘MOM_SIM_execute_nc_command aangeroepen die de NC-lijn doorstuurt naar de Plugin black box. Deze ontrafelt de code, interpreteert ze en roept de juiste S&V commando’s aan die dan omgezet worden naar S&V events om de simulatie aan te sturen. Als de simulatie ten einde loopt, wordt ‘MOM_ SIM_exit_mtd’ aangeroepen die de Plugin-mode correct afsluit en alle ingeladen data opruimt. In deze drie event-handlers wordt een onderscheid gemaakt tussen de ‘DLL’ en de ‘DIRECT’ mode en afhankelijk daarvan worden de juiste procedures aangeroepen. Hier wordt verder op ingegaan in hoofdstuk 3 bij de studie van de plugin black box. De ‘DLL’ werd niet bestudeerd omdat die niet werkte vanwege een aantal ontbrekende bestanden. Als laatste moet nog opgemerkt worden dat de Plugin-mode gecombineerd kan worden met de SIM-event- of Direct-mode. Dit kan door in het Plugin-MTD-bestand het TCL-bestand van de SIMevent- of Direct-mode te ‘sourcen’. Het resultaat is dat het databasebestand (zoals in figuur 2-40 p. 58) verwijst naar het DEF-bestand en het Plugin-MTD-bestand dat op zijn beurt de Plugin-mode of één van de twee andere modes kan activeren. Dit is heel handig tijdens het programmeren in de CAM. Met bijvoorbeeld de SIM-event-mode wordt een gereedschapsbaan tegelijkertijd gepost en gesimuleerd en kunnen al mogelijke problemen onderschept worden. Nadien kan met dezelfde MTD en zonder een nieuwe simulatie te moeten instellen de gegenereerde NC-code gesimuleerd worden via de Plugin-mode. De Plugin geeft een realistische simulatie omdat die geen gebruik maakt van de postprocessor waardoor de werking van de postprocessor gecontroleerd kan worden! Figuur 2-43 illustreert de combinatie van Plugin-mode en SIM-event- of Direct-mode.
SIM-event / Direct
Werkstuk
DEF-bestand
SIMULATIE
Machine Tool Model
Databasebestand
VNC TCL-bestand
Plugin-MTD Tools Plugin-mode Black box Figuur 2-43: Combinatie Plugin-mode en SIM-event- of Direct-mode
Thomas Sarre KHBO 2004-2005
60
Picanol NV
2.5 Simuleren met ISV In de vorige paragrafen van dit hoofdstuk werd beschreven hoe alle onderdelen die nodig zijn om een simulatie te laten lopen, gemaakt kunnen worden. Eenmaal het werkstuk geprogrammeerd is in de CAM kan de productie van dit werkstuk gesimuleerd en geverifieerd worden met ISV.
2.5.1
Voorafgaande instellingen
Als alle gereedschapsbanen nodig om het werkstuk te produceren, geprogrammeerd zijn met de juiste gereedschappen - uit de database of gemaakt in de CAM – wordt in de ‘Operation Navigator’
gekozen voor het ‘Machine Tool View’
. In dit venster staan
de gereedschapsbanen gerangschikt per gereedschap onder de ‘Generic Machine’. De generic machine stelt een algemene machine voor, maar heeft geen Machine Tool Model met een Machine Tool Driver. Het is als het ware een leeg object van waaruit standaard vertrokken wordt bij elke nieuwe CAM-sessie. Merk op dat als er nu gepostprocessed wordt, de keuze bestaat uit de lijst posts uit het ‘template_post.dat’ bestand aangezien er nog geen MTD is met een specifieke postprocessor. Door te dubbelklikken op de ‘Generic Machine’ verschijnt het venster van figuur 2-44. Met de knop ‘Replace Machine’ kan een andere machine gekozen worden uit de machinedatabase zoals in figuur 2-17 op p. 41. In de zelfgemaakte klasse ‘PICANOL’ zit enkel de Willemin W418 en in de andere klassen is er keuze uit de voorbeeldmachines die standaard meegeleverd worden met UG. De keuze van de Willemin wordt bevestigd via ‘OK’ en het venster van figuur 2-45 verschijnt.
Figuur 2-44: De machine inladen
Figuur 2-45: machine-positionering
De mogelijkheid bestaat hier om het werkstuk, de opspanning en het ruwe stuk - de gehele setup - automatisch te positioneren op de machine of de machine naar de setup te brengen. Dit is enkel mogelijk als er een ‘SETUP’ K-component met een junction ‘PART_
Thomas Sarre KHBO 2004-2005
61
Picanol NV
MOUNT_JCT’ voorzien is in het kinematics-model van het machinemodel (zie figuur 2-11 p. 37). Deze junction wordt dan op het werkstuknulpunt of het nulpunt van de assembly van de volledige setup gelegd. In het geval van de Willemin W418 ligt de junction ‘PART_MOUNT_JCT’ in het center van de tafel (zie figuur 2-8 p. 35) en het nulpunt van de setup onderaan de ronde opspanmal in het center. Dit zorgt ervoor dat alles direct en correct gepositioneerd wordt door één van de twee laatste keuzes te gebruiken uit figuur 245 op de vorige pagina. Door ‘No’ te kiezen kan alles manueel gepositioneerd worden. Figuur 2-46 toont de opspanmal met ruwe stukken en het werkstuk van de Willemin W418.
Figuur 2-46: Willemin W418 setup
Figuur 2-47: Edit K-component
Het kinematics-model van de Willemin moet nu nog aangevuld worden met de verwijzingen naar de geometrische objecten van de setup uit figuur 2-46. Vandaar dat er onder de K-component ‘SETUP’ drie andere K-componenten staan: ‘PART’, ‘BLANK’ en ‘FIXTURE’ (zie figuur 2-11 p. 37). Deze K-componenten worden respectievelijk gevuld met verwijzingen naar het werkstuk, het ruwe stuk en de opspanning. In de rechter werkbalk wordt gekozen voor de ‘Machine Tool Setup Configurator’
zodat het
kinematics-model van de machine tevoorschijn komt. Door rechts te klikken op de betreffende K-component en te kiezen voor ‘Edit → K-Component’ kan in het venster van figuur 2-47 via de knop ‘Add’ een geometrisch object geselecteerd worden en zodoende aan die K-component gekoppeld worden. Als een onderdeel van de setup zelf uit een assembly bestaat, moet deze volledig geselecteerd worden zodat alle onderdelen van die assembly verschijnen in het ‘Geometry Entities’ vakje van figuur 2-47. Dit is bijvoorbeeld het geval bij de opspanmal voor de Willemin W418. Het is belangrijk dat alle elementen Thomas Sarre KHBO 2004-2005
62
Picanol NV
van de setup verdeeld worden over de drie K-componenten zodat bij de simulatie deze onderdelen meebewegen met de machine zoals in de werkelijkheid. De setup moet onderdeel worden van de kinematica van de machine!
2.5.2
Simuleren
Na de voorafgaande instellingen van § 2.5.1 staat alles klaar om een simulatie te beginnen. Als de Machine Tool Driver van het machinemodel werkt volgens de SIM-event-mode of de Direct-mode, dan klikt de gebruiker rechts op de gereedschapsbaan (banen) die gesimuleerd en geverifieerd moeten worden en wordt er gekozen voor ‘Toolpath → Simulate…’. Als de MTD werkt volgens de Plugin-mode dan wordt via de hoofdwerkbalk bovenaan gekozen voor ‘Tools → Simulate Machine Code File…’ en wordt het bestand opgeroepen dat de NC-code bevat van de te simuleren gereedschapsbaan (banen) of van het volledige werkstuk. In beide gevallen verschijnt het ‘Simulation Control Panel’ van figuur 2-48.
Figuur 2-48: Simulation Control Panel
Thomas Sarre KHBO 2004-2005
Figuur 2-49: Collision checker
63
Picanol NV
Dit venster is als het ware het controlecentrum of bedieningspaneel voor de ISVsimulaties. Het bovenste deel van het venster toont informatie over welk gereedschap actief is, de rotatie- en voedingssnelheden, de koeling, de verstreken tijd en de actuele coördinaten van de top van het gereedschap of de actuele waarden van de machine-assen. Daaronder staat een vak waarin de NC-code voorbijkomt die gegenereerd en/of gesimuleerd wordt. Het vak daaronder is het ‘Message Window’ en toont allerlei informatie over de gebruikte MTD alsook fouten en waarschuwingen die voorkomen tijdens het simuleren. Onderaan ten slotte kan ingesteld worden wat er uitgevoerd wordt per stap van de simulatie: een blok NC-code, een beweging of een programma-event. De simulatiesnelheid kan aangepast worden door de schuifbalk te verplaatsen. Als laatste staan helemaal onderaan de knoppen om de simulatie te starten, terug te keren of vooruit te springen. Via de knop ‘Options’ kunnen nog enkele opties voor de display ingesteld worden of kan de collision checker (zie figuur 2-49 vorige pagina) ingesteld worden. Via de selection steps worden telkens twee componenten uit de simulatie die niet mogen botsen tegen elkaar gedefinieerd, bijvoorbeeld de opspanning en het gereedschap. Collision clearance geeft aan hoe dicht twee componenten tot elkaar mogen naderen vooraleer er een botsing gedetecteerd wordt.
2.6 Besluit Dit hoofdstuk handelde over de onderdelen die nodig zijn om ISV van Unigraphics NX 2.0 te kunnen gebruiken. Uit de studie van de architectuur van ISV blijkt duidelijk wat er nodig is om een simulatie te kunnen opstarten. Er is een grafisch model van de CNCmachine nodig dat de kinematica van de machine bevat en ook uitgerust is met een geschikte ‘driver’ of sturing. Een ander niet onbelangrijk onderdeel voor een simulatie zijn de gereedschappen die rechtstreeks uit de CAM kunnen gebruikt worden of waarvan een grafisch model gemaakt kan worden. Bovendien moeten deze onderdelen in de database van Unigraphics geplaatst worden zodat ze vanuit de CAM kunnen opgeroepen worden. De uitleg en beschrijving over voorgaande onderdelen is het resultaat van de studie van voorbeeldmachines die in UG zitten, van zelfstudie, van bijkomende informatie die ik van UGS kreeg en van veel test- en zoekwerk dat verricht werd door de Willemin W418 van Picanol te integreren in ISV. Van deze machine werden met succes een grafisch model met kinematica gemaakt alsook enkele Picanol-gereedschappen. Er werd geprobeerd om een
Thomas Sarre KHBO 2004-2005
64
Picanol NV
correcte SIM-event- en Direct-driver te maken voor de Willemin, maar daarvoor is er een postprocessor en een VNC nodig die gemaakt wordt met Postbuilder. De voorbeeldmachines hebben allemaal posts uit Postbuilder en de simulaties in SIM-eventmode en Direct-mode lopen dan ook probleemloos. Voor de Willemin beschikte ik enkel over een oude handgeschreven postprocessor die ik bovendien niet kon openen en aanpassen met Postbuilder! Daarop probeerde ik een volledig nieuwe postprocessor en tegelijk ook een VNC te maken met Postbuilder. Op zich bleek dit geen probleem en ik kon het model van de Willemin laten bewegen in een simulatie, maar de spindel van de machine bewoog op een totaal verkeerde plaats. Dit was natuurlijk het gevolg van die nieuwe postprocessor die niet correct was. Na talrijke pogingen bleek dat het niet evident is om een post voor een 5-assig bewerkingscenter zoals de Willemin te maken. Omdat het aanvankelijk niet de bedoeling was dat ik een nieuwe postprocessor maakte voor deze machine, werd besloten dit achterwege te laten en verplaatste ik mijn aandacht naar de Plugin-mode. Deze werkt niet met een postprocessor, maar interpreteert rechtstreeks de NC-code zodat een realistische simulatie bekomen wordt. In het volgende hoofdstuk wordt de Plugin black box en zijn mogelijkheden bestudeerd.
Thomas Sarre KHBO 2004-2005
65
Picanol NV
3
De Plugin black box 3.1 Vooraf Nog voor het daadwerkelijk implementeren van een Machine Tool Driver die werkt met de Plugin zijn er al twee voordelen van te zien. Ten eerste is er geen postprocessor nodig om een simulatie te kunnen uitvoeren omdat de plugin een extern programma is dat rechtstreeks NC-code interpreteert en deze omzet naar de juiste S&V commando’s. Ten tweede kan de Plugin niet alleen gezien worden als een controle van de geprogrammeerde gereedschapsbanen, maar ook van de postprocessor zelf waarmee deze gereedschapsbanen omgezet werden naar NC-code. Er kunnen dus ‘Close To Reality’ simulaties uitgevoerd worden
omdat
een
echte
CNC-machine ook
NC-code
interpreteert
en
geen
gereedschapsbanen uit de CAM. Dit laatste is wel het geval bij de simulaties met de SIMevent-mode en de Direct-mode waarbij de simulatie heel dicht aanleunt bij de CAM en de postprocessor gebruikt wordt om tegelijkertijd NC-code te genereren en S&V commando’s uit te sturen. Het is dus belangrijk in te zien dat de Plugin een volledig andere manier van simuleren is! Standaard is er in Unigraphics NX 2.0 weinig te vinden over de Plugin, enkel het bestaan ervan wordt vermeld. De voorbeeldmachines werken niet met deze soort MTD en een Plugin black box is niet standaard geïnstalleerd bij UG. Het is maar toen ik een reeks nieuwe machines kreeg van UGS dat ik de Plugin-mode echt ontdekte! Er waren enkele machines bij die werkten met de ‘Generic-Plugin’. Dit is een soort algemene Plugin black box die afgeleid werd van het vroegere simulatiepakket ‘Unisim’ afkomstig van het overgenomen dCade. Deze black box kan volgens de documentatie die erbij te vinden was tot vijf NC-assen aan en zou dus een simulatie met de Willemin W418 kunnen aansturen. Er werd besloten om verder te werken met de ‘Generic-Plugin’ omdat de werking van de twee andere MTD-modes duidelijk was en ze mits een correcte postprocessor en de juiste instellingen praktisch toepasbaar zijn. Bovendien was ik nu niet meer verplicht een nieuwe postprocessor te maken voor de Willemin W418. De vraag blijft echter of de ‘GenericPlugin’ over voldoende capaciteiten beschikt om het gedrag van echte CNC-machines volledig te kunnen nabootsen.
Thomas Sarre KHBO 2004-2005
66
Picanol NV
3.2 Structuur en werking van de Generic-Plugin In paragraaf 2.4.3 (p. 57 e.v.) werd uitgelegd hoe een MTD werkend volgens de Pluginmode kon gebouwd worden en dat deze vervolgens in de postprocessor-directory geplaatst werd (zie figuur 2-38 p. 57). Deze MTD verwees via de variabele ‘PLUGIN_ TCL_LIBRARY’ (zie ook bijlage VIII p. 126) naar de locatie van de black box. De generic-plugin bestaat uit verschillende TCL-bestanden die zich bevinden op de locatie van figuur 2-41 p. 59. Deze locatie is niet verplicht, de bestanden van de plugin kunnen om het even waar geplaatst worden zolang de variabele in de MTD maar de juiste directory aanwijst. Het is zelfs mogelijk om de TCL-bestanden te bundelen in één of meerdere bestanden en deze in de postprocessor-map te plaatsen. Figuur 3-1 toont een lijst met alle TCL-bestanden waaruit de generic-plugin black box is opgebouwd.
Figuur 3-1: TCL-bestanden van de Plugin black box
Deze bestanden bevatten in hoofdzaak ‘procedures’ die dienen om bepaalde bewerkingen of berekeningen uit te voeren. De naam ‘procedure’ wordt gebruikt om een blok TCLprogrammatuur aan te duiden dat iets uitvoert. Een ‘procedure’ kan aangeroepen worden vanuit bijvoorbeeld het hoofdprogramma of vanuit een andere procedure om iets uit te
Thomas Sarre KHBO 2004-2005
67
Picanol NV
voeren (bijvoorbeeld een berekening) met of zonder een aantal parameters. De TCLbestanden van de Plugin black box kunnen beschouwd worden als aparte modules of bouwstenen die gebruikt worden om NC-code te interpreteren. Zo zal het bestand ‘radius_cutter_compensation.tcl’ procedures bevatten die te maken hebben met de berekeningen voor radiuscompensatie en het bestand ‘vector.tcl’ procedures die o.a. matrixtransformaties berekenen om te kunnen simuleren tegenover verschillende machinenulpunten. In bijlage IX p. 130 staat een lijst met alle TCL-bestanden met een beschrijving waarvoor ze dienen. Per bestand wordt een lijst weergegeven met alle procedures die er in staan en een functiebeschrijving. Er is ook een lijst met alle ‘globale variabelen’ of hoofdvariabelen uit de black box. Tot slot is er nog een lijst te vinden met alle procedures uit alle bestanden van de Plugin. Figuur 3-2 op de volgende pagina toont in grote lijnen de werking van de Plugin black box. De input bestaat telkens uit één lijn NC-code. Het CNC-programma wordt dus lijn per lijn verwerkt door de Plugin. De regel NC-code wordt binnengehaald via de event-handler ‘MOM_SIM_execute_nc_command’ van de MTD (zie § 2.4.3 p. 57 en bijlage VIII p. 126) die de procedure ‘parse_ncline’ uit het bestand ‘execute_parser.tcl’ aanroept. Dit is de hoofdprocedure om NC-code te ‘scannen’ en de informatie die er in staat te rangschikken in variabelen; dit heet dan ‘parsen’. Ten eerste wordt de lijn NC-code gelezen of gescand via de ‘NCTK_scanner’. Deze laatste vergelijkt de tekens uit de NC-lijn met het ‘syntaxfile’ waarin gedefinieerd staat welke tekens en symbolen herkend worden door de Plugin en welke niet. Alle niet herkende tekens en symbolen worden genegeerd. Het syntax-file definieert ook op welke manier de informatie uit de NC-lijn gerangschikt en weggeschreven moet worden in variabelen waardoor de ‘Parser-Generator’ een correcte ‘NCTK_parser’ kan maken. Deze laatste haalt dan effectief de herkende gegevens uit de NC-lijn en rangschikt ze in variabelen volgens het soort NC-functie: G-codes, M-codes, enz. Vervolgens wordt de procedure ‘Execute_ncline’ aangeroepen vanuit ‘parse_ncline’. Dit is de hoofdprocedure die instaat voor de interpretatie en de uitvoering van de NC-code. Merk op dat op het ogenblik dat ‘Execute_ncline’ aangeroepen wordt de NC-functies al weggeschreven zijn door de ‘parser’ en dat ‘Execute_ncline’ de resterende numerieke waarden uit de NC-lijn in een lijst (Table) plaatst (let op de pijlen uit figuur 3-2 op de volgende pagina die de ‘dataflow’ voorstellen). De NC-code wordt dus gesplitst in de NCfuncties en de numerieke gegevens zoals de waarden van verplaatsingen of van voedingsnelheden. Ter verduidelijking is een fictieve lijn NC-code voorgesteld op figuur Thomas Sarre KHBO 2004-2005
68
Picanol NV
3-2. De numerieke gegevens worden verder doorgegeven aan de ‘NC-Controller’ terwijl ‘Execute_ncline’ bepaalt wat er met die waarden moet gebeuren door de overeenkomstige NC-functie te raadplegen. De ‘NC-Controller’ is niets meer dan nog meer procedures die uiteindelijk de juiste S&V commando’s uitsturen.
G41 G1 X5 Y10 M06
G41 G1
M06
5, 10
X, Y
Figuur 3-2: Principiële werking van de Plugin black box
Thomas Sarre KHBO 2004-2005
69
Picanol NV
Het voorgaande geeft een overzicht van de manier waarop regels NC-code verwerkt worden door de Plugin black box. Dit gebeurt door telkens de event-handler (is eigenlijk ook een procedure) ‘MOM_SIM_execute_nc_command’ uit de MTD aan te roepen. Er zijn echter nog twee andere event-handlers uit de MTD die in rechtstreeks verband staan met de Plugin black box (zie bijlage VIII p. 126). Ten eerste is er ‘MOM_SIM_exit_mtd’ die de plugin
en
de
MTD
afsluit
met
de
procedures
‘SIM_end_of_simulation’
en
‘SIM_mtd_reset’. Belangrijker is de tweede event-handler ‘MOM_SIM_initialize_mtd’ die enkele voorbereidende functies uitvoert door het bestand ‘addresses.tcl’ van de plugin te sourcen en de procedure ‘reset_cnc’ aan te roepen. Het bestand ‘addresses.tcl’ bevat het belangrijkste hoofdprogramma waarmee de Plugin geïnitialiseerd wordt. MOM_SIM_initialize_mtd
addresses.tcl
Implementatie variabelen Andere TCL – bestanden sourcen Analyse kinematics model
Om te beginnen worden alle variabelen die ingevuld werden in de MTD (zie § 2.4.3) geïmplementeerd om te gebruiken in de Plugin. Deze variabelen dienen om de werking van de black box in te stellen en bevatten informatie waarmee berekeningen uitgevoerd worden. Zo zijn er variabelen die gegevens over de gereedschappen bevatten en over de lengtecorrectie. Er zijn ook variabelen die de circulaire interpolatie op ‘absoluut’ of ‘incrementeel’ instellen of die de namen van junctions of K-componenten bevatten. In bijlage VIII p. 126 staat het MTD-bestand voor de Willemin W418 en kunnen deze variabelen teruggevonden worden. Naast het implementeren van deze variabelen worden in ‘addresses.tcl’ ook alle andere bestanden van de Plugin black box ‘gesourced’ zodat alle procedures bereikbaar zijn vanuit alle bestanden. Ten slotte wordt het kinematics-model Thomas Sarre KHBO 2004-2005
70
Picanol NV
van de machine voor de simulatie doorgelicht. De positie van de ZCS-junction wordt bepaald omdat dit coördinatenstelsel het werkstuknulpunt voor de simulatie is. Er wordt ook nagegaan welke NC-assen van de machine lineaire of rotatie-assen zijn alsook welke assen afhankelijk zijn van elkaar. Figuur 3-3 op de vorige pagina illustreert het voorgaande en toont ook dat na het sourcen van ‘addresses.tcl’ de procedure ‘reset_cnc’ aangeroepen wordt die ook in het bestand ‘addresses.tcl’ staat. Deze procedure ‘reset’ alle globale variabelen van de Plugin black box zodat er niks verkeerd loopt bij het begin van de simulatie. Vervolgens worden via de procedure ‘SetToolData’ de gegevens van de gereedschappen voor de simulatie ingeladen. Als deze gegevens niet in de MTD ingegeven worden (wat meestal het geval is) probeert de Plugin de informatie uit de CAM te halen. Als laatste wordt de procedure ‘NCTK_StartOfSimulation’ aangeroepen die de simulatie start via het S&V commando ‘SIM_start_of_simulation’. Niet alleen de event-handler ‘MOM_SIM_initialize_mtd’ voert een aantal voorbereidende functies uit, ook het symbool ‘%’ aan het begin van een NC-programma zorgt ervoor dat enkele initialisaties uitgevoerd worden. Dit symbool wordt gezien als de eerste regel NCcode en wordt verwerkt volgens de manier van figuur 3-2 p. 69. Via de ‘NCTK_parser’ komt het symbool terecht in ‘dfunction.tcl’ waar het enkele procedures aanroept zoals op figuur 3-4 te zien is. %
NCTK_parser
dfunction.tcl
calc_zcs_matrix
create_zcs_junction calc_offset
init_rtcp
addresses.tcl Figuur 3-4: Enkele initialisaties door het symbool “%”
De eerste en tweede procedure worden gebruikt als er geen ZCS-junction gedefinieerd werd in het kinematics-model van de machine. De ZCS-junction wordt dan afgeleid uit het WCS of ‘Work Coordinate System’ van het CAM-bestand door eerst de positie in matrixvorm te berekenen met ‘calc_zcs_matrix’ en nadien de junction te creëren met ‘create_zcs_ junction’. Enkel als de NC-code ‘incrementeel’ geprogrammeerd werd met een G91-code dan wordt met de procedure ‘calc_offset’ de afstand tussen de ZCS-junction Thomas Sarre KHBO 2004-2005
71
Picanol NV
en de junction ‘SPINDLE_ JCT’ die op de top van de spindel ligt, berekend. Dit is dus de afstand tussen het nulpunt van het werkstuk en het punt waar normaal het gereedschap in de spindel terecht komt (zie ook de pijl op figuur 2-32 p. 53). Op die manier weet de Plugin waar de kop van de machine zich bevindt tegenover het werkstuk en kunnen de juiste bewegingen gestuurd worden. Als laatste wordt de procedure ‘init_rtcp’ aangeroepen die transformatiematrices berekent voor de ‘offsets’ in de spindel van complexe machines. Dit is een heel complexe procedure en ze heeft ook iets te maken met de matrixberekeningen bij de rotaties van de machine-assen. De vier procedures uit figuur 3-4 op de vorige pagina bevinden zich allemaal in het bestand ‘addresses.tcl’. De werking van de Plugin black box werd nog gedetailleerder bestudeerd, maar het zou onbegonnen werk zijn om dat allemaal te beschrijven. Bovendien werd heel veel informatie over de werking gevonden door de Plugin te testen op een tweetal machines.
3.3 Het testen van de Generic-Plugin 3.3.1
Testmiddelen
Eenmaal de grote lijnen van de werking van de Plugin black box gekend zijn, kan deze getest worden in een simulatie. Aangezien het hier gaat om de ‘Generic-Plugin’ of de ‘algemene’ Plugin die bovendien tot vijf NC-assen moet aankunnen, kan dus om het even welke machine gebruikt worden om testwerk uit te voeren. Om het in het begin eenvoudig te houden werd er eerst getest op een simpele 3-assige freesmachine. Dit is één van de voorbeeldmachines uit Unigraphics met de naam ‘THREEAX_XY-TABLE_Z-HEAD_ VERT’ waaruit af te leiden is dat de opspantafel de X- en Y-beweging uitvoert en de spindel de Z-beweging. Figuur 3-5 op de volgende pagina toont het machinemodel van deze machine. Er werd een MTD gemaakt voor deze machine die werkt met de GenericPlugin in ‘DIRECT’. Met deze eenvoudige freesmachine kunnen al heel wat mogelijkheden van de Plugin getest worden: lineaire bewegingen, cirkels, boorcycli, enz. Het testen van rotaties is echter nog niet mogelijk en daarom werd de Willemin W418 klaargemaakt als testmachine. Uiteindelijk is het ook het doel om een correcte simulatie te kunnen uitvoeren met de Willemin, dus ligt het voor de hand om deze machine te kiezen als testmachine. Bovendien kan alles wat getest wordt op de 3-assige machine ook gedaan worden op de Willemin W418 (zie figuur 1-17 p. 27).
Thomas Sarre KHBO 2004-2005
72
Picanol NV
Figuur 3-5: 3-assige testmachine
Omdat de Plugin NC-code als input vraagt is het nodig om bestanden ter beschikking te hebben met de juiste NC-code van wat er getest moet worden. Daarom werden er met de hand enkele CNC-lijnen geprogrammeerd en door de Plugin geduwd. Een bestand met NC-code kan heel eenvoudig aangemaakt worden met om het even welke tekstverwerker of editor. Meestal wordt het bestand opgeslagen met een ‘.ptp’ of ‘.iso’ extensie, maar de naam van de extensie is eigenlijk niet van belang. Het bestand kan dan eenvoudig geselecteerd worden in de CAM via ‘Tools → Simulate Machine Code File …’ en het ‘Simulation Control Panel’ verschijnt onmiddellijk. Let wel dat de eerste regel NC-code altijd het symbool ‘%’ moet zijn omdat anders de Plugin niet zal werken (zie § 3.2 p. 71)! Om tijdens het testen te kunnen volgen wat er gebeurt in de TCL-bestanden van de Plugin werd gebruik gemaakt van de procedure ‘MOM_output_to_listing_device’. Na deze lijn code kan tussen aanhalingstekens een tekst en/of de inhoud van variabelen geschreven worden. Alles dat tussen de aanhalingstekens staat wordt naar buiten gebracht in Unigraphics via het ‘Listing-Window’. Dit is een apart venster dat meestal gebruikt wordt om informatie weer te geven in UG zoals het log-bestand, de resultaten van een uitgevoerde meting te tonen, enz. Door deze procedure op strategische plaatsen in de programmatuur van de Plugin black box te schrijven en bepaalde resultaten van berekeningen naar buiten te brengen, kan tijdens het simuleren precies gevolgd worden wat de Plugin doet. Er kan ook gewoon een eenvoudige boodschap geplaatst worden in een bepaalde procedure om te testen als die procedure doorlopen wordt of niet. De procedure ‘MOM_output_to_listing_device’
kan
gezien
worden
als
een
middel
om
herkenningsbakens te plaatsen in de uitgebreide TCL-programmatuur van de Plugin black box. Door op deze manier te werken, ontstaat bovendien een beter inzicht in de werking van de Plugin en daardoor kan dan weer uitgebreider getest worden. Er dient echter Thomas Sarre KHBO 2004-2005
73
Picanol NV
opgepast te worden met het aanbrengen van wijzigingen in de TCL-bestanden omdat die meestal beduidende gevolgen hebben op het gedrag van het machinemodel in de simulatie.
3.3.2
Lineaire- en rotatie-assen
Om te beginnen werd bestudeerd hoe de Plugin de NC-assen van een machine aanstuurt omdat dit toch een basisvereiste is voor een goede werking van een simulatie. Eerst werden de lineaire assen van de 3-assige machine en van de Willemin getest door deze assen over hun volledige bereik te laten bewegen. Dit kan eenvoudig geprogrammeerd worden door voor de X- , Y- en Z-as afzonderlijk de maximum waarden in te geven. Deze maximum waarden hangen af van machine tot machine en werden ook al ingesteld in het kinematicsmodel van de machine. Figuur 3-6 toont een paar NC-regels die geprogrammeerd werden voor de Willemin W418.
Figuur 3-6: Test lineaire assen Willemin W418
De lineaire assen worden aangestuurd met een G1-code en bewegen met een voeding van 200 mm/min. De assen kunnen echter ook in ijlgang (G0) gestuurd worden. De procedure uit de Plugin black box die de lineaire bewegingen uitstuurt heet ‘process_linear_motion’ en bevindt zich in het bestand ‘execute_parser.tcl’. Het is belangrijk om op te merken dat in het begin van deze procedure een controle wordt gedaan of er al dan niet een G53-code geprogrammeerd werd in het NC-programma. Zo nee, dan worden alle coördinaten geïnterpreteerd tegenover het werkstuknulpunt, de ZCS-junction. In het andere geval worden alle coördinaten berekend tegenover de top van de spindel waar het ‘Machine Tool Zero Coordinate System’ ligt, het MTCS-stelsel (zie ook figuur 2-32 p. 53). De G53-code stelt dus het machinenulpunt voor en dit is ook het enige nulpunt uit de NC-code dat herkend wordt door de Plugin! Vervolgens worden de resultaten van de berekeningen voor Thomas Sarre KHBO 2004-2005
74
Picanol NV
de verplaatsingen (uit vroegere procedures) opgehaald en worden een aantal variabelen aangepast met deze nieuwe waarden. Tot slot wordt het S&V commando ‘SIM_update’ aangeroepen waardoor de nieuwe waarden voor de posities van de NC-assen doorgevoerd worden en het machinemodel de bewegingen uitvoert. Figuur 3-7 illustreert in grote lijnen de werking van de procedure ‘process_linear_motion’.
ja
G53 ?
omrekenen naar MTCS
nee ZCS
resultaten berekeningen
variabelen aanpassen
SIM_update
process_linear_motion Figuur 3-7: procedure “process_linear_motion
Met het stukje code uit figuur 3-6 p. 74 beweegt de Willemin effectief zijn lineaire assen over hun volledig bereik. Dit is ook het geval bij de 3-assige testmachine. Het aansturen van meerdere lineaire assen tegelijk blijkt ook geen probleem voor de Plugin black box. Vervolgens werden de rotatie-assen van de Willemin getest met de Plugin door ze ook tot hun maximale waarden uit te sturen en enkele tussenliggende waarden.
Figuur 3-8: Test rotatie-assen Willemin W418
Thomas Sarre KHBO 2004-2005
75
Picanol NV
Figuur 3-8 hierboven toont het vervolg van het NC-programma uit figuur 3-6 p. 74 waarmee nu de rotatie-assen getest worden. De spindel roteert rond de B-as en kan maximaal tot een hoek van 110° verdraaien. In het NC-programma wordt de spindel ook naar de hoeken van 90° en 45° gestuurd en in de simulatie gebeurt dit ook effectief. Tijdens de rotatie rond de B-as echter bewegen ook de X- en Z-as! Het is alsof de lineaire assen in ijlgang naar een bepaalde positie gaan terwijl de spindel draait en dit zorgt voor een vreemde beweging. De spindel neemt wel de geprogrammeerde hoek aan, maar verplaatst zich ook naar een ander punt! De oorzaak van dit probleem werd na lang zoeken in de Plugin black box niet gevonden. De tafel van de Willemin roteert rond de C-as en heeft een bereik van -360° tot +360°. Zoals in figuur 3-8 op de vorige pagina te zien is, werden ook enkele tussenliggende hoeken getest. Deze rotaties werden zonder problemen uitgevoerd, maar het bleek dat er enkel maar beweging in de C-as komt als er ook een rotatie van 0° voor de B-as geprogrammeerd wordt. Dit is uiterst merkwaardig omdat in het geval van de B-as het niet nodig is de C-as te programmeren met 0°. De oorzaak van dit probleem werd niet gevonden. Het tegelijk aansturen van beide rotatie-assen bleek geen probleem uitgenomen dan het bovenstaande probleem met de B-as. Het is moeilijk om de problemen met de rotaties te achterhalen omdat de berekeningen voor deze assen complex in elkaar zitten in de Plugin black box. Er werd toch één en ander teruggevonden over berekeningen van rotaties en de grote lijnen worden voorgesteld in figuur 3-9. execute_ncline calc_rtcp correctiewaarden Berekening transformatiemat rix
execute_parser.tcl
vector.tcl CalculateRTCP met waarden rotatie-assen en lengte gereedschap rtcp.tcl InitTransformation InitInverseTransformation
transformation.tcl
Figuur 3-9: Berekening rotaties
Vanuit de procedure ‘Execute_ncline’ (zie figuur 3-2 p. 69) in het bestand ‘execute_parser.tcl’ wordt de procedure ‘calc_rtcp’ aangeroepen die eveneens in dit bestand terug te vinden is. Deze procedure berekent een transformatiematrix die het verband weergeeft tussen het gebruikte nulpunt en de actuele oriëntatie van de rotatieassen. In een voorbereidend deel van de berekening worden met de procedure Thomas Sarre KHBO 2004-2005
76
Picanol NV
‘CalculateRTCP’ uit het bestand ‘rtcp.tcl’ een aantal correctiewaarden bepaald die te maken hebben met de stand van de twee rotatie-assen en de lengte van het gereedschap (zie verder in § 3.3.4). Dit gebeurt met procedures voor allerlei matrix-bewerkingen die terug te vinden zijn in het bestand ‘vector.tcl’. Als deze correctiewaarden gekend zijn, wordt de transformatiematrix berekend met de procedures ‘InitTransformation’ en ‘InitInverseTransformation’ uit het bestand ‘transformation.tcl’.
3.3.3
Cirkelbewegingen
Cirkelbewegingen komen heel vaak voor in NC-programma’s en het ligt daarom voor de hand dat dit getest wordt met de Plugin black box. Zoals bij de lineaire bewegingen werd begonnen met het testen op de 3-assige machine. Enkele gewone cirkels werden geprogrammeerd in het XY-vlak (G17) dat evenwijdig is aan de tafel van de machine. Het bleek al vlug dat de Plugin hier geen problemen mee heeft en er werd een helix geprogrammeerd, wat ook lukte. Dezelfde testen werden vervolgens met de Willemin W418 uitgevoerd en daarvoor werd het programma van figuur 3-10 geschreven.
Figuur 3-10: Test cirkelbewegingen Willemin W418
Er moet geprogrammeerd worden door het eindpunt van de cirkelbeweging aan te geven met twee coördinaten te kiezen uit X, Y of Z en door het middelpunt van de cirkelbeweging te definiëren met twee waarden te kiezen uit I, J of K. De keuze van de coördinaten hangt af van het werkvlak. Er kunnen geen cirkels geprogrammeerd worden door de radius op te geven met het symbool ‘R’ omdat de Plugin black box dit niet begrijpt. Er moet verplicht gewerkt worden met de projecties van de vector (I, J, K) die wijst naar het middelpunt van de cirkel(boog). De NC-lijn ‘N10’ uit figuur 3-10 toont hoe een helix geprogrammeerd wordt voor de Plugin. De derde coördinaat geeft de hoogte van de helix aan terwijl de derde I, J of K waarde de spoed definieert. Als een I-, J- of Kwaarde nul is mag die in principe weggelaten worden. Als een X, Y of Z coördinaat nul is mag die normaal ook weggelaten worden, maar voor de Plugin mag dat niet! Tot slot werd Thomas Sarre KHBO 2004-2005
77
Picanol NV
nog geprobeerd om in het YZ-vlak (G19) enkele cirkels te testen, maar dit lukte niet. Waarschijnlijk is dit het gevolg van de problemen die opgedoken zijn bij het testen van de B-as. In de programmatuur van de Plugin black box staat er een procedure ‘circ_ip’ in het bestand ‘execute_parser.tcl’. Deze procedure wordt gebruikt om de circulaire interpolatie te berekenen en wordt aangeroepen vanuit de procedure ‘Execute_ncline’ (zie figuur 3-2 p. 69). ‘circ_ip’ is een heel complexe procedure en het zou veel te ver gaan om de werking hiervan te doorgronden. Er werd daarom besloten om de cirkelbewegingen niet meer verder te onderzoeken. Bovendien is het duidelijk dat de Plugin wel degelijk cirkels kan simuleren en zelfs een helix.
3.3.4
Gereedschapswissel en -lengtecorrectie
Een gereedschapswissel wordt geprogrammeerd met de M06-code gevolgd door ‘Txx’ waarbij ‘xx’ het gereedschapsnummer voorstelt uit de CAM. Voor een gereedschapswissel met de Plugin is het van geen belang of het gereedschap gemaakt werd in de CAM of uit de database komt, zolang het ‘toolnumber’ maar in orde is. Dit werd getest door enkele verschillende gereedschappen op te nemen in de spindel van de Willemin W418 tijdens een simulatie en dit bleek geen probleem te zijn voor de Plugin. Vervolgens werd nagegaan of de Plugin rekening houdt met de lengte van het gereedschap tijdens het simuleren, de zogenaamde ‘Toollength Correction’. Het is namelijk de bedoeling dat het controlepunt van het gereedschap (dit is meestal de top van het gereedschap) het punt voorstelt dat geprogrammeerd werd in de NC-code. Het is daarom nodig dat de Plugin op één of andere manier rekening houdt met de lengte van het gereedschap. Dit werd getest op de Willemin door tweemaal een beweging naar de locatie van de ZCS-junction of het werkstuknulpunt (dat in het center van de tafel ligt) te programmeren eerst zonder en dan met een gereedschap. De coördinaten van het werkstuknulpunt moeten in beide gevallen uiteraard identiek geprogrammeerd worden! Tijdens de uitvoering van dit programma beweegt eerst zonder gereedschap het center van de top van de spindel (MTCS!) naar de ZCS-positie en vervolgens beweegt met gereedschap het controlepunt van dat gereedschap naar de ZCS-positie. Figuur 3-11 op de volgende pagina illustreert dit met een zelfgemaakt gereedschap en bewijst dus dat de plugin rekening houdt met de lengte van het ‘tool’. Deze test werd uitgevoerd voor zowel gereedschappen uit de CAM als uit de database en telkens verliep dit correct.
Thomas Sarre KHBO 2004-2005
78
Picanol NV
1
werkstuknulpunt
2
werkstuknulpunt
Figuur 3-11: Test toollength-correction
De procedure ‘NCTK_ExecToolChange’ in het bestand ‘nctkfunctions.tcl’ zorgt ervoor dat de gereedschappen op de juiste manier gewisseld worden. Een gereedschap wordt verwijderd en geladen met respectievelijk de S&V commando’s ‘SIM_unmount_tool’ en ‘SIM_mount_tool’. Op deze plaats in het programma werd ook geprobeerd om de machine naar een gereedschapswisselpositie te sturen telkens van ‘tool’ veranderd wordt. Dit werd gedaan door gebruik te maken van de S&V commando’s ‘SIM_move_ linear_axis’ en ‘SIM_move_rotary_axis’ om de spindel van de machine naar een bepaald punt te sturen tijdens de simulatie telkens een gereedschap gewisseld wordt. Dit lukt, maar telkens de gereedschapswissel gebeurt, keert de machine terug naar zijn oorspronkelijke positie. Zoals eerder al gezegd is het gevaarlijk om aanpassingen in de programmatuur van de Plugin black box aan te brengen als er geen 100% zekerheid is van het resultaat. Bijgevolg werd besloten om niet meer verder te zoeken naar de gereedschapswisselpositie. De procedure ‘NCTK_ExecToolChange’ berekent ook de lengte van gereedschappen die uit de database komen en die een kinematics-model bevatten. De locaties van de junctions ‘SIM_TOOL_MOUNT’ en ‘SIM_TOOL_TIP’ worden opgevraagd via het S&V commando ‘SIM_ask_ junction_xform’ en de afstand ertussen wordt berekend. Zoals in Thomas Sarre KHBO 2004-2005
79
Picanol NV
figuur 2-25 p. 46 te zien is, komt deze afstand overeen met de lengte van het gereedschap! Er moet wel rekening mee gehouden worden dat de namen van de junctions op de zelfgemaakte gereedschappen correct moeten zijn anders zal er geen lengtecorrectie gebeuren! De lengte van de CAM-gereedschappen wordt rechtstreeks uit de CAM gehaald. Tot slot wordt in deze procedure aan de hand van de radius van de gereedschappen de circulaire interpolatie berekend. Figuur 3-12 toont schematisch wat de procedure ‘NCTK_ ExecToolChange’ allemaal doet. NCTK_ExecToolChange mount / unmount tools lengteberekening tools steplength berekening Figuur 3-12: NCTK_ExecToolChange
3.3.5
Boorcycli
Een cyclus is een bundeling van een aantal standaard bewegingen die gebeuren bij bepaalde bewerkingen met CNC-machines. Het kan beschouwd worden als een soort subprogramma dat aan de hand van een aantal in te vullen parameters een volledige bewerking uitvoert, bijvoorbeeld het boren van een gat of het langsdraaien op een draaibank. Op die manier is het niet nodig telkens een heleboel NC-lijnen te programmeren voor elke beweging uit een standaard bewerking. De Plugin werd niet getest voor draaibanken, alleen de boorcycli werden onderzocht op de Willemin W418. De boorcycli bieden een waaier aan diverse gatbewerkingen (gewoon boren, boren met spaanbreking, ruimen, tappen, kotteren, boren met georiënteerde spindelstop, enz …) en hebben elk hun eigen G-code. Een cyclus wordt geactiveerd door eerst de juiste G-code te schrijven, gevolgd door de parameters X, Y, Z, R, Q, F en K (afhankelijk van de soort cyclus kan het aantal parameters verschillen). Deze parameters worden respectievelijk ingevuld met de positie van het gat, de diepte van het gat vanaf de R-positie (zie verder), de afstand van de Zstartpositie boven het gat tot de R-positie, de diepte van elke snijpas, de voedingssnelheid en het aantal keer dat de cyclus herhaald moet worden. Er wordt hier verondersteld dat een gat gemaakt wordt loodrecht in het XY-vlak en dat de symmetrielijn van het gat dus Thomas Sarre KHBO 2004-2005
80
Picanol NV
volgens de Z-as ligt! Figuur 3-13 geeft een voorstelling van de verschillende stappen tijdens een boorcyclus. Het gereedschap beweegt in ijlgang boven het werkstukoppervlak naar de XY-coördinaten waar het gat moet gemaakt worden. Daarna zakt het gereedschap in de Z-richting in ijlgang tot op een veiligheidsafstand, de R-positie. Vanaf deze positie beweegt het gereedschap met voedingssnelheid verder naar beneden en wordt het gat gemaakt. Als de bodem van het gat bereikt is, trekt het gereedschap zich terug in ijlgang. Werd er bij de cyclus een G98 code geprogrammeerd dan zal het gereedschap zich terugtrekken tot op de hoogte van de initiële Z-startpositie. Werd er een G99 code geprogrammeerd dan zal het gereedschap zich terugtrekken tot de R-positie.
Figuur 3-13: Boorcyclus
De procedure ‘cycle’ in het bestand ‘execute_parser.tcl’ wordt aangeroepen vanuit de procedure ‘Execute_ncline’ telkens er een geprogrammeerde cyclus herkend wordt in het te simuleren NC-programma. Deze procedure voert afhankelijk van de numerieke waarde van de G-code een bepaald aantal bewerkingen uit waardoor de cyclus uitgevoerd wordt. De Generic-Plugin ondersteunt volgende cycli: G73, G74, G76, G81, G82, G83, G84, G85, G86, G87, G88 en G89. Er bestaan echter nog meer cycli die de Plugin dus niet zal begrijpen! Aangezien het al duidelijk is uit de procedure ‘cycle’ en het bestand ‘gfunction.tcl’ welke cycli ondersteund worden door de Plugin is het niet de bedoeling alle cycli te testen op de Willemin W418. Het is interessanter om te onderzoeken of de codes G98 en G99 werken in de Plugin en daarom werd dit gedaan voor de cyclus G73. Figuur 314 toont de NC-code die geprogrammeerd werd om de cyclus G73 te testen.
Figuur 3-14: Spaanbreek-cyclus
Thomas Sarre KHBO 2004-2005
81
Picanol NV
Deze cyclus maakt een gat in een bepaald aantal stappen en trekt het gereedschap tussen de stappen telkens een beetje terug om de spanen te breken. De Z-startpositie ligt op de absolute hoogte 250mm en de R-positie ligt 100mm lager. Het gat is 250mm diep vanaf de R-positie en wordt in stapjes van 10mm gemaakt. Dezelfde cyclus wordt tweemaal uitgevoerd éénmaal met een G98 en éénmaal met een G99. De Plugin houdt rekening met de G98 en G99 code en dit wordt dan ook effectief uitgevoerd in de simulatie. Bepaalde combinaties van cycli met een G98 of G99 mogen niet voorkomen (zoals een G87 met een G99) en in de procedure ‘cycle’ wordt dit ook gecontroleerd. De parameter ‘K’ die het aantal herhalingen van de cyclus aangeeft, wordt niet ondersteund door de Plugin.
3.4 Besluit In dit hoofdstuk werd een algemene beschrijving gegeven van hoe de Generic-Plugin een NC-programma lijn voor lijn verwerkt en hoe de Plugin geïnitialiseerd en afgesloten wordt. De werking op zich is met een basiskennis van TCL-programmatuur of programmeren in het algemeen duidelijk te begrijpen. Dit is belangrijk vooraleer er begonnen wordt met het testen van de Plugin op een machine. Omdat de Generic-Plugin een MTD-driver is die probeert om voor een zo groot mogelijk aantal machines een oplossing te bieden, is het te verwachten dat niet alle functies en NC-codes zullen werken voor elke machine. Bovendien is de Plugin een nieuwe technologie in volle ontwikkeling waar nog niet veel over bekend is. Het voorgaande bleek ook tijdens het testen van de Plugin black box: de algemene bewerkingen zijn geen probleem, maar in complexere situaties (zoals een 5-assige freesmachine) komt de Plugin tekort. Dit kan enkel opgelost worden door de Generic-Plugin uit te breiden met extra functionaliteit of door een volledig nieuwe Plugin black box te maken op maat van één bepaalde machine. Hiervoor is natuurlijk een uitgebreide kennis van TCL-programmatuur vereist! Het is dus nog niet direct haalbaar om een goede Machine Tool Driver te maken in Plugin-mode voor de Willemin W418. Als dit in de toekomst wel zou lukken dan zou het mogelijk zijn om via de externe Plugin rechtstreeks NC-code te interpreteren en tevens de werking van de postprocessor te controleren.
Thomas Sarre KHBO 2004-2005
82
Picanol NV
4
ISV versus Vericut Omdat ik niet beschikte over het softwarepakket ‘Vericut’ en een grondige kennis van het programma niet vereist was, werd een korte beschrijving gegeven van de mogelijkheden die belangrijk zijn voor Picanol (zie §1.3). Het was belangrijker om de nieuwe simulatiemodule ‘ISV’ van Unigraphics NX 2.0 te bestuderen omdat dit iets volledig nieuw is, terwijl de mogelijkheden en de werking van Vericut gekend zijn. Het is interessant om ISV en Vericut te vergelijken op enkele punten zodat duidelijk de voor- en nadelen van deze twee programma’s naar voor komen. Worden ISV en Vericut naast elkaar geplaatst, dan is direct een belangrijk verschil te zien tussen beide programma’s. Vericut is een alleenstaand simulatieprogramma dat enkel maar NC-code interpreteert en daarmee een simulatie aanstuurt. Het is geen CAM-programma waarmee gereedschapsbanen kunnen gemaakt worden, er is een NC-file nodig dat van een ander programma afkomstig is. Vericut kan beschouwd worden als een externe simulatiemodule. ISV heeft het grote voordeel dat het een volledig geïntegreerde module is van een heel uitgebreid CAD/CAM-pakket. Bovendien kan er ook NC-code gesimuleerd worden door gebruik te maken van de ‘Plugin’ simulatiedriver, maar deze driver is moeilijk te implementeren voor een eigen machine en ondersteunt soms niet alle functies van de NC-code. Het is ook mogelijk om met ISV de gereedschapsbanen uit de CAM te simuleren en te verifiëren nog voor deze omgezet worden naar NC-code. Dit is handig om tijdens het programmeren van de gereedschapsbanen een eerste resultaat te zien van hoe de geprogrammeerde baan op de machine zal uitgevoerd worden. Deze methode is echter niet waterdicht omdat het nog fout kan gaan bij de omzetting van de gereedschapsbaan naar NC-code door de postprocessor. Door Unigraphics NX 2.0 aan te schaffen, beschikt de gebruiker over een complete oplossing in één softwarepakket zonder daarvoor het dure Vericut als apart programma te moeten kopen. Daar tegenover staat wel dat Vericut één van de beste simulatieprogramma’s is en zeker beter is dan ISV op het vlak van de rechtstreekse simulatie van NC-code. Omdat ISV volledig geïntegreerd is in Unigraphics NX 2.0 is het ook gemakkelijker om een nieuw machinemodel klaar te maken om simulaties mee uit te voeren. Via de CADapplicatie van UG kan een geometrisch model van de machine gemaakt worden om dan
Thomas Sarre KHBO 2004-2005
83
Picanol NV
direct met de ‘Machine Tool Builder’ de kinematica toe te voegen aan het model. Er rest dan nog enkel het toevoegen van het machinemodel in de database van UG en de nieuwe machine kan opgeroepen worden vanuit de CAM voor gebruik met ISV. Om een nieuwe machine in Vericut te integreren, moet eerst een geometrisch model met een CAD-pakket gemaakt worden dat dan onder de vorm van STL-bestanden overgeplaatst wordt naar Vericut. Dit toont nogmaals aan dat Vericut een gespecialiseerd pakket is enkel voor de simulatie van NC-code. De kinematica van de machine kan wel in Vericut opgebouwd worden met een zogenaamde ‘kinematics-tree’ zoals in ISV. Er zijn hier zelfs meer mogelijkheden dan in ISV, want er kunnen bijvoorbeeld extra nulpunten gedefinieerd worden evenals een gereedschapswisselpositie. Het is ook mogelijk om specifieke NCfuncties van een bepaalde machine te definiëren. De interpretatie van NC-code kan dus in Vericut zelf uitgebreid worden, terwijl dat helemaal niet zo eenvoudig is bij de Plugin black box van ISV. Vericut kan vergeleken worden met een Plugin black box, maar die dan flexibel aan te passen is via een gebruikersinterface en eigenlijk een programma op zich is. Naast de integratie van nieuwe machines is het ook mogelijk om nieuwe gereedschappen te integreren in ISV en Vericut. De gereedschappen die gebruikt worden in de simulaties met ISV kunnen heel eenvoudig aangemaakt worden via de wizards in de CAM. Er kunnen vele soorten gereedschappen gemaakt worden op deze manier, maar bijlange niet allemaal. De oplossing voor dit probleem bestaat er in om zelf de gereedschappen te creëren via een CAD-model, maar dit is een heel tijdrovende methode. Vericut beschikt over een eigen toolmanager waarmee alle soorten gereedschappen kunnen gemaakt worden door het profiel van een gereedschap te tekenen en dit dan te wentelen rond de symmetrieas. Dit geldt natuurlijk alleen maar als het gaat over symmetrische en ronde gereedschappen met hun symmetrieas als rotatie-as. De gereedschappen voor het werkstuk BA218793 op de Willemin W418 voldoen allemaal aan deze voorwaarden. Op dit vlak heeft Vericut een licht voordeel omdat met een volledig geïntegreerde toolmanager de gereedschappen gemakkelijk en efficiënt beheerd kunnen worden. Er moet wel opgemerkt worden dat er ook toolmanagers bestaan voor Unigraphics (bijvoorbeeld TeamCenter), maar omdat ik niet beschikte over dergelijke software is het niet mogelijk hier een oordeel over te vellen. Het is wel duidelijk dat op het vlak van de gereedschappen de verschillen qua voor- en/of nadelen tussen Vericut en ISV niet beduidend zijn.
Thomas Sarre KHBO 2004-2005
84
Picanol NV
Tijdens een simulatie in ISV wordt er heel wat informatie naar buiten gebracht in verband met de positie van de machinekop, de voedingssnelheden, de NC-code, de Machine Tool Driver, enz. In Vericut wordt deze informatie in een LOG-bestand weggeschreven dat dan achteraf geraadpleegd kan worden. Hierin komt nog andere informatie zoals de eventueel voorgekomen botsingen en de bewerkingstijd. De grafische weergave van de simulatie in Vericut gebeurt in één of meerdere vensters die het verspanend proces van verschillende kanten kunnen tonen. Er kan ook voor gekozen worden de volledige machine of enkel het gereedschap te laten zien in een dergelijk venster. In beide gevallen loopt de simulatie met ‘Dynamic Material Removal’ of anders gezegd: virtueel verdwijnt materiaal van het ruwe stuk totdat enkel het uiteindelijke werkstuk overblijft. In ISV kan ‘Dynamic Material Removal’ ook gebruikt worden, maar enkel bij het verifiëren van de toolpaths. Alleen het gereedschap wordt dan getoond dat materiaal afneemt van het ruwe stuk. Achteraf kan het bewerkte ruwe stuk vergeleken worden met het CAD-model van het eigenlijke werkstuk ter controle. De mogelijkheid om de virtuele materiaalafname te simuleren in ISV op een volledige machine werd niet gevonden, maar bestaat wellicht wel. Het verifiëren van toolpaths (via ‘Toolpath → Verify’) in ISV bevat veel gelijkaardige instellingen en mogelijkheden als voor de simulatie in Vericut. Er moet echter op gewezen worden dat het hier gaat over het simuleren van gereedschapsbanen die nog niet gepostprocessed werden en zonder gebruik te maken van een machinemodel. Als er gesimuleerd moet worden via ‘Toolpath → Simulate’ met een volledige machine dan zijn er heel wat minder instelmogelijkheden terwijl dit wel altijd het geval is bij Vericut. Deze instelmogelijkheden omvatten enkele functies zoals het al dan niet weergeven van de gereedschapshouder tijdens de simulatie, of de simulatie moet stoppen bij elke toolwissel of na een aantal lijnen NC-code, of de bewegingen van de cycli volledig moeten getoond worden of niet, enz. Zowel ISV als Vericut beschikken over een ‘collision checker’ om botsingen te detecteren. Ze zijn beide te vergelijken met elkaar, maar werden niet grondig bestudeerd. Als laatste moet nog een interessante functie van Vericut vermeldt worden, namelijk de mogelijkheid om een NC-code of een lijn NC-code rechtstreeks in te geven in een dialoogvenster waarop deze code dan direct uitgevoerd wordt en het machinemodel aangestuurd wordt. Op die manier kan direct nagegaan worden hoe Vericut een bepaalde NC-functie interpreteert en hoe het machinemodel zich gedraagt.
Thomas Sarre KHBO 2004-2005
85
Picanol NV
Algemeen besluit De nieuwe simulatiemodule ISV van Unigraphics NX 2.0 werd bestudeerd om te kunnen aantonen of het misschien interessant zou zijn om Vericut te vervangen door ISV. Picanol heeft nu de versie 5.1 van Vericut die niet verder onderhouden wordt, maar nog steeds perfect werkt en voldoet aan de eisen van Picanol. Natuurlijk zijn ze niet blind voor de nieuwe ontwikkelingen van Unigraphics en dus wil Picanol weten of ISV eventueel in gebruik kan genomen worden. Om te beginnen werd Unigraphics NX 2.0 zelf bestudeerd omdat ik nog geen ervaring had met deze software. Het softwarepakket is aan de hand van een goede handleiding vlot aan te leren en het bleek al vlug dat het uitstekende CAD/CAM-mogelijkheden bezit. Vervolgens werd er begonnen aan de creatie en integratie van een machinemodel voor het 5-assig bewerkingscenter - de Willemin W418 - van Picanol. Dit blijkt geen probleem te zijn en het gaat relatief vlot omdat de verschillende applicaties die nodig zijn om een dergelijk model te maken volledig geïntegreerd zijn in één softwarepakket. Er moet wel op gewezen worden dat het maken van een kinematics-model nauwgezet moet gebeuren en dat er nogal wat verwarring is met de vele verschillende coördinatenstelsels (vooral de benamingen van deze stelsels) die gebruikt worden. Er werd ook aandacht besteed aan de integratie in ISV van enkele gereedschappen van Picanol. Mits een geschikte toolmanager voor Unigraphics kan het gereedschapsbeheer van Vericut zeker overgenomen worden voor ISV. Het belangrijkste deel van de tijd werd besteed aan de studie van de ‘Machine Tool Driver’ die de simulaties in ISV aanstuurt. De simulatiedriver kan op drie manieren werken waarvan twee (SIM-event en Direct) rechtstreeks de gereedschapsbanen uit de CAM simuleren en waarvan één (Plugin) NC-code interpreteert en daarmee de simulatie stuurt (net zoals Vericut dit doet). Deze twee manieren van simuleren kunnen ook gecombineerd worden in één simulatiedriver waardoor het mogelijk wordt om tijdens de CAMprogrammatie en na het postprocessen te simuleren zonder daar zelfs van applicatie te moeten veranderen. Dit scenario werd niet bereikt voor de machine van Picanol omdat er geen correcte postprocessor kon gemaakt worden met Postbuilder en de ‘Generic-Plugin’ die NC-code interpreteert nog in volle ontwikkeling is en niet alle NC-functies
Thomas Sarre KHBO 2004-2005
86
Picanol NV
ondersteunt. Als er een correcte postprocessor met bijhorende ‘Virtual NC-controller’ zou kunnen gemaakt worden voor de Willemin W418 met het programma Postbuilder dan zou de weg open liggen naar een correcte simulatie met ISV volgens de SIM-event- of Directmode! Maar om Vericut te kunnen vervangen moet ISV in staat zijn om simulaties uit te voeren die rechtstreeks op NC-code gebaseerd zijn en dus zou er een correcte Plugin moeten geprogrammeerd worden. Dit is echter niet eenvoudig omdat een grondige kennis van TCL-programmatuur vereist is! De eindconclusie luidt dat het momenteel nog niet opportuun is om Vericut te vervangen door ISV omdat er nog belangrijke hindernissen overwonnen moeten worden bij de creatie van een correcte simulatiedriver. Dit wil niet zeggen dat ISV een slechte simulatiemodule is, want ze bevat veel voordelen, zoals het feit dat ISV volledig geïntegreerd is in één CAD/CAM-pakket. Misschien is het beter een aantal volgende versies van Unigraphics af te wachten tot ISV nog verder ontwikkeld is. Picanol kan ook investeren in het maken van ISV-compatibele postprocessoren of Plugin-drivers voor hun machines zodat ISV van UG NX 2.0 wel bruikbaar wordt. Dit zou echter niet voordelig zijn omdat er momenteel geen geld meer uitgegeven wordt aan Vericut terwijl het wel nog perfect kan gebruikt worden. Er moet echter opgemerkt worden dat Vericut ook steeds beter wordt, maar Picanol volgt dit dus niet meer omdat de verbeteringen niet van die aard waren dat ze interessant waren voor Picanol. Als eindopmerking vermeld ik nog dat er naast Unigraphics NX 2.0 nog andere softwarepakketten zijn zoals CATIA, Peps en Pro-Engineer die allerlei simulatiemogelijkheden bevatten. Het is mij niet bekend in hoeverre deze pakketten CAM-simulatiemogelijkheden bezitten, maar het staat vast dat Unigraphics NX 2.0 en Vericut niet de enige spelers zijn op de markt van ‘Computer Aided Manufacturing’.
PROGRAMMA NAAM : WBA218793_POS1 ------------------------------------------------------------------------TOOL NUMMER TOOL NAAM DIAMETER ------------------------------------------------------------------------1 T21696001_VGF_D4_R0.3 4.00 2
Bijlage IV : bestand “dbc_machine_ascii.def” ############################################################################# # This is the definition file for machine tools with Genius as the database # ############################################################################# ############################################################################### # dbc_machine_ascii.def - DBC Event Handler for database stored as ascii file ############################################################################### ############################################################################## # REVISIONS # Date Who Reason # 04-Dec-98 naveen & Initial # binu # 17-May-99 bill berg add lathe, wedm and mixed machine types # 14-Jun-99 Joachim Meyer New DB_ID keywords due to new Format # of the ASCII Data File # 10-May-00 Satya Added new class MILLTURN ############################################################################## DB_PREFIX DB_SUFFIX ESS_PREFIX ESS_SUFFIX
"DB(" ")" "ESS(" ")"
############################################################################# # The DB_ALIAS of the library reference. It is mandatory that this DB_ALIAS # appears in the alias list # ############################################################################# ############################################################################# # The list of DB_ALIAS # # DB_ALIAS # { # DB_ID < Attribute identifier defined in the ASCII Data File # DB_ID_TYPE < Type of the identifier > # d _ double # i _ integer # s _ string # } # ############################################################################## DB_ALIAS libref { DB_ID LIBRF DB_ID_TYPE s } DB_ALIAS Type { DB_ID DB_ID_TYPE }
T s
DB_ALIAS Manufacturer { DB_ID MNF DB_ID_TYPE s } DB_ALIAS Description { DB_ID DESCR DB_ID_TYPE s } DB_ALIAS Control { DB_ID CNTR DB_ID_TYPE s } DB_ALIAS config_file { DB_ID POST DB_ID_TYPE s } LIBREF
libref
Thomas Sarre KHBO 2004-2005
90
Picanol NV
######################################################################### # The Class Hierarchy # ######################################################################### CLASS MACHINE { TYPE test1 QUERY "[1] == [1]" DIALOG Manufacturer RSET libref Description Control Manufacturer CLASS MILL { TYPE test2 QUERY "[DB(Type)] == [1]" DIALOG Manufacturer RSET libref Description Control Manufacturer } CLASS LATHE { TYPE test2 QUERY "[DB(Type)] == [2]" DIALOG Manufacturer RSET libref Description Control Manufacturer } CLASS WEDM { TYPE test2 QUERY "[DB(Type)] == [3]" DIALOG Manufacturer RSET libref Description Control Manufacturer } CLASS MILLTURN { TYPE test2 QUERY "[DB(Type)] == [4]" DIALOG Manufacturer RSET libref Description Control Manufacturer } CLASS PICANOL { TYPE test2 QUERY "[DB(Type)] == [5]" DIALOG Manufacturer RSET libref Description Control Manufacturer } CLASS MIXED { TYPE test2 QUERY "[DB(Type)] == [9]" DIALOG Manufacturer RSET libref Description Control Manufacturer } }
Format of the ASCII Data File -----------------------------The ASCII Data File is a list of records. The general structure of a record is: Record_type Paramaters There are three record types which are referred to by the following keywords: # FORMAT DATA # indicates a comment, the record is ignored. A FORMAT record describes the kind of parameters of the subsequent DATA records. FORMAT LIBRF
T
ST
DESCR
MATREF
MATDES
HLD
HLDDES
DIA
FLEN
FN
HEI
This implies that a corresponding DATA record might look like the following example: DATA|ugt0201_001|02|01|End Mill|TMC0_00006|HSS-Co5-TiN|320|Steep Taper 20|10.5|35.3|4| 55
Abbreviations LIBRF - Library Reference T - Tool Type ST - Tool SubType UGT - UG Tool Type UGST - UG Tool SubType DESCR - Description MATREF - Reference to cutter material table MATDES - Cutter material description HLD - Holding system (Type of Machine Adapter) HLDDES - Holding system description DIA - Diameter FLEN - Flute Length FN - Number of Flutes HEI - Height If a record doesn't start with one of #, FORMAT or DATA it is treated as continuation of the previous FORMAT or DATA record. For example a valid FORMAT description might also be: FORMAT LIBREF T ST UGT UGST DESCR MATREF MATDES HLD DIA # The following 2 Attribute Identifiers also belong to the FORMAT record FN HEI
COR TAPA FLEN
A FORMAT record consists of the keyword FORMAT followed by a list of attribute identifiers. A DATA record usually describes one tool. The record consists of the keyword DATA followed by a list of attribute values separated by '|'. The first non blank character after DATA must be a | symbol. The number and kind of attribute fields of a DATA record is described in the preceding FORMAT record. This implies that the number of attribute values in a DATA record must be the same as the number of attribute identifiers in the corresponding FORMAT record. The attribute identifiers can be used as DB_ID values within the DB_ALIAS structures of the Definition File (dbc_tool_ascii.def). The user can define his own attribute identifiers which he needs to describe his tools.
The following attributes are common to all tool types and subtypes:
LIBRF T ST UGT UGST DESCR MATREF MATDES HLD
HLDDES
-
Unique identifier (so called library refernce) for a tool Classification type of a tool. Classification subtype of a tool. UG Tool Type UG Tool SubType Short tool description Reference to cutter material table (tool_materials.dat) Cutter material description Holding system for mounting tool to machine HLD is used to check whether the tool can be mounted to a pocket of the tool carrier of the machine. The HLD value here has to match one of the Holding Systems specified in the pocket definition in the postprocessor .def file of the machine. - Holding system description
The attributes LIBRF, T, ST are required!!
The standard UG/Library example uses the attributes T and ST (Type and SubType) in order to classify the tools managed in the ASCII data file. This library classification can be mapped to the UG internal classification using the UGT (UG Type) and UGST (UG SubType) attributes. The following table gives an overview of the available library and UG internal classification and the mapping between them.
T Lib Type ST Lib Subtype UGT UG Type UGST UG Subtype --------------|---------------------------------------|--------------------|-------------------02 Milling 01 End Mills Non-indexable 01 Mill 01 5 Parameter 02 Milling 02 End Mills Indexable 01 Mill 01 5 Parameter 02 Milling 03 Ball Mills Non-indexable 01 Mill 01 5 Parameter 02 Milling 12 Face Mills Indexable 01 Mill 01 5 Parameter 02 Milling 21 T-Slot Mills Non-indexable 08 T Slot Cut 00 None 02 Milling 93 Barrel Mills 07 Barrel Cutter 00 None 02 Milling 90 UG - 5 Parameter Cutter 01 Mill 01 5 Parameter 02 Milling 91 UG - 7 Parameter Cutter 01 Mill 02 7 Parameter 02 Milling 92 UG -10 Parameter Cutter 01 Mill 03 10 Parameter
Standard Standard Spot Face Spot Face Spot Drill Center Bell Counter Bore Counter Bore Counter Sink Counter Sink Tap Bore Bore Drill Ream Drill Ream Step Drill Standard
OD Turning ID Turning OD Grooving IDGrooving Parting OD Profiling Tools ID Profiling Tools OD Threading Tools ID Threading Tools Face Grooving
03 03 04 04 04 04 04 05 05 04
01 01 01 01 01 03 03 01 01 01
Standard Standard Standard Standard Standard Full Nose Radius Full Nose Radius Standard Standard Standard
If you want to introduce new types/subtypes in this ASCII data file you also have to specify UGT and UGST in order to map your new tool types to UG internal classification. All available UG types and subtypes are listed in the table above. Usually a DATA record has a unique LIBRF and describes exactly one tool. There is one exception from this rule: If we have a multiple cutter tool we describe every cutter in a separate DATA record. All the data records belonging to a multitool must have the same LIBRF and must have a CTNO (cutter number) attribute. It is not allowed to specify a DATA record with a different LIBRF within such a multitool definition. Currently multiple cutter tools are not supported by the DBC Event Handler.
Bijlage VI: klasse “PICANOL” uit dbc_tool_ascii.def CLASS PICANOL { TYPE QRY QUERY "[DB(Type)] == [04]" FILE "qry=C:/Program Files/EDS/Unigraphics NX Files/EDS/Unigraphics NX 2.0/Custom/envir/picanol3.bmp;" DIALOG libref Soort Diameter Material RSET libref Soort Descr Diameter MaterialDes UI_NAME "Picanol"
2.0/Custom/envir/picanol.bmp;rset=C:/Program
CLASS FREZEN { TYPE QRY QUERY "[DB(SubType)] == [200]" FILE "qry=C:/Program Files/EDS/Unigraphics NX 2.0/Custom/envir/picanol.bmp;rset=C:/Program Files/EDS/Unigraphics NX 2.0/Custom/envir/picanol3.bmp;" DIALOG libref Soort Diameter Material RSET libref Soort Descr Diameter CorRadMill MaterialDes UI_NAME "Frezen" } CLASS GATBEWERKINGEN { TYPE QRY QUERY "[DB(SubType)] == [300]" FILE "qry=C:/Program Files/EDS/Unigraphics NX Files/EDS/Unigraphics NX 2.0/Custom/envir/picanol3.bmp;" DIALOG libref Soort Diameter Material RSET libref Soort Descr Diameter MaterialDes UI_NAME "Gatbewerkingen" } } }
Moves the specified linear axis with specified value along its degree of freedom.
Parameters
duration: the time in seconds it takes to execute this command by the machine. axis: name of the linear NC axis value: axis position in axis coordinate system
Output
none
Example
SIM_move_linear_axis 10.5 X 25.4
SIM_move_rotary_axis Syntax
SIM_move_rotary_axis
Description
Moves the specified rotary axis with specified value around its degree of freedom. The motion to the target position is done along the shortest distance.
Parameters
duration: the time in seconds it takes to execute this command by the machine. axis: name of the actual rotary NC axis value: axis position in degrees
Output
none
Example
SIM_move_rotary_axis 36.23 A 0.7
Mounting Commands SIM_mount_kim_comp Syntax
SIM_mount_kim_comp <jct1> <jct2>
Description
Mounts the specified component to the target component. The two specified junctions determine the orientation of the mounted component. The transformation that it takes to make jct1 coincide with jct2 is the transformation applied to comp1. Comp1 and comp2 must be valid K-components. If comp1 is already mounted on another component, it will first be unmounted from that component. If comp2 is not specified, comp1 is mounted on the unmounted node of current kinematics model.
Parameters
duration: the duration in seconds that it takes to mount comp1 to comp2. comp1: the source K-component jct1: the source junction comp2: the target K-component jct2: the target junction
Unmounts the specified K-component from the current kinematics model. The unmounted component is added to its root node.
Parameters
duration: the duration in seconds that it takes to unmount component comp: the component name
Output
none
Example
SIM_unmount_kim_comp 15 DEVICE_1
SIM_mount_tool Syntax
SIM_mount_tool <jct>
Description
Mounts the specified tool on a target component. The system looks for the tool assembly model in the resource tool library and creates a mounting junction and tool tip junction at their standard locations (see Genius4000 documentation for details). The tool is mounted on the comp such that the tool-mounting junction coincides with the component junction jct. If the system cannot find a tool assembly, it creates a solid assembly of the tool on the fly. You can identify the tool in the following five ways according to the tool_id_class: TOOL_NUMBER LIBRARY_REF CATALOG_NUMBER UG_NAME COMP_NAME
The tool_id is specified according to the specified tool_id_class. Parameters
duration: the duration in seconds that it takes to mount a tool on the machine tool_id_class: the class by which the tool id is specified. See list of classes in description tool_id: the tool id corresponding to the tool_id_class comp: the target K-component name jct: the target junction
Output
The global TCL variable mom_sim_result returns the k-component name of the created tool.