Major and Minor Grid Line Colors

Major and Minor Grid Line Colors

ChadForeman74
Contributor Contributor
1,639 Views
11 Replies
Message 1 of 12

Major and Minor Grid Line Colors

ChadForeman74
Contributor
Contributor

Is it true Max offers only ONE color for grid lines? Nowhere have I found the option to have separate colors for major and minor grid lines. I can't tell the difference between them with the same color! This seems like it would be an easy fix to an important issue.

Screenshot 2026-01-31 121251.png

0 Likes
Accepted solutions (1)
1,640 Views
11 Replies
Replies (11)
Message 2 of 12

spacefrog_
Advisor
Advisor

Yes, its true ... differentiation between major/minor only happens due to thickness

world axis gridlines are the thickest, than major gridlines somewhat heavier than the standard lines

BTW: major gridline intervall can be tweaked in GRid And Snap Settings->Home Grid


Josef Wienerroither
Software Developer & 3d Artist Hybrid
Message 3 of 12

ChadForeman74
Contributor
Contributor

Thank you for responding to my message, frog. Here's a snippet of what I have. As you can see I have grid spacing set to every inch with a major line every 12. That way I can visually see where one foot measurement lies because the major Line should look different from the "standard" grid line. But as you can see in the snippet, all I have is one big grid and the assumption that those are 1" x 1" grids. There's got to be a way to change that. If you were in metric you might have a grid that is every cm and then a major gridline every 10 or 100 or whatever. If the differentiation is because of thickness, why isn't the 1 foot line thicker?Screenshot 2026-02-01 132421.png

0 Likes
Message 4 of 12

haifeng_yuSEVKN
Autodesk
Autodesk

Hello @ChadForeman74, thank you very much for your post. I understand that you are experiencing an issue when customizing the grid system in 3ds Max. I looked into the issue and would like to confirm: if you zoom further out in the viewport, are you able to see the major grid line every 12 grid units? Thank you.



Haifeng Yu
Technical Support Specialist
0 Likes
Message 5 of 12

lauri_barnhart
Autodesk
Autodesk

Hi @ChadForeman74,

I wanted to check in and see if you still needed assistance, or if you found a solution to your question already? Let us know if you need further assistance by providing an update or if you have found a solution, please share it with the community so other members who may have the same question could learn from your experience.

All the best,

Lauri | Community Manager


Lauri | Community Manager
0 Likes
Message 6 of 12

haifeng_yuSEVKN
Autodesk
Autodesk
Accepted solution

hello @ChadForeman74, I looked into the issue and found that one possible workaround is to add a custom grid system on top of the default grid. However, please note that this suggestion is based on my research, and the script may contain bugs or require adjustments before it works properly in your environment.

Also, please be aware that we cannot take responsibility for any issues the script may cause. I recommend backing up your projects or testing the script in a safe environment before using it in production.

Here is the example:

If we run this in the script editor in 3ds Max:

global CustomGridOverlay

try(unRegisterRedrawViewsCallback CustomGridOverlay.drawCallback)catch()

struct CustomGridStruct
(
    enabled = true,
    gridSize = 1000.0,          -- visual half-size of grid
    spacing = 10.0,             -- synced from Max
    majorEvery = 10,            -- synced from Max

    minorColor = (color 90 90 90),
    majorColor = (color 140 140 140),
    xAxisColor = (color 220 80 80),
    yAxisColor = (color 80 220 80),

    fn syncFromMaxGrid =
    (
        spacing = getGridSpacing()
        majorEvery = getGridMajorLines()
        if majorEvery < 1 do majorEvery = 1
    ),

    fn drawLine p1 p2 c =
    (
        gw.setColor #line c
        gw.polyline #(p1, p2) false
    ),

    fn drawGrid =
    (
        if not enabled do return false

        syncFromMaxGrid()

        gw.setTransform (matrix3 1)

        local maxLines = gridSize / spacing
        if maxLines < 1 then return false

        for i = -maxLines to maxLines do
        (
            local pos = i * spacing
            local isMajor = (mod (abs i) majorEvery) == 0

            local lineColorX = if isMajor then majorColor else minorColor
            local lineColorY = if isMajor then majorColor else minorColor

            -- X axis horizontal line (Y=0)
            if i == 0 then
                lineColorX = yAxisColor

            -- Y axis vertical line (X=0)
            if i == 0 then
                lineColorY = xAxisColor

            -- horizontal line
            drawLine [-gridSize, pos, 0] [gridSize, pos, 0] lineColorX

            -- vertical line
            drawLine [pos, -gridSize, 0] [pos, gridSize, 0] lineColorY
        )

        gw.enlargeUpdateRect #whole
        gw.updateScreen()
        true
    ),

    fn drawCallback =
    (
        try
        (
            CustomGridOverlay.drawGrid()
        )
        catch()
    ),

    fn start =
    (
        unRegisterRedrawViewsCallback drawCallback
        registerRedrawViewsCallback drawCallback
        completeRedraw()
    ),

    fn stop =
    (
        unRegisterRedrawViewsCallback drawCallback
        completeRedraw()
    )
)

CustomGridOverlay = CustomGridStruct()
CustomGridOverlay.start()

rollout CustomGridUI "Custom Grid Overlay"
(
    checkbox chkEnabled "Enable custom grid" checked:true
    spinner spnSize "Grid half-size: " range:[100,100000,1000] type:#float
    colorpicker cpMinor "Minor"
    colorpicker cpMajor "Major"
    colorpicker cpX "X Axis"
    colorpicker cpY "Y Axis"
    button btnSync "Sync from Max Grid"
    button btnRedraw "Redraw"

    on CustomGridUI open do
    (
        spnSize.value = CustomGridOverlay.gridSize
        cpMinor.color = CustomGridOverlay.minorColor
        cpMajor.color = CustomGridOverlay.majorColor
        cpX.color = CustomGridOverlay.xAxisColor
        cpY.color = CustomGridOverlay.yAxisColor
    )

    on chkEnabled changed val do
    (
        CustomGridOverlay.enabled = val
        completeRedraw()
    )

    on spnSize changed val do
    (
        CustomGridOverlay.gridSize = val
        completeRedraw()
    )

    on cpMinor changed val do
    (
        CustomGridOverlay.minorColor = val
        completeRedraw()
    )

    on cpMajor changed val do
    (
        CustomGridOverlay.majorColor = val
        completeRedraw()
    )

    on cpX changed val do
    (
        CustomGridOverlay.xAxisColor = val
        completeRedraw()
    )

    on cpY changed val do
    (
        CustomGridOverlay.yAxisColor = val
        completeRedraw()
    )

    on btnSync pressed do
    (
        CustomGridOverlay.syncFromMaxGrid()
        format "Spacing: %, Major Every: %\n" CustomGridOverlay.spacing CustomGridOverlay.majorEvery
        completeRedraw()
    )

    on btnRedraw pressed do
    (
        completeRedraw()
    )
)

createDialog CustomGridUI width:220

This will give you a customizable grid system, screenshot you can find here:

 

custom grid system example.png

Please make sure the default grid system is set correctly before applying the script. The script will capture the data from the default grid system and create a new grid system on top of it.

 

If it's too complicated, we could also try using Measure Distance tool instead. It's located in Tools > Measure Distance..

Thank you!

 



Haifeng Yu
Technical Support Specialist
Message 7 of 12

haifeng_yuSEVKN
Autodesk
Autodesk

Hello @ChadForeman74, I just wanted to see if the solution above is helpful, and if you have any questions about it? Thank you!



Haifeng Yu
Technical Support Specialist
0 Likes
Message 8 of 12

lauri_barnhart
Autodesk
Autodesk

Hello, @ChadForeman74,

Did the information provided by @haifeng_yuSEVKN help you and answer your question?

If yes, please click on the "Accept Solution" button. This will assist other community users in finding and benefiting from this information.

If not, please do not hesitate to give an update in this thread so all community members receive an update on the progression of your question, and can suggest next steps that may be helpful for you to achieve what you're looking for.

All the best,

Lauri | Community Manager


Lauri | Community Manager
0 Likes
Message 9 of 12

ChadForeman74
Contributor
Contributor

Haifeng, thank you for your time. That is way too complicated for me. I am a beginner at 3DS Max. Writing (copy/pasting) scripts that might cause bugs is nothing I want to even consider. I am not a programmer.

I have experience in Rhino. In Rhino, it's very easy to distinguish the minor from the major grid lines. The grids are smooth when I zoom in and out. To me this is very helpful in modeling. I can be much faster and more accurate. It seems that 3DS Max is not the only Autodesk product that can't do grid lines very well. AutoCAD is just as bad. The grid is super clunky and when I try to snap to the grid, my mouse moves very slowly. There is a delay.

Grids are very advantageous, in my humble opinion. I don't think it's fair to have grids that don't work and the solution be "learn to model without the grid." They work in Photoshop and Illustrator and are super easy to use. I would think a powerhouse like Autodesk might be able to figure out something this simple.

0 Likes
Message 10 of 12

ChadForeman74
Contributor
Contributor

Hi Lauri, thanks for checking in.

No it did not. I just posted a response above that explains why it didn't. (Sorry about the delay, I've been out of town for an extended length of time)

0 Likes
Message 11 of 12

ads_decatae
Autodesk
Autodesk
 
I'm happy to share that this feature was added in 3ds Max 2027 🎉 You can now customize major and minor grid line colors independently. Updating to 2027 should solve the issue described here. See Viewport grid and display improvements 
 
Let us know if that helps!


Elena de Catalina
Sr. QA Analyst
Entertainment Creation Products, ECP
0 Likes
Message 12 of 12

sabek_krysia
Community Visitor
Community Visitor

a to nie mozna dodac tego juz do starszych wersji

0 Likes