There is, as far as I know, no way to show the grid on top of all objects.You can however change the color in the Objects docker, just as with any other layer.Click the (grey) colored bar on the right hand side of the Grid layer in the docker, and select any color from the dialog that appears.
This overlay is a good command hence asking in a future update. user can notice every element horizontally and vertically alignment with other objects at once. By having beneath the objects there is no use of this. hence this option is very useful
please help someone to create a macro... draw a line as per the every element in the selection at once. the line extends until the selection handles only. MYRON OR BHP OR someother great supporters here. please create a macro sir.
Maybe that's it, here I used lines on the screen, but I could use regular lines, the code needs improvements and be converted to VBA
OnScreenCurve sCurve; [CgsAddInMacro] public void CreateOverlapGrid(bool around = true, bool inCenter = true) { try { corelApp.Optimization = true; corelApp.EventsEnabled = false; corelApp.ActiveDocument.PreserveSelection = true; corelApp.ActiveDocument.BeginCommandGroup(); ShapeRange selection = corelApp.ActiveSelectionRange; Rect sRect = selection.BoundingBox; Layer vLayer = corelApp.ActiveVirtualLayer; ShapeRange linesH = corelApp.CreateShapeRange(); ShapeRange linesV = corelApp.CreateShapeRange(); for (int i = 1; i <= selection.Count; i++) { Rect rect = selection[i].BoundingBox; if (around) { linesH.Add(vLayer.CreateLineSegment(sRect.Left, rect.Top, sRect.Right, rect.Top)); linesH.Add(vLayer.CreateLineSegment(sRect.Left, rect.Bottom, sRect.Right, rect.Bottom)); linesV.Add(vLayer.CreateLineSegment(rect.Left, sRect.Top, rect.Left, sRect.Bottom)); linesV.Add(vLayer.CreateLineSegment(rect.Right, sRect.Top, rect.Right, sRect.Bottom)); } if (inCenter) { linesH.Add(vLayer.CreateLineSegment(sRect.Left, rect.CenterY, sRect.Right, rect.CenterY)); linesV.Add(vLayer.CreateLineSegment(rect.CenterX, sRect.Top, rect.CenterX, sRect.Bottom)); } } linesH.Sort("@shape1.com.positiony < @shape2.com.positiony"); linesV.Sort("@shape1.com.positionx < @shape2.com.positionx"); ShapeRange lines = corelApp.CreateShapeRange(); ShapeRange garbage = corelApp.CreateShapeRange(); double py = 0; while (linesH.Count > 0) { if (Math.Abs(linesH[1].PositionY - py) > 0.0001d) { lines.Add(linesH[1]); py = linesH[1].PositionY; } else { garbage.Add(linesH[1]); } linesH.Remove(1); } double px = 0; while (linesV.Count > 0) { if (Math.Abs(linesV[1].PositionX - px) > 0.0001d) { lines.Add(linesV[1]); px = linesV[1].PositionX; } else { garbage.Add(linesV[1]); } linesV.Remove(1); } Shape lShape = lines.Combine(); sCurve = corelApp.CreateOnScreenCurve(); sCurve.SetCurve(lShape.Curve); sCurve.Show(); lShape.Delete(); garbage.Delete(); } catch (Exception e) { MessageBox.Show(e.Message); } finally { corelApp.Optimization = false; corelApp.EventsEnabled = true; corelApp.ActiveDocument.PreserveSelection = false; corelApp.ActiveDocument.EndCommandGroup(); corelApp.Refresh(); Thread.Sleep(1000); MessageBox.Show("Waiting"); sCurve.Hide(); } }
I will think about.....