I thought I saw something about raindrop on surface this is the slope arrow. TINWATERDROP ?
Yes CIV3D has a arrow on every triangle built in option. I guess could look at triangles and have a formula based on the 3 XYZ for maximum slope.
https://www.cadtutor.net/forum/topic/70748-find-maximum-slop-in-3d-face/
surface slope arrows
Comments
-
Hello.
The Slope Arrow tool (from Revit) is not implemented in Bricscad.
For roofs, you could experiment with the BIMROOF command, which allows to dynamically input the slopes.
Other sloped surfaces, can be created manually.
One way would be to rotate the surface using one ot the rotate tools.
An alternative would be to use a 3D angular constraint to parametrize the slope angle and adjust it dynamically.
1 -
Wot, not poss even with a TIN surface?
0 -
Tnx, I design roads. I want to find out slope landscape. It is not possible?
0 -
I thought I saw something about raindrop on surface this is the slope arrow. TINWATERDROP ?
Yes CIV3D has a arrow on every triangle built in option. I guess could look at triangles and have a formula based on the 3 XYZ for maximum slope.
0 -
You can use
to create slope labels. To do this you will need to have already created a surface to work with.1 -
How is this computed, I tried from the normal of the triangle, but it looks wrong
import traceback from pyrx_imp import Rx, Ge, Gi, Db, Ap, Ed, Cv print("added command tinoverruleon") print("added command tinoverruleoff") def OnPyUnloadApp() -> None: tinoverruleoff() def centroid(tri): CX1 = (tri[0].x + tri[1].x + tri[2].x) / 3 CX2 = (tri[0].y + tri[1].y + tri[2].y) / 3 CX3 = (tri[0].z + tri[1].z + tri[2].z) / 3 return Ge.Point3d(CX1, CX2, CX3) class TinDrawOverrule(Gi.DrawableOverrule): def __init__(self): Gi.DrawableOverrule.__init__(self) def isApplicable(self, subject: Rx.RxObject) -> bool: return True def worldDraw(self, subject, wd) -> bool: try: flag = self.baseWorldDraw(subject, wd) tin = Cv.CvDbTinSurface.cast(subject) geo: Gi.Geometry = wd.geometry() traits = wd.subEntityTraits() traits.setColor(1) for tri in tin.triangles(True): cen = centroid(tri) u: Ge.Vector3d = (tri[1] - tri[0]).normalize() v: Ge.Vector3d = (tri[2] - tri[0]).normalize() n = u.crossProduct(v) d = n + Ge.Vector3d.kZAxis s = cen + (d * 6) e = cen - (d * 6) geo.polyline([s, e], n) except Exception as err: traceback.print_exception(err) finally: return flag overrule = TinDrawOverrule() desc = Cv.CvDbTinSurface.desc() @Ap.Command("tinoverruleon") def tinoverruleon(): try: overrule.addOverrule(desc, overrule) overrule.setIsOverruling(True) except Exception as err: traceback.print_exception(err) @Ap.Command("tinoverruleoff") def tinoverruleoff(): try: if overrule.removeOverrule(desc, overrule) == Db.ErrorStatus.eOk: overrule.setIsOverruling(False) except Exception as err: traceback.print_exception(err)
0 -
There is a mathematical formula did find it. Now where is it.
Maybe https://math.stackexchange.com/questions/1183833/how-to-find-gradient-of-3d-plane-defined-by-3-points
0 -
“Note: if you want to know the actual angle of slope, then you need to do some trigonometry”
I had that part right, getting the slope is weird. I’m getting old. This is pretty close
1 -
Here's my attempt, laboriously calculated by drawing it, and manually annotated! Would love to have automated it, using TIN if necessary.
0 -
I never went there before, tho I've played with TINs.
CivilExplorer first says 'no civil objects in this drawing'; click Settings and I can get to the left hand panel in your pic above.
ADDSurfacelabels gets me as far as 'Select TIN surface', so am I right your suggestion only works with TIN surfaces, not 'other' surfaces as the original question?
0 -
@Tom Foster Correct, only works with TIN objects, no other object types
0 -
I made a Toolbar to control the display of TIN surfaces in CIV3D, what was lacking that there was no simple interface to set surface styles, you had to use TOOLSPACE, select surface, then style. Same as Civil Explorer. The toolbar works as what you want say 0.5 contours if more than one surface then asked which one all done via DCL's etc Same with the option "Off" so no display. Black button.
I redid the icons tidied them up, trying to find them again this was 1st attempt. Yes slope direction was a button.
I would like to try this with Bricscad what I don't have is some sample dwg's with say 1, 2, 3 or more surfaces, so if you can help please ZIP and post can provide a email via PM. Happy to provide the code for the price of a cup of coffee. It does need some hard coded surface contour style names. I did not do label styles but no reason why they could not be added.
0 -
Tnx @Sebastian . It work with command _addSurfaceLabel. I never use it. I will try to put on toolbar.
I find what printscreen you send . It is settings for surface. Ok. I understand.
0 -
Hi, @Tom Foster! How you made this what you send like printscreen? with command _addSurfaceLabel?
0 -
No, an arrow made of three Lines and a number made of TEXt, copied, oriented and edited many times, having determined each slope geometrically and read its angle in Properties!
0 -
So, you made this arrows using a series of commands by hand? Uh!
0 -
Uh yes! Of course, once made, copied many, oriented and text-edited.
0