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

Community Tip - Learn all about PTC Community Badges. Engage with PTC and see how many you can earn! X

How to Convert a Table of Coordinates (.pts file) into a Sketch Feature in Creo Parametric?

SS_11894517
2-Explorer

How to Convert a Table of Coordinates (.pts file) into a Sketch Feature in Creo Parametric?

I’m working on a project in PTC Creo where I need to plot hundreds of points on a curved surface based on predefined X, Y, Z coordinates. I’ve already created a table with these coordinates and successfully imported it into Creo, which generated an accurate set of points. However, in the Model Tree, the points are recognized as a Table Feature rather than a Sketch Feature. My goal is to have these points appear as part of a Sketch Feature to enable better manipulation and integration into downstream modeling tasks. Is there a way to directly import or convert these points (or a .pts file) into a sketch? Alternatively, are there any efficient workarounds or automated methods within Creo to achieve this? Any suggestions or guidance would be greatly appreciated.

8 REPLIES 8
StephenW
23-Emerald III
(To:SS_11894517)

I don't know how to import points to a sketch.

You can import as datum points, using points offset from coordinate system. Does that help?

You can also create one point at 0,0,0 and then use a pattern table to get your points.

StephenW_0-1736248956370.png

 

(1) Sketches in Creo are 2D representations of geometry, not 3D. Defined in a plane.

(2) Even if you could, trying to import hundreds of anything into a sketch is a recipe for disaster. There is a tendency for the sketch to become "unstable" which in turns leads to the user becoming (justifiably) unstable.

(3) Are you trying to use the points to build a surface? Depending on how the points are laid out on the surface you might want to look into the use of .ibl or "blended points" files. I've used these to model surfaces in the past. It's a relatively straightforward file format that lets you define a set of sections that are imported and converted into a surface. Maybe that would be a good approach for you.

Hey there, thanks a lot for your response. 
My final objective is to import the points which has to be placed "on a surface". (ref: the points image I have attached above have to be positioned on a surface which I find a bit tricky). To be entirely precise, the point coordinate data I have made in my table needs to be imported into creo and all those 100s of points have to be placed directly on the desired curved surface. 

Did you try what @StephenW suggested? Thats the best approach. Make a CSYS on the surface where you want the 0,0,0 to be and then import the points as a point feature using that CSYS. The pts file format is just X Y Z with spaces in between the numbers.

Yes @Chris3, I did try what @StephenW had mentioned initially. But, it only helps in importing the points & that`s where the main concern is. It`s showing as "Table 1" in the model tree and not as a sketch feature and hence I`m facing the issue of projecting the same set of points it directly on the curved surface path. The end goal is to extract the coordinates of all the points after projecting it on a surface which I find hard. 

Given your objective, may I propose this workflow:

1) import your points as you've done already and generate the TABLE1 datum point feature

2) create curve through these points 

pausob_0-1736444744312.png

(make it a straight-segment type of curve)

3) project the curve onto your surface

pausob_1-1736445139454.png

 

4) Hide everything except the projected curve

pausob_2-1736445186855.png

 

5) Export as STEP.  Make sure you tick off the "Export Datums" checkbox

pausob_3-1736445228404.png

 

 

Then parse the step file in your favourite text editor - the endpoints will be evident as the first and last CARTESIAN_POINTS of each segment:

pausob_5-1736445548251.png

 

 

If what @pausob suggested doesn't work for you then you could write a mapkey to add an axis and datum point that was coincident with the axis and surface and then just repeat that for all of the PNT names in the Table point feature.

 

To do this you would record a mapkey that creates an axis normal to whatever reference you want. Then use the find tool to find PNT1 or whatever point you want to start with, then pick your surface and the axis to make a new point on the surface. Save the mapkey and then use a program to repeat all of the lines of the mapkey that are needed only changing PNT1 for each new point.

 

so if your mapkey looks like this:

 

mapkey pnt ~ Command `ProCmdDatumAxis` ;~ Command `ProCmdMdlTreeSearch` ;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `*PNT1*`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Datum`;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `FRONT`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Activate `Odui_Dlg_00` `stdbtn_1`;~ Command `ProCmdDatumPointGeneral` ;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Surface`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTab` 1 `Misc`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTypes` 1 `All`;\
mapkey(continued) ~ Activate `selspecdlg0` `EvaluateBtn`;~ Activate `selspecdlg0` `ApplyBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `CancelButton`;~ Activate `Odui_Dlg_00` `stdbtn_1`;

 

then you write a program / chatGPT / use Excel to make it into this:

 

mapkey pnt ~ Command `ProCmdDatumAxis` ;~ Command `ProCmdMdlTreeSearch` ;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `*PNT1*`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Datum`;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `FRONT`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Activate `Odui_Dlg_00` `stdbtn_1`;~ Command `ProCmdDatumPointGeneral` ;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Surface`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTab` 1 `Misc`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTypes` 1 `All`;\
mapkey(continued) ~ Activate `selspecdlg0` `EvaluateBtn`;~ Activate `selspecdlg0` `ApplyBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `CancelButton`;~ Activate `Odui_Dlg_00` `stdbtn_1`;\
mapkey(continued) ~ Command `ProCmdDatumAxis` ;~ Command `ProCmdMdlTreeSearch` ;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `*PNT2*`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Datum`;\
mapkey(continued) ~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicNameLayout.BasicNameList` \
mapkey(continued) `FRONT`;~ Activate `selspecdlg0` `EvaluateBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `ApplyBtn`;~ Activate `selspecdlg0` `CancelButton`;\
mapkey(continued) ~ Activate `Odui_Dlg_00` `stdbtn_1`;~ Command `ProCmdDatumPointGeneral` ;\
mapkey(continued) ~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Close `selspecdlg0` `SelOptionRadio`;\
mapkey(continued) ~ Select `selspecdlg0` `SelOptionRadio` 1 `Surface`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTab` 1 `Misc`;\
mapkey(continued) ~ Select `selspecdlg0` `RuleTypes` 1 `All`;\
mapkey(continued) ~ Activate `selspecdlg0` `EvaluateBtn`;~ Activate `selspecdlg0` `ApplyBtn`;\
mapkey(continued) ~ Activate `selspecdlg0` `CancelButton`;~ Activate `Odui_Dlg_00` `stdbtn_1`;

 

and so on where all you are doing is changing the point name from PNT1 to PNT2 and so and so forth for each block of mapkey output (always end without the \ but you need it for all of the continuing lines)

StephenW
23-Emerald III
(To:SS_11894517)

@Chris3 & @pausob are coming up with great methods of extracting data and all I can think of is, well, once I get the points in and get them projected, I would just measure each one and make an X-Y-Z spreadsheet...Brute force! In a few hours, or days, I'll have a spreadsheet riddled with typos and transposed numbers!!! 😂🤣 That's best case scenario...for worst case is a pencil and paper with typos and transposed numbers! How do i know, well...

StephenW_0-1736457339793.png

 

Announcements
NEW Creo+ Topics: Real-time Collaboration


Top Tags