surface slope arrows

Hi, is it possible in Bricscad make on surface slope arrows?

I want to get it.

Tnx,

Helena

Welcome!

It looks like you're new here. Sign in or register to get started.

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.
    Site faviconBIMROOF command - BricsCAD BIM | Bricsys Help Center

    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.
    Site faviconDMANGLE3D command - BricsCAD Lite & Pro | Bricsys Help Center

  • Wot, not poss even with a TIN surface?

  • Tnx, I design roads. I want to find out slope landscape. It is not possible?

  • edited February 16

    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.

    find maximum slop in 3d face

  • You can use Site faviconADDSURFACELABELS command - BricsCAD Lite & Pro | Bricsys Help Center

    to create slope labels. To do this you will need to have already created a Site faviconTIN command - BricsCAD Lite & Pro | Bricsys Help Center
    surface to work with.

  • 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)
    

  • edited February 20

    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

  • “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

  • Here's my attempt, laboriously calculated by drawing it, and manually annotated! Would love to have automated it, using TIN if necessary.

  • @Hela Have you tried _addSurfaceLabels in combination with CivilExplorer settings? It should behave as a dynamic label similar to C3D. That's at least how I use it for small projects.

  • 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?

  • @Tom Foster Correct, only works with TIN objects, no other object types

  • 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.

  • 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.

  • Hi, @Tom Foster! How you made this what you send like printscreen? with command _addSurfaceLabel?

  • 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!

  • So, you made this arrows using a series of commands by hand? Uh!

  • Uh yes! Of course, once made, copied many, oriented and text-edited.

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.