Jump to content

Mr. Heinrich von Zadow

  • Content Count

  • Joined

  • Last visited

  • Days Won


Mr. Heinrich von Zadow last won the day on August 12 2020

Mr. Heinrich von Zadow had the most liked content!

Community Reputation

1 Neutral

About Mr. Heinrich von Zadow

  • Rank

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

263 profile views
  1. Hi Zhen, just a small addition in case someone else stumbles across your question. For an actual (perfect) circle you can not use an F-Spline. Behind the scenes an F-Spline is a B-Spline curve, optimized with respect to fairness and constrained at start, end, start-tanget, end-tangent, curvature, enclosed area, etc... That means, if you set the area as the area of a circle and also match the tangent at start and end you will get something that is really close to a circle, but not a perfect circle. For an actual (quarter of a) circle, you need a NURBS curve with 3 control points. The weight of the center point needs to be set to 0.5*sqrt(2). In order to keep the area constant while moving points 1 and 3 (in your picture), I suggest a delta shift and a brent (you can search the forum for nested optimization to see how the brent algorithm can be used to adjust the area to a certain target value). Cheers, Heinrich
  2. Hi Gunnar, very good. If you would like me to take a look at the mesh, feel free to upload it. Best regards, Heinrich
  3. Hi Gunnar, You imported an STL file. Try using s STEP or IGES if you can. (These are not discretized, but NURBS-based) If you can get your hands on such a format, you can technically get to the underlying surfaces. However, they might be untrimmed and hence, not work for generation of your panelmesh. To check, create a BRepPart and use right-click "extract surfaces". If STL is all you can get, you don't want to put that in a BRep, but rather use Trimeshes and Solids. For trimeshes (maybe you can get one with higher resolution) you could try the right-click "split by angle". This should make quick work of the reparametrization of the individual faces. Best regards, Heinrich
  4. Dear Rohit, if by download you mean export, you can simply select the geometry objects you would like to export and choose File>Export> and from there choose the format you need. See below screenshot for a list of available formats (depending on your license the list may vary): Best regards, Heinrich
  5. Dear Zhen, in principle, yes. You could set up a second delta shift perpendicular to the first one and combine the two in a delta product. It would be way easier if you could just set up a fully parametric model. Or is there a specific reason why you need to start from an existing/imported trimesh? BR, Heinrich
  6. Hi Zhen, in this case, I recommend using a simple delta shift. I renamed your curves: source (red), target(green) and calculated the y-offset between the two: "difference (black)". Now you can set up a delta shift to transform your source based on difference --> this will make it match exactly with target. Voila. Best regards, Heinrich test_bspline_HvZ.fdb
  7. Dear Zhen, if you could attach your latest project file I am happy to take look. Best regards, Heinrich
  8. Hi Armagan, firstly, from a CFD viewpoint I'd recommend you to go for a cylindrical domain, especially if you are going to split it into just a segment. I'd probably just create a domain-segment of 120° and then substract the wind turbine from it via boolean op. BR, Heinrich
  9. Hi Rull, what you see when extracting surfaces from a solid ( it doesn't matter if it's a Parasolid import, or any other NURBS-based format, such as IGES, STEP or just a solid modeled in CAESES) are the "underlying surfaces". A few explaining words: BRep is actually short for "boundary representation" and gives you a hint about what's happening here. Underlying NURBS surfaces + a set of boundary curves (along with some other information) define the final shape. This is very convenient since it allows trimming (and cutting holes, etc.) without actually having to reparameterize the surfaces. If you "ectract" them, you will see the complete surfaces... I didn't quite understand you question/problem about removing this face though. Maybe you can explain it again? Best regards, Heinrich
  10. Hi Chris, for some algorithms, there is such an option (e.g. TSearch offers a "Variable Tolerance" -- if all design variables do not change significantly w.r.t. this value then the engine is stopped), but not for all. Cheers, Heinrich
  11. Dear Chien, that's hard to say. I'd probably start off by adjusting the shape manually(e.g. via delta shifts) while keeping it parametric (so you can still use that automated fitting procedure). Cheers, Heinrich
  12. Hello Armagan, from what I can see, this is just a rendering issue -- the geometry might be perfectly smooth. If you toggle wireframe view, you will see the underlying triangulation. However, unless you a planning on exporting tesselated data (i.e. STL) this is probably nothing to worry about. If you still want finer triangulation, you can change i.e. the maximum chord height of your BRep: Cheers, Heinrich
  13. Dear Chien, it looks like the maximum thickness position of the red profile is a bit too far towards the leading edge. However, the green profile also looks a bit "different" to my eye, so I doubt that you will get a much better fit when sticking to the NACA4DS. You could try to adjust the design variables manually for one of the sections just to get an idea if there is a lot of room for improvement. About the "weighting": In the feature I gave to you earlier, I simply check for the maximum deviation between points and profile like this: genericcurve errorFunction(){ .setx(t) .sety(profile.getShortestDistanceSquared(linearInterpolation.getpos(t))) .setz(0) } parameter error(errorFunction.getMax(1)) If we assume that your profile starts at t=0 (trailing edge, suction side), then goes through t=0.5 (leading edge) and back to t=1 (trailing edge, pressure side), you could put more "weight" to the leading edge region as follows: 1. You define a "weight distribution" --> it's just a function running from x=0 to x=1 with it's maximum at x=0.5. 2. you multiply each squared error with the corresponding evaluation of the weight distribution. The generic curve should the read like this: .sety(profile.getShortestDistanceSquared(linearInterpolation.getpos(t))*weightFunction.getPos(t):y) 3. Instead of just checking for the maximum quadratic error like before, you now use the area below the error function as objective measure for your optimization: parameter error(errorFunction.getArea(0,2)) You can play around and tweak things by manually adjusting the shape of the weight function. E.g. if you want to emphasize both, the leading and trailing edge region, your function could look like this: The old fitting result of my example looked like this (green: original, red: fit): now, with the weighting included, it looks like this: Keep in mind, that the result will always be only as good as the ability of your parametric profile to conform to your given data... I attached the project file for your convenience. Best regards, Heinrich testCaseWeightedLE.fdb
  14. Dear Hasan, that's hard to answer without taking a look at the project file. If you attach it, I'm happy to take a look. Cheers, Heinrich
  15. Dear Chien, from the picture it looks, as if you have an angle of attack unequal to zero. My suggestion would be to extract this value and rotate the profile such that the leading and trailing edge both have a y equal to 0. Let's see how this turns out -- my feeling is, that this should also reduce the large amount of camber you see in the red profile right now. Cheers, Heinrich
  • Create New...