NX programming and customizationExtending and tailoring NX digital product development solutions
www.siemens.com/nx
NX
Benefits• Preservescriticalknowledge
anddesignintentfromthedesignprocessallthewaythroughtothemanufacturingprocess
• Enablescompaniestocapture,re-useandconsistentlyapplybestpracticesacrossthespectrumoftheirproductlines,thusenablingleandesigninitiatives
• Quicklyautomatesrepetitivetasksandallowsuserstocaptureandshareworkflowprocessesinscriptedfilesfromjournalingsessions
• Supportsrapidapplicationdevelopmentthroughtheindustry’sfirstCommonAPIdesign
• Facilitateslanguagefreedom–youcanchooseyourpreferredautomationlanguage
• Facilitatesdeepintegrationwithlanguage-specificIDEs(integrateddevelopmentenvironments)
• ProvidescompleteaccesstoNXcoreapplicationfunctionalityfromanysupportedlanguage
SummaryNX™programmingandcustomizationsoftwaretoolshelpcompaniesextendandtailorNXsolutioncapabilitiestotheirspecificneeds.Supportingtheknowledge-drivenautomationcapabilitiesofNX,thesetoolscanbeemployedbyproductdevelopmentpersonnelandapplicationdevelopers.
The NX Common Application Programming Interface (API)NXsoftwareprovidesanautomationarchitecturethatservesasthefoundationforallNXAPIsaswellasforanewjournalingutility.CalledtheCommonAPI,itcombinesthepowerofjournalingandautomationwiththefreedomofalanguage-neutralplatform.IntegratedwithinthecoreNXarchitecture,theCommonAPIisthefoundationforallNXsolutionsandisfullycompatiblewiththeexistingOpenCAPI.
Knowledge-based application development
Knowledge FusionKnowledgeFusionisafullyintegratedknowledge-basedengineering(KBE)toolthatpermitsknowledge-basedextensionofNXbytheenduser.ComparedtotraditionalKBEtechnologies,thetightintegrationofKnowledgeFusionintotheNXdigitalproductdevelopmentsystemprovidesasignificantadvantageintheindustry.KnowledgeFusionpermitsthecreationofpowerfulapplicationsthattakeadvantageofengineeringknowledge.Itsupportsthecaptureandre-useofdesignintentanduserintelligencetoincreasedesignspeedandproductivitywhileintelligentlycontrollingchangepropagation.
NX is built on an automation architecture that provides a common foundation for automation and programming.
session.Thesesessionscanbeeditedandenhancedwithsimpleprogrammingconstructsanduserinterfacecomponentstoproducearapidlygeneratedcustomizedprogram.
Journalfilescanbeusedasabasictechniqueforautomatingrepetitiveworkflow.BecausejournalsarebasedontheCommonAPI,theycanbeusedasatemplateforworkingautomationcodeinanyofthesupportedautomationlanguages.
Availability and packagingThejournalingcapabilityisincludedwithallNXMachSeriessolutionsasanintegralfeature.
NX Open Common Application Programming Interface (API)ThenewCommonAPIoffersthefollowingfeatures:• Languagesupport–Providesanative
.NETAPIthatsupportsall.NETlanguagesincludingVisualBasic.NETandC#.TheJavaandOpenC++APIssupportthefullrangeofCommonAPIcapabilities.
• Supportforstandardintegrateddevelopmentenvironments(IDEs)–VisualStudio.NETdevelopmentenvironmentistheindustrystandardIDEfordeveloping.NETprograms.Itprovidesstate-of-the-artbrowsing,editing,debugging,graphicallayoutofdialogs(WinFormsandWebForms)andaunifiedIDEforweb,desktopandmobiledevelopmentneeds.VisualStudio.NETistherecommendedIDEfordevelopingNXOpen.NETprograms.Similarly,Javaintegrateddevelopmentenvironments–Eclipse,Netbeans,etc.offerdevelop-mentofplatform-independentJavaautomationprogramswhichmayusetheJFC/SwingAPIforinteractiveuserinterface.CustomprogramsusingNXOpenforJavaAPIcanutilizeanyoftheindustrystandardJavaIDEsforapplicationdevelopment.
DesignersandapplicationdeveloperscanworkwithKnowledgeFusiondirectlywithintheNXuserenvironmenttocreaterulesthatcapturedesignintent.Theserulescanbeusedtodriveproductdesign,ensuringthatengineeringanddesignrequirementsarefullyunderstoodandfullymet.KnowledgeFusiondeliversnewcostandtimesavingsandraisesqualitybystandardizingdesignprocesses,enforcingsourcingpracticesandincorporatingupfrontthemanufacturingandperformanceconstraintsintothedesignenvironment.
Availability and packagingTheabilitytoexecuteapplicationsdevelopedwithKnowledgeFusionisincludedwithallNXMachSeriessolutionsasaruntimelicense.KnowledgeFusionAuthorprogrammingisavailableasanadd-onsoftwarepackageforallNXMachSeriessolutions.
Easily record and replay interactive sessions
JournalingTheJournalcapabilityisarapidautomationtoolthatrecords,editsandreplaysinteractiveNXsessions.BasedontheprogramminglanguageVisualBasic.NETandC#,itproducesascriptedfilefromaninteractivesessionofNXwhichcanberunatalatertimetoreplaythe
Benefits continued• Supportsidentical
automationcapabilitiesforallprogramminglanguages
• ProvidesdirectautomationaccesstoMicrosoft’sextensive.NETlibraryandJavapackagesofre-usablesoftware
• PreservesautomationinvestmentsthroughcompatibilitywithlegacyOpenAPIwithcustomizedinteractionenvironments
• Allowsaccesstocross-platformmodeldataindiversenetworkedenvironments
Features• Flexiblesolutionsfor
automationandcustomization–forproductdevelopmentpersonnelaswellasprogrammers
• Softwaretechnologiestoenableuserstoeasilyembeddesignknowledgeandengineeringrulesinprograms
• CommonAPI–asinglefoundationforautomationinavarietyoflanguages
• Language-neutralprogrammingplatform
• PowerfuljournalingutilityforlightweightautomationofNXsessions
• CapabilityforrecordingNXinteractiveoperationsinanysupportedlanguage
• Menuanddialogcustomization
• Datamodelcustomization
NX programming and customization
NX
A journaling tool in NX records interactive sessions and allows editing and replay. This capability can be used to quickly automate repetitive tasks.
NX Open for C++ APIOpenC++isanativeC++versionoftheCommonAPI,anobject-orientedinterfacetoNX.WritteninC++,thisAPItakesfulladvantageofobject-orientedfeaturesincludinginheritance,encapsulationandpolymorphism.OpenC++providescompleteaccesstoitsclasshierarchy,allowingcustomerstooverridemethods,derivetheirownclassesandcreateentirelynew,persistentobjectsinNX.NXOpenC++isfullycompatiblewiththeexistingOpenCAPI.NXOpenC++alsoprovidesafullyextensibledatamodel,allowingcustomerstodefinenewtypesofobjectsthatcanbetreatedjustlikestandardNXobjectsandstoredpersistentlyinNXpartfiles.JournalscanberecordedinC++,whichcanthenbeeditedandcompiledoutsideofNX.
Open C APITheOpenCAPIisadirectprogramminginterfacetoNXthatallowsuserstocreatecustomapplicationsusingthepopularprogramminglanguagesCandC++.ItisusedbyNXdevelopers,customersandalliancepartnerstoproduceuniqueapplicationstoaugmentNXortoactascompletelyseparateutilities.OpenCalsoprovidesafullyextensibledatamodel,allowingcustomerstodefinenewtypesofobjectsthatcanbetreatedjustlikestandardNXobjectsandstoredpersistentlyinNXpartfiles.
TheOpenCAPIhasconsistentlybeenratedhigherthanthoseofcompetitorsintermsofcompletenessandusability,andhasbeenrecognizedasoneofthemoststableandreliableAPIsfromreleasetorelease(basedonthenumberofdeletedandchangedfunctionsrelativetototalnumberoffunctions).
API availability and packagingAlloftheNXlanguageAPIsareincludedintheNXOpenToolkitsAuthorsoftwarepackage,availableasanadd-onforallNXMachSeriessolutions.ApplicationsdevelopedandexecutedusinganyoftheAPIsrequireindividualNXfeaturelicensesatruntimeforthecapabilitiesusedintheprogram.
User interface customization tools
NX menu customizationMenuScriptisatoolthatallowsendusersandthird-partydeveloperstouseASCIIfilestoeditNXmenusandcreatecustommenusfortheirownapplicationsinanintegrated,seamlessmanner.Menufilessupportcustomtailoringofthemainmenubarandthequickviewpopupmenu.Manufacturerscancreatespecializedmenusanduserinterfacedialogs,exposingandaugmentingonlytheNXfunctionsrequiredinthecustomworkflowprocess.
MenuScriptsupportspre-andpost-actionsformenuitemsforbothstandardNXmenuitemsandthoseprovidedbythird-partyapplicationsdevelopedwithOpenCandC++.MenuScriptalsoprovidesaMenubarReporttooltohelpreviewmenucustomization,diagnoseproblemsandassistinupgradingtofutureNXreleases.Adrag-and-dropmenucustomizationinteractionisalsoavailable.
AvailabilityMenuScriptmenucustomizationisincludedinallNXMachSeriessolutions.
• Applicationdevelopment–Supportsrapidapplicationdevelopmentbyofferingstreamlined,object-orientedclasshierarchies.TheCommonAPIisexposedthroughtheobjectbrowsersofferedbyVisualStudioandJavaIDEs.
• Coverage–ProvidesthesameautomationcoverageasavailablefromtheOpenCAPI.
• Remoting–Offersfullremoteexecutionsupportbasedon.NETremotingwhichiscompatiblewithCOM-basedsolutions,oronJavaRMI(remotemethodinvocation).JavaRMIisplatform-independent.
• Help–SupportsCommonAPIdocumen-tation,whichisfullyintegratedintotheVisualStudiointegrateddevelopmentenvironmentandiseasilydisplayedintheVisualStudioHelpformat.FullJavaCommonAPIdocumentationispresentedinthestandardJavaDocstyle.
NX Open for .NET APINXoffersanAPIforusewithMicrosoft’s.NETframework.BuiltontheCommonAPI,thisinterfaceprovidesprogrammaticaccesstoNXcoreapplicationfunctionality,makingitpossibletocreateadvancedautomationprogramsusinganyofthe.NET-compliantlanguages,includingVisualBasic.NETandC#.BecausetheAPIisbuiltonthe.NETframework,userscantakefulladvantageofallthebenefitsprovidedbythatframework.
NX Open for Java APITheJavaAPIsupportsplatform-independentprogrammingaccesstoNXthroughtheCommonAPIusingtheindustrystandardJavalanguage.UseofJavaJFC/Swingmethodsprovidesinteractiveinterfacesinapplications.JournalscanberecordedinJava,whichcanthenbeeditedandcompiledoutsideofNX.TheJavaAPIsupportsinteractive,batchandremoteexecution.
NX Open for .NET takes advantage of the Microsoft integrated development environment by providing access to object documentation directly from the Visual Studio object browser.
NX
Tools for customizing the data model
User-defined objectsUser-definedobjects(UDOs)areobjectsthatcontaincustomer-specifieddataandcustomer-suppliedassociations.UDOscanbelinkedorassociatedwithotherNXobjectsincludingotherUDOs,andarekeptup-to-dateastheassociatedNXobjectchanges.UDOsenablethird-partyvendorsanduserstoaugmenttheirpartfileswithcustomer-specificapplicationdata.
Availability and packagingCustomizationofdataandassociationsinuser-definedobjectsisincludedintheNXOpenToolkitsAuthorsoftwarepackage.
©2011SiemensProductLifecycleManagementSoftwareInc.Allrightsreserved.SiemensandtheSiemenslogoareregisteredtrademarksofSiemensAG.D-Cubed,Femap,Geolus,GOPLM,I-deas,Insight,JT,NX,Parasolid,SolidEdge,Teamcenter,TecnomatixandVelocitySeriesaretrademarksorregisteredtrademarksofSiemensProductLifecycleManagementSoftwareInc.oritssubsidiariesintheUnitedStatesandinothercountries.Allotherlogos,trademarks,registeredtrademarksorservicemarksusedhereinarethepropertyoftheirrespectiveholders.X349883/11C
www.siemens.com/nx
ContactSiemensPLMSoftwareAmericas 8004985351Europe 44(0)1276702000Asia-Pacific 85222303333
builder,objects,librariesanddocumen-tation.Andthistoolisnecessarytointeractivelycreateproduction-readydialogsandeasilyintegratethemintocustomapplicationsusingthetemplatecodegeneratorincludedwithUserInterfacestyler.
Availability and packagingNXDialogDesignersisavailableasanadd-onapplicationforallNXMachSeriessolutions.ApplicationsthatincludedialogsdesignedwithNXDialogDesignerscanberunbyanyNXMachSeriessolution.
NX
The User Interface Styler streamlines creation of interactive dialogs.
NX Dialog DesignersNXDialogDesignersprovidestwovisualdialogboxbuilderstocreateNXstyledialogsforuseincustomprograms:BlockStylerandUserInterfaceStyler.
Usingapoint-and-clickinterface,userscandevelopdialogsforOpenapplicationswithaminimumamountoftimeandeffort.NopreviousexperiencewithWindowsSDKorX/Motifisrequired.NXDialogDesignermanagesthesecomplexitiestocreateplatform-independentdialogs,withinteractiveobjectselection,designlogic,selectionfilter,selectionscope,inputvalidationandmacrosupportbuiltin.NXDialogDesignersincludeatemplatecodegeneratorforeasyintegrationwithcustomapplication.CodegeneratorsupportsC++,VB.NET,C#,JavaandKF.
Block StylerBlockStylerisavisualuserinterfacebuilderthatmakesitpossibletointeractivelydesignportableNX-styleblock-baseddialogs.Block-baseddialogsareNXstandardforallnewdialogs.UsedinternallybySiemensdevelopers,BlockStylerprovidestheapplicationmodule,dialogbuilder,objects,librariesanddocumentationnecessarytointeractivelycreateproduction-readydialogs.BlockStyleristherecommendeddialogdesignerforallnewthird-partydialogs.
User Interface StylerUserInterfaceStylerisavisualdialogbuilderandisrecommendedformaintain-ingexistingcustomdialogs.UserInterfaceStylerprovidesapplicationmodule,dialog