It took me a while to understand the printout. So you have printed the coordinates of three random edges? Can you include your full code, including the printing?

It usually helps me to use non-random numbers so you can spot patterns faster.

Are you working with an assembly or drawing perhaps? That there is a transformation in between the two methods?

I am working in a drawing. I have a view where I need to filter all the visible edges of a part to find the right spot for attaching a welding symbol. To Filter and to set the attachment point for the welding symbol I’ve tried to request the coordinates of the edges. With a foreach-loop I am retrieving these coordinates of every visible edge. To get the coordinates I know the two ways which I’ve described in the text on top. I was wondering why I wasn’t able to get the edge which I wanted to.
The print out on top is - like you said - the result of the coordinates of 3 edges. I’ve requested the coordinates of the points of the edges in two different ways and that is wat irritates me - the results are different…

Not necessarily. Your ICurve might be untrimmed (e.g. infinite), that is why you do not have end point in ILineParams so LineParams really defines a vector of the line, to find end points you need to check if ICurve::IsTrimmedCurve, if so you can ICurve::GetEndParams and ICurve::Evaluate at both ends to find the coordinates. If curve is not trimmed your end params will be -1000 and 1000 for line and it will not match the end coordinates of your edge so in this case you need to find end params from the edge (but ICurve returned from IEdge should be trimmed unlike the ICurve returned from ISketchSegment). If your curve is trimmed (should be your case) then end params will be 0 and 1 and when you evaluate at these params you should get exact same coordinates as you have in ICurveParamData