Welcome to the COE Discussion Forum! 

 

To participate in the discussion forum, you must be logged in to the website.  If you forget your login information, please contact COE Headquarters at coe@coe.org or (800) 263-2255.

If you are new to the COE Discussion Forum and would like to participate, please register.

 

The COE 2008 Fall Industry Workshops

Experience two days of industry-focused education and hands-on training on the Dassault PLM solutions suite of products.  All education featured at the workshop is developed by and for users of CATIA®, ENOVIA®, DELMIA® and SIMULIA®.
 

Automotive
Oct. 15-16
Troy, Michigan

Aerospace & Defense
Oct. 27-28
Wichita, Kansas

Register by October 10 and Save $100


Forum Highlight: CATIA V6

 

Get Answers to Your V6 Questions
Dassault Systèmes answers user questions about CATIA V6.  Discuss these answers and propose new questions with end users from around the world in the CATIA V6 Forum.

COE DISCUSSION FORUM
Subject: Invert

You are not authorized to post a reply.   
Author Messages
IPHILLIPS

30 Jun 2005 04:40 PM
Does anyone know how to GSD invert a curve in a rule?

(Sorry if you saw this in another Area. I had forgotten that the KBE area existed.)
Maybe I'll get some success here.

I wish to do this:

if .......
{
invert(Curve.1)
}

So that the curve orientation is flipped.

Ian Phillips. FORCEFIVE AG, Munich, Germany
pwebb

07 Jul 2005 04:20 AM
You may already have the answer to this but just in case.....

You can't to an inverse operation with the knowledgeware language at this time as there isn't a constructor (as far as I know) to do the operation.

You have to create the two curves (forward and reversed) manually and create a rule to choose which one you want and then use the result curve in future operations. I've attached a screen grab of my session to show you what I mean.

Hope this helps.
pwebb

07 Jul 2005 04:22 AM
Wrong attachment sorry! Here's the right one.
pwebb

07 Jul 2005 04:24 AM
Finially here it is....


IPHILLIPS

07 Jul 2005 03:46 PM
Thanks Paul

I often used that method for UDFs where "spare" inverts are not seen. However my current problem is to take 12 curves and evaluate them. Depending on their position and other factors I may need to invert any number of them. I do not want 12 redendant inverts outside the rule waiting to be used.

My current workaround is the old V4 GSM trick of joining the curve to a line of known orientation, then breaking it again:
Curve.1=split(assemble(Line(Pt1,Pt2),Curve.1),Pt1,true)

Not the cleanest of methods. But it works. Oh for an invert()!

Ian Phillips. FORCEFIVE AG, Munich, Germany
COE-FORUM-USER

07 Jul 2005 07:01 PM
Hi Ian,

I don't known if this is going to help you
But …
Direction of a spline depends on the order you select
Input points.
If look at array of input points and try to reverse the order of points

So the first point will become last
this will invert dir of your spline

I hope this will help
IPHILLIPS

08 Jul 2005 08:11 AM
Thanks Les
But its not me creating the curves. They are inputs to a powercopy. This powercopy has to run robustly regardless of the orientation of the input curves.

Ian Phillips. FORCEFIVE AG, Munich, Germany
COE-FORUM-USER

11 May 2006 10:41 AM
Here's what I think:
Create a UDF catalog for the basic geomtry types: LN,CRV,PLN,SUR
Each UDF somehow evaluates the orientation (sorry, no clue here)
Each UDF also has user selctable parameters for the pos,neg of the three Axis vectors, provides the selected output.

When creating the Power copy, place the dead inputs in an "Input" body (per usual)
Then, in the construction Body, begin by "assigning" an orientation to the dead elements via the udfs.

Finally, build the PCPY.

This type of setup should ensure the sucess of the PCPY, regardless of Input element orintation...
IPHILLIPS

12 May 2006 03:22 AM
As there is no Right and Wrong orientation of a feature, the orientation must be evaluated in a context. In my case I look at the positions of my input curves relative to each other and invert them accordingly.

I have actually achieved a compact solition. Instead of the desired:

Curve.2=invert(Curve.1,true)

I have to use:

Curve.2=split(assemble(Line(Pt1,Pt2),Curve.1),Pt1,true)

I just want to refine it further if possible.

Ian Phillips. FORCEFIVE AG, Munich, Germany
You are not authorized to post a reply.
Forums > COE Forums > KBE > Invert



ActiveForums 3.6

    

401 North Michigan Avenue, Chicago, IL 60611-4267 | (312) 321-5153 | (800) COE-CALL (U.S.)