UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

151 lines (118 loc) 8.49 kB
--- name: ptc-windchill description: "Automate Windchill PLM workflows through OData APIs, inspect Workgroup Manager integration, and troubleshoot MethodServer operations." category: enterprise risk: safe source: self source_type: self date_added: "2026-08-26" tags: ["ptc-windchill", "pdmlink", "plm", "workgroup-manager", "odata-rest", "methodserver", "claude"] tools: ["claude", "cursor", "gemini", "codex"] --- # PTC Windchill PLM Engineering AI Skill Guide (Claude) ## Overview & Engine Architecture PTC Windchill is an enterprise-scale Product Lifecycle Management (PLM) platform powering product data management (PDM), multi-CAD data vaulting, multi-level Engineering Bill of Materials (eBOM/mBOM), and formal Change Management (PR $\rightarrow$ CR $\rightarrow$ CN). Windchill runs on a distributed Java architecture consisting of the **ServerManager**, **MethodServer**, **BackgroundManager**, **Info*Engine**, and client-side **Workgroup Managers (WWGM)** for Creo, SolidWorks, NX, and CATIA. Claude operates as a Principal PLM Systems Architect and Windchill Enterprise Administrator, specializing in **Windchill REST / OData API automation**, **MethodServer performance tuning (`xconfmanager`)**, **WWGM CAD workspace synchronization**, and **workflow process orchestration**. ### PTC Windchill Core Architecture & Runtime Stack ``` ┌─────────────────────────────────────────────────────────────┐ PTC Windchill PLM Architecture Client & Authoring Ingress ├── Windchill Web UI & Creo View 3D Lightweight Visualizer ├── Windchill Workgroup Manager (Creo, SolidWorks, CATIA) └── Windchill REST / OData Web Services Ingress Enterprise Business Logic Layer ├── MethodServer (Main User Request & Query Processing) ├── BackgroundManager (Asynchronous Queues & Publishing) └── Windchill Workflow & Lifecycle State Promotion Engine Persistence & Storage Layer ├── RDBMS Metadata Repository (Oracle Database / SQL Server)│ └── Windchill Content Vault (Blob storage, replica caches) └─────────────────────────────────────────────────────────────┘ ``` --- ## Operational Capabilities & Agent Directives 1. **OData REST API Automation**: Author Python scripts interacting with Windchill's REST API (`/Windchill/servlet/odata/v1/ProdMgmt/`) to extract multi-level indented BOMs, check out/in `WTPart` records, and link CAD documents. 2. **Server Configuration & `xconfmanager`**: Manage declarative server property updates in `site.xconf` and propagate changes safely into `wt.properties`. 3. **WWGM Workspace & Cache Remediation**: Diagnose CAD check-in failures, corrupted local client workspaces (`%APPDATA%\PTC\Windchill\CC`), and SSL Java keystore trust issues. 4. **Change Management (CMII) & Workflow Triage**: Troubleshoot stalled Change Notices (CN), orphaned workflow tasks, and unassigned product context roles. --- ## Production Python Automation: Automated Multi-Level Indented BOM Extractor (OData) Save this script as `extract_windchill_bom.py` to extract multi-level indented BOM structures via Windchill OData REST endpoints: ```python """ PTC Windchill OData REST API Multi-Level BOM Extractor Traverses WTPart structures to generate indented eBOM hierarchies. """ import sys import os import requests from requests.auth import HTTPBasicAuth import json WINDCHILL_BASE = "https://windchill.enterprise.io/Windchill/servlet/odata/v1" AUTH = HTTPBasicAuth("admin_user", "SecurePLMPassword!") def get_part_by_number(part_number: str) -> dict: url = f"{WINDCHILL_BASE}/ProdMgmt/Parts" params = {"$filter": f"Number eq '{part_number}'", "$expand": "Attributes"} res = requests.get(url, auth=AUTH, params=params, verify=True) res.raise_for_status() data = res.json() items = data.get("value", []) return items[0] if items else None def get_child_parts(part_id: str) -> list: url = f"{WINDCHILL_BASE}/ProdMgmt/Parts('{part_id}')/Uses" res = requests.get(url, auth=AUTH, verify=True) if res.status_code == 200: return res.json().get("value", []) return [] def traverse_bom(part_number: str, level: int = 0): part = get_part_by_number(part_number) if not part: print(f"{' ' * level}• Part '{part_number}' not found.") return part_id = part.get("ID") part_name = part.get("Name", "Unnamed") part_state = part.get("State", {}).get("Value", "INWORK") version = f"{part.get('Version', 'A')}.{part.get('Iteration', '1')}" indent = " " * level print(f"{indent}• [{level}] {part_number} - {part_name} (Rev: {version}, State: {part_state})") children = get_child_parts(part_id) for child in children: child_num = child.get("Number") if child_num: traverse_bom(child_num, level + 1) if __name__ == "__main__": print("--- [FETCHING WINDCHILL INDENTED eBOM] ---") traverse_bom("ASM-001042-00", level=0) ``` --- ## Technical Troubleshooting Matrix | Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway | | :--- | :--- | :--- | | **WWGM Check-In Fails: `Unable to Connect to Server`** | The client JRE does not trust the Windchill server SSL certificate, or local cache is corrupted. | 1. Import Windchill SSL certificate into client Java truststore: `keytool -import -alias wc_ssl -file server.crt -keystore cacerts`.<br>2. Clear local WWGM client cache: Delete `%APPDATA%\PTC\Windchill\CC`. | | **Promotion Request Stuck in `Pending Approval`** | The workflow assigned task to a Product Role (e.g. `Approver`) that has no assigned members in the team context. | 1. In Windchill, navigate to *Site $\rightarrow$ Utilities $\rightarrow$ Workflow Administration*.<br>2. Find stuck process instance $\rightarrow$ Check **Task Assignments**.<br>3. Open *Product Team* page and add users to the required Role. | | **MethodServer Crashes: `java.lang.OutOfMemoryError: Java heap space`** | High volume of CAD visualization thumbnail generation or unindexed large product structure queries. | 1. Increase MethodServer max heap in `site.xconf`: `xconfmanager -s wt.method.maxHeap=16384 -t codebase/wt.properties -p`.<br>2. Offload heavy thumbnail conversions to dedicated **CAD Worker Agents**. | | **Content Replication Fails: File Missing in Local Vault** | Background file replication job stalled or network timeout between master and replica vault servers. | 1. In Windchill, open *Site $\rightarrow$ Utilities $\rightarrow$ File Server Administration*.<br>2. Inspect replication queues for failed synchronization transactions.<br>3. Run manual synchronization for the target folder. | --- ## Command Line Syntax & Server Administration ```bash # 1. Update Windchill Configuration Parameter Safely via xconfmanager cd C:\ptc\Windchill\codebase xconfmanager -s wt.session.timeout=60 -t wt.properties -p # 2. Check Real-Time Server Manager & MethodServer Process Status windchill wt.manager.ServerManager # 3. Launch Interactive Windchill Java Shell windchill shell # 4. Stop and Restart Background Queue Processing Engine windchill wt.queue.QueueControl stop windchill wt.queue.QueueControl start ``` ### Essential File & Directory Locations - **Master Declarative Config**: `C:\ptc\Windchill\site.xconf` - **Compiled Properties**: `C:\ptc\Windchill\codebase\wt.properties` - **MethodServer Logs**: `C:\ptc\Windchill\logs\MethodServer-*.log` --- ## Agent Operational Directive > **MANDATORY**: Never edit `wt.properties` directly by hand; always update `site.xconf` using `xconfmanager -s <property>=<value> -t <target> -p` to maintain configuration persistence across server builds and updates.