Jump to content

Leaderboard

  1. BIGAL

    BIGAL

    Trusted Member


    • Points

      8

    • Posts

      20,195


  2. fuccaro

    fuccaro

    Moderator


    • Points

      3

    • Posts

      1,738


  3. Danielm103

    Danielm103

    Community Member


    • Points

      2

    • Posts

      341


  4. ReMark

    ReMark

    Trusted Member


    • Points

      2

    • Posts

      46,327


Popular Content

Showing content with the highest reputation since 08/17/2026 in Posts

  1. Nice work. I built the same kind of wheel for Revit a while back, so it was good to see someone doing it on the AutoCAD side. I could not see it running from the thread either, so a short screen recording would probably get you more replies here than anything else. Everything below is from my side, on Revit, so translate it however it fits. These are the ones that cost me the most time. Aim by the pointer angle, not by which shape is under the pointer. Point in a direction and that wedge lights up, whether you are near the middle or way out past the rim. That one change is what made mine feel like a game wheel instead of a menu. Number keys 1 to 9 pick a slot directly. Once you know your own layout you stop looking at the wheel at all, and that is where the real speed comes from. Grey out a slot that cannot run right now, and work all of them out in one pass before the wheel opens. Mine has to check the current selection to answer that. Doing it slot by slot meant a 50,000 element selection got walked once for every slot on the wheel. Once for the whole wheel fixed it. Check the command will really be accepted before you fire it. When mine was refused, nothing ran but the wheel still closed as if it had worked. That is the worst kind of failure because it looks like an answer. Smaller things I would not have guessed: Test the wedge maths outside CAD. I rebuilt mine as a standalone renderer and produced every slot count at every wheel size as images. Far quicker than restarting the host for each attempt, and it found a label collision at my highest slot count that I would never have caught by eye. Store the command name in the slot, not the button text. Rename a button later and the layout survives. Slot 1 at the top, the rest clockwise, always. The muscle memory is the whole point, so that order can never move. Drop any glow or fade. Mine had a soft shadow on the hovered wedge and a fade across the whole ring, and both were being recomputed every time the pointer crossed a boundary. A brighter fill and a thicker outline read exactly the same and cost nothing. Only redraw the wedge that changed, never the whole ring. Let the config file be missing or corrupt without complaining. Mine falls back to the defaults instead of throwing a message at me, and I have never once wanted the message. Do not let dead keys close it. Enter, space and a number higher than my slot count all used to dismiss the wheel doing nothing, which just felt broken. Open the settings from the wheel itself, and let people set it up by dragging onto a real wheel instead of filling in a list. Drag a tool onto a slot to fill it, drag one slot onto another to swap them. Mine draws the same ring at a smaller size for that, so what you arrange is what opens. Two things I am curious about, since you draw with real entities in model space rather than a window over the top. Does the wheel stay the same size on screen at any zoom, or does it scale with the drawing? Mine sits in a window above everything so I never had to deal with that, but it looks like the harder half of your approach. And the double click. In AutoCAD a double click on an object opens its editor, so what happens when the pointer is over an entity instead of empty space? I went with a keyboard shortcut and dodged the question, but yours is the nicer gesture if it works.
    2 points
  2. That's a point. Making the drawing as simple, as possible can definitely stop issues from happening when the client gets the DWG file. Using fonts not adding extra things and handling external references the right way can make a big difference. I have also noticed that missing supporting files are often the reason a drawing works differently on another computer.
    1 point
  3. Gif is there now, a cool idea. The menu issue for me is writing a CUI or CUIX for a custom ribbon, but say using notepad or excel, if you change a cuix to zip can look inside. It is made of a few XML files, that would be helpfull. I also made a write mnu lsp so it helps the typing time, use it for pop menu's. One of the things I have played with is make dcl code from a dwg, uses blocks etc, but need to make it look at a more complex dcl.
    1 point
  4. Since Acad first introduced DCL's that is like 40+ years ago, there has been no improvements to DCL's. This may be a big opportunity for Bricscad to add some more features. A few obvious ones. Text color Text style Text size Using other methods like .Net, VBA and maybe Open dcl the latter I don't use, allow for some of the options to be used. Obviously it's a support request, given that Bricscad has added VL functions not in other software, then maybe some new dcl options would be good. A proper forms engine would be good. So before sending a support request any other suggestions ? Hopefully more support requests will follow.
    1 point
  5. @Steven P It could be as simple as supporting mtext in a dcl. Then color and style would work.
    1 point
  6. All image tiles.. nothing too fancy.. the time was spent creating each letter as an image Letter Coordinates.lsp
    1 point
  7. If you use Etransmit it will add extra files to what is exported, in particular say custom fonts and xrefs.
    1 point
  8. @SLW210, yes well aware of using VBA forms rather than DCl a much better way for input dialogs, running VBA is pretty easy load the dvb then run the sub function. The only thing is must have the VBA runtime installed, which is a separate install in Acad. It is interesting though that a few years ago now Autodesk announced they would be discontinuing support for VBA but it is still there, I think the powers to be thought every one would jump onto .NET. @Steven P can you post code would like to try in Bricscad. The idea was based on a forum request to see your different text styles in a dcl.
    1 point
  9. import wx import random from pyrx import Ap, Db, Ed, Gs class TestDialog(wx.Dialog): def __init__(self, parent, size, pos): wx.Dialog.__init__(self) self.Create(parent, wx.ID_ANY, "", pos, size, style=wx.BORDER_NONE) self.width = size.GetWidth() self.height = size.GetHeight() self.static_bitmap = None self.image = None self.raw_data = None self.offsets = [0] * self.width self.bg_r = 0 self.bg_g = 0 self.bg_b = 0 self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.on_melt_tick, self.timer) def setImage(self, img: wx.Image): self.image = img self.raw_data = bytearray(self.image.GetData()) if len(self.raw_data) >= 3: self.bg_r = self.raw_data[0] self.bg_g = self.raw_data[1] self.bg_b = self.raw_data[2] bmp = wx.Bitmap(self.image) if not self.static_bitmap: self.static_bitmap = wx.StaticBitmap(self, wx.ID_ANY, bmp, pos=(0, 0)) else: self.static_bitmap.SetBitmap(bmp) self.static_bitmap.Bind(wx.EVT_LEFT_DOWN, self.on_click) self.timer.Start(33) def on_melt_tick(self, event): stride = self.width * 3 melted_anything = False for x in range(self.width): if self.offsets[x] < self.height: increment = random.randint(2, 8) self.offsets[x] = min(self.height, self.offsets[x] + increment) melted_anything = True offset = self.offsets[x] if offset == 0: continue x_offset = x * 3 for y in range(self.height - 1, offset - 1, -1): target_idx = (y * stride) + x_offset source_idx = ((y - offset) * stride) + x_offset self.raw_data[target_idx] = self.raw_data[source_idx] self.raw_data[target_idx + 1] = self.raw_data[source_idx + 1] self.raw_data[target_idx + 2] = self.raw_data[source_idx + 2] for y in range(offset): bg_idx = (y * stride) + x_offset self.raw_data[bg_idx] = self.bg_r self.raw_data[bg_idx + 1] = self.bg_g self.raw_data[bg_idx + 2] = self.bg_b if not melted_anything: self.timer.Stop() return self.image.SetData(bytes(self.raw_data)) self.static_bitmap.SetBitmap(wx.Bitmap(self.image)) def on_click(self, event): self.timer.Stop() self.EndModal(wx.ID_OK) @Ap.Command() def doit(): doc = Ap.curDoc() db = doc.database() wxDoc: wx.Window = doc.getWxWindow() sz = wxDoc.GetSize() pos = wxDoc.GetScreenPosition() img: wx.Image = Gs.Core.getBlockImage(db.modelSpaceId(), sz.GetWidth(), sz.GetHeight(), 1.0) dlg = TestDialog(wxDoc, size=sz, pos=pos) dlg.setImage(img) dlg.ShowModal() dlg.Destroy()
    1 point
  10. Feedback from Autodesk: https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Complex-linetype-still-shows-shape-symbols-after-reload-in-AutoCAD-2025-and-later.html
    1 point
  11. Post a sample dwg. CIV3D has a lot of labelling stuff, usually though have to move the label when applied automatically, you may need a custom lisp. There is maybe label Pline legs lisp out there but they would be parallel to each leg. Search Kent Cooper forums/autodesk pretty sure he has something.
    1 point
  12. BricsCAD and others can manipulate dynamic blocks created with AutoCAD, if you use/purchased the software outside of the US. Gemini says the core patent expires in April 2027. I don’t think the intellicads will have the grips and bedit ready by then, maybe. You probably could roll some utilities for some common blocks, with lisp/python/etc to make changes, I.e. visibility
    1 point
  13. This is the key. I will now delete your drawing from my system. Thanks for sharing. You can remove it from your earlier post if you wish.
    1 point
×
×
  • Create New...