130 likes | 150 Views
Explore data integration using STEP models and system integration via CADScript across multiple CAD systems. Learn about Complimentary Interoperability Approaches and Multi-CAD application examples.
E N D
STEP and Scriptable CAx Tool Integration Doug Cheney Senior Software Engineer International TechneGroup Incorporated
Native System Target System Native Model Target Model Neutral Model Systems Engineer Component Engineer Remote System Local System Local Model Remote Model CADScript CADScript Complimentary Interoperability Approaches • Data integration : Exchange product data via a STEP model representation • Complete, standalone definition of model • Requires two model conversions: native to standard to target • Native model is duplicated in standard and target system formats • Systems integration : Share product data via CADScript--a neutral application programming interface • Only data and behavior needed by applications • Requires access to licensed installations of CAD systems • Native model stays in native system
www.iti-oh.com/pdi www.python.org IGES & STEP CATIA Pro/ENGINEER I-DEAS UG and Parasolid CADScript Overview Multi-CAD data and algorithm access with scripting ease and platform independence
Complimentary Usage Scenarios • Data integration using STEP • Multi-disciplinary repository of all product data • Long-term data retention • Legacy data migration • Systems integration using CADScript • Multi-CAD application • Collaborative engineering • Cross-platform application • Multi-system assembly design
Multi-CAD Application Example • Application Domain • CAD Model Quality Control • Key CAD Interface Requirements • Support for each of the major CAD applications (e.g., CATIA, I-DEAS, Pro/E and UG) and formats (IGES, STEP, Parasolid) • Access to native CAD data and algorithms (no data exchange) • Identical diagnostic algorithms for all systems • Focus on diagnostic development, not system integrations • Application Integration Success Metrics • CADScript V2.0 – 130K lines of C++CADScript V3.0 – 29K lines of Python • CADScript V3.0 – 19 DiagnosticsCADScript V4.0 – 40 Diagnostics
Multi-CAD Application Architecture Menu Callbacks Application Algorithms Application User Interface CADScript Pro/E CATIA UG Customer Software ITI Software I-DEAS PDE/Lib CAD Vendor Software
Collaborative Engineering Example • Application Domain • CAD Model View and Mark-up • Key CAD Interface Requirements • Support for each of the major CAD systems (CATIA, I-DEAS, Pro/E and UG) • Model query using precise measurements (i.e., no translation) • Assembly based queries • Web based client/server architecture • High performance and large scalability • Application Integration Success Metrics • Very short time-to-market for “production-ready” (multi-CAD) visualization product (less than 6 months)
Collaborative Engineering Architecture Client Server class PartSession: def demo(self) def demoStep2(self, partFile, tesTol, edgeTol) def display(self) def area(self, uniqId) def length(self, uniqId) def modifyParameter(self, uniqId, rhs, type) … Application Server CADServer HTTP (URL) requests URL Call Mapper Web Browser Calls Java Applet CADScript Customer Software ITI Software Pro/E CATIA UG CAD Vendor Software I-DEAS PDE/Lib Example browser request: http://host.iti.com:8085/demoStep2?partFile=TJ_SOLE.model&tesTol=.01&edgeTol=.01
Cross-Platform Application Example • Application Domain • Coordinate Measuring Machine (CMM) • Key CAD Interface Requirements • Access UNIX-only CAD (CATIA V4) data from an NT client • The application requests a tessellated version of the CAD model from the server, the precise CAD geometry/topology is never sent to the client • Application Integration Success Metrics • Realization of NT-only solution with access to UNIX data
Cross-Platform Application Architecture NT Client UNIX Server class CadModel: def displayPart() def gridFace() def projectPoints() … Application Client Menu Callbacks class ApplSession: def displayPart() def gridFace() def projectPoints() … Application Server HTTP (URL) requests CADServer URL Call Mapper CMM Application C++ Proxy Layer (automatically generated from PartSession.py) CADScript Customer Software ITI Software Pro/E CATIA UG CAD Vendor Software I-DEAS PDE/Lib
Multi-CAD Assembly Design Example • Application Domain • Parametric Assembly Design • Key CAD Interface Requirements • Dynamic access to the latest version of component models in any supported CAD system (CATIA, I-DEAS, Pro/E and UG) • Interact with all components within a single CAD system user interface • Model query using precise measurements (i.e., no translation) • Parametric modification of remote components driven by local parameters • Application Integration Success Metrics • Enabling true multi-CAD assembly design!
Multi-CAD Assembly Design Architecture Client Server class PartClient: def cmdAddExtPart() def cmdExtPartMass() … Application Client Menu Callbacks class PartSession: def openModel() def parameters() def modifyParameter() … Application Server HTTP (URL) requests CADServer URL Call Mapper Unigraphics Python Proxy Layer (automatically generated from PartSession.py) CADScript CADScript Customer Software ITI Software Pro/E CATIA UG CAD Vendor Software I-DEAS PDE/Lib
Summary • System integration is a complimentary approach to data integration using STEP • System integration empowers dynamic usage scenarios • Instant access to the latest versions of native CAD models • Precise measurements performed by native CAD systems • Consistent parametric modifications across CAD systems • Flexible software architecture enabling remote CAD system control via URL calls • Rapid application development without software integration nightmares (no build problems) • Simple, concise, and intuitive application logic • Multi-CAD assembly design example: client is only 570 lines of Python code, server is only 551 lines