cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X

Vuforia, thingworx, and Windchill workflow integration

GianVal
15-Moonstone

Vuforia, thingworx, and Windchill workflow integration

Hello,
I'm trying to figure out how to properly connect and set up the information flow between Vuforia, thingworx, and Windchill.
My company works with windchill PLM. Here, as you know, we store relevant information about products and projects.
I intend to structure an AR experience in which the user could click on any component/part of the represented 3D entity (starting from an imported pvz, of course) and retrieve updated information from windchill database (ranging from documentation to useful files).
do you have any advice or updated guide addressing this workflow?

Many thanks

ACCEPTED SOLUTION

Accepted Solutions
pandersson
14-Alexandrite
(To:GianVal)

This is one way:

I expect you to have the partnumber from point  2 above

Create a service in you windchill connector mapped to ProdMgmt/Parts/getPart 

In $filter add your search criteria in this way:

Number eq '1231414'

This will give you the partinformation including the OID from Windchill, other services will give you related documents etc .

 

Or you can call the api direct but then you need to manage the authentication in another way.

/Windchill/servlet/odata/v4/ProdMgmt/Parts?%24filter=Number%20%20eq%20'0000000027'&%24count=false
Response:
{ "@odata.context": "http://......../Windchill/servlet/odata/v4/ProdMgmt/$metadata#Parts", "value": [ { "CreatedOn": "2018-12-06T12:47:33Z", "ID": "OR:wt.part.WTPart:758770", "LastModified": "2019-02-14T14:51:27Z", "AlternateNumber": null, "AssemblyMode": { "Value": "component", "Display": "Component" }, "BOMType": null, "CabinetName": "Default", "ChangeStatus": null, "CheckOutStatus": "", "CheckoutState": "Checked in", "Comments": "Assigned to operations in new build of process", "ConfigurableModule": { "Value": "standard", "Display": "No" }, "CreatedBy": "Jonas Ljungsten", "DefaultTraceCode": { "Value": "0", "Display": "Untraced" }, "DefaultUnit": { "Value": "ea", "Display": "each" }, "EndItem": false, "FolderLocation": "/Drone/Parts", "FolderName": "Parts", "GatheringPart": false, "GeneralStatus": null, "Identity": "Part - 0000000027, Frame_Battery, A.2 (Design)", "Latest": true, "LifeCycleTemplateName": "Basic", "ModifiedBy": "Dan Li", "Name": "Frame_Battery", "Number": "0000000027", "ObjectType": "Part", "OrganizationReference": "{\"type\":\"text\"}", "PhantomManufacturingPart": false, "Revision": "A", "ShareStatus": null, "Source": { "Value": "make", "Display": "Make" }, "State": { "Value": "INWORK", "Display": "In Work" }, "Supersedes": null, "TypeIcon": { "Path": "http://............./Windchill/wtcore/images/part.gif", "Tooltip": "Part" }, "Version": "A.2 (Design)", "VersionID": "VR:wt.part.WTPart:305207", "View": "Design" } ] }

 Full documentation of Windchill's RestApi can be found here: http://............./Windchill/netmarkets/html/wrs/doc.html

View solution in original post

7 REPLIES 7
pandersson
14-Alexandrite
(To:GianVal)

I would approach it in this way.

  1. Setup you windchill connector
  2. use the method described here to expose data from the pvz-file http://support.ptc.com/help/vuforia/studio/en/#page/Studio_Help_Center%2Fcad_metadata_api.html
  3. use number (OID doesn't get thru in Illustrations) from step 2 as a key for the Windchill queries to get the Windchill info 

Per

GianVal
15-Moonstone
(To:pandersson)

please can you give me details about point #1?

pandersson
14-Alexandrite
(To:GianVal)

Thingworx WindchillSwaggerConnector gives you access to the restapi of Windchill.

You may need to patch the windchill system to enable this, depends on the windchill version.

This is used for Thingworx navigate, I would start with https://support.ptc.com/help/thingworx/navigate/r9.2/en/#page/ThingWorx_Navigate%2FInstall_License_and_Configure_ThingWorx_Navigate.html%23 to understand how to setup the connector.  

 

(You need to have a license Navigate/Connected PLM/etc to do this)

GianVal
15-Moonstone
(To:pandersson)

ok we already have configured twx navigate, so i suppose we also have properly set up the swagger connector.

now my question is: how to perform the point n.3? how to query windchill infos?

 

many thanks

pandersson
14-Alexandrite
(To:GianVal)

This is one way:

I expect you to have the partnumber from point  2 above

Create a service in you windchill connector mapped to ProdMgmt/Parts/getPart 

In $filter add your search criteria in this way:

Number eq '1231414'

This will give you the partinformation including the OID from Windchill, other services will give you related documents etc .

 

Or you can call the api direct but then you need to manage the authentication in another way.

/Windchill/servlet/odata/v4/ProdMgmt/Parts?%24filter=Number%20%20eq%20'0000000027'&%24count=false
Response:
{ "@odata.context": "http://......../Windchill/servlet/odata/v4/ProdMgmt/$metadata#Parts", "value": [ { "CreatedOn": "2018-12-06T12:47:33Z", "ID": "OR:wt.part.WTPart:758770", "LastModified": "2019-02-14T14:51:27Z", "AlternateNumber": null, "AssemblyMode": { "Value": "component", "Display": "Component" }, "BOMType": null, "CabinetName": "Default", "ChangeStatus": null, "CheckOutStatus": "", "CheckoutState": "Checked in", "Comments": "Assigned to operations in new build of process", "ConfigurableModule": { "Value": "standard", "Display": "No" }, "CreatedBy": "Jonas Ljungsten", "DefaultTraceCode": { "Value": "0", "Display": "Untraced" }, "DefaultUnit": { "Value": "ea", "Display": "each" }, "EndItem": false, "FolderLocation": "/Drone/Parts", "FolderName": "Parts", "GatheringPart": false, "GeneralStatus": null, "Identity": "Part - 0000000027, Frame_Battery, A.2 (Design)", "Latest": true, "LifeCycleTemplateName": "Basic", "ModifiedBy": "Dan Li", "Name": "Frame_Battery", "Number": "0000000027", "ObjectType": "Part", "OrganizationReference": "{\"type\":\"text\"}", "PhantomManufacturingPart": false, "Revision": "A", "ShareStatus": null, "Source": { "Value": "make", "Display": "Make" }, "State": { "Value": "INWORK", "Display": "In Work" }, "Supersedes": null, "TypeIcon": { "Path": "http://............./Windchill/wtcore/images/part.gif", "Tooltip": "Part" }, "Version": "A.2 (Design)", "VersionID": "VR:wt.part.WTPart:305207", "View": "Design" } ] }

 Full documentation of Windchill's RestApi can be found here: http://............./Windchill/netmarkets/html/wrs/doc.html

GianVal
15-Moonstone
(To:pandersson)

Many thanks. It would be very useful to have full documentation showing this entire process (step by step guide) from vuforia to windchill through thingworx... anyway we'll work on it.

MA8731174
14-Alexandrite
(To:GianVal)

hey @GianVal if you have already done this task would you please give me your feedback from you valuable time about the connectivity.

 

In my company we are using windchill and we have pvz(ilu) files in the windchill which we use in our experience but we upload them manually in the vuforia studio for each experience. now i want to get these files dynamically from windchill and assign it to model in vuforia studio because as customer wants to see the animation for each model and i want to get these files dynamically. I have been working with thingworx (not thingworx navigate) and vuforia studio since one year. If you have done this connectivity would you pleae write about it. i have read some documentation and they are not that clear.

 

Thank you 🙂

Announcements

Top Tags