Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/02/2026 in all areas

  1. Every design revision, I have to circle changes with revision clouds for submission. I kept missing things or marking the wrong spots, so I wrote a LISP to do it automatically. What it does: 1. Select Region A (old version) 2. Select Region B (revised version) 3. Red revision clouds appear around every difference It works inside the same DWG — no need for two separate files like DWG Compare. Uses signature-based object comparison with sorted merge, so it handles 1400+ objects in seconds. Features: - Automatic spatial alignment (consensus voting) - Nearby changes merged into grouped clouds - Giant objects (title blocks, borders) auto-filtered - Manual 2-point alignment fallback if auto fails - Configurable tolerance, arc size, merge distance Supports: LINE, CIRCLE, ARC, LWPOLYLINE, TEXT/MTEXT, INSERT, DIMENSION Skips: HATCH (too many false positives) AutoCAD 2014+ compatible. Free / MIT: https://github.com/beastt1992/DiffCheck Feedback welcome
    1 point
  2. import traceback from pyrx import Ap, Db, Ed, Ge _index = 1 def makeBoundary(db: Db.Database, pnt: Ge.Point3d, tr: Db.Transparency): ids = [] plines = Ed.Editor.traceBoundary(pnt, False) for pline in plines: pline.setColorIndex(_index) # Uses the global integer pline.setTransparency(tr) ids.append(db.addToModelspace(pline)) return ids @Ap.Command() def doit(): global _index try: db = Db.curDb() tr = Db.Transparency(0.5) #50% ps, pnt = Ed.Editor.getPoint("\nSelect internal point: ") if ps != Ed.PromptStatus.eOk: return # 1. Generate the boundary polylines ids = makeBoundary(db, pnt, tr) if not ids: print("\nNo boundary found.") return # 2. Create and configure the Hatch object hat = Db.Hatch() hat.setPattern(Db.HatchPatternType.kPreDefined, "SOLID") hat.setColorIndex(_index) hat.setTransparency(tr) # 3. Add hatch to model space BEFORE appending loops (AutoCAD requirement) db.addToModelspace(hat) # 4. Establish associativity and evaluate hat.setAssociative(True) hat.appendLoop(Db.HatchLoopType.kDefault, ids) hat.evaluateHatch(True) print(f"\nCreated boundary and hatch with Color Index: {_index}") # 5. Increment color index (Cycle back to 1 if it exceeds standard ACI 255) _index += 1 if _index > 255: _index = 1 except Exception as e: print("Error encountered:") traceback.print_exc()
    1 point
  3. Db.Transparency in ARX (and Python) is overloaded to take an alpha 0-255 or alphaPercent 0.0 – 1.0, so you can use either. 0.5 is the same as 127 in this case. In this case traceBoundary was called with detect islands = False. Of course one might like to have a different transparency between the boundary and hatch, this just illustrates one
    1 point
  4. The key is to make the Hatch entity itself see-through not the boundary lines that get drawn. The hatch must also be checked after each boundary loop is added. The main fix is the transparency value. For 50% see‑through use an alpha value 127 instead of 0.5 because Db.Transparency uses a 0–255 scale. Set it directly on the hatch for example: hat.setTransparency(Db.Transparency(127)). Also if traceBoundary returns loops find the outer loop and any inner islands separately before you call appendLoop. If you do not do this the hatch might fill spots that should stay open.
    1 point
  5. Here's another without command calls: (defun c:zal (/ a d c tabs) ;; RJP » 2020-07-08 (setq c (getvar 'ctab)) (vlax-for x (vla-get-layouts (setq d (vla-get-activedocument (setq a (vlax-get-acad-object))))) (setq tabs (cons (list (vla-get-name x) (vla-get-taborder x)) tabs)) ) ;; The sort makes sure that the tabs step left to right (foreach x (cdr (vl-sort tabs '(lambda (r j) (< (cadr r) (cadr j))))) (setvar 'ctab (car x)) (vlax-put d 'mspace 0) (vla-zoomextents a) ) (setvar 'ctab c) (princ) )
    1 point
  6. As well as spend time making full instructions and even some videos of them in action.
    1 point
  7. Like @Danielm103, I was also going to suggest Autodesk Store and/or what @BIGAL stated would be my choices. It really depends on what you are comfortable/familiar with. Personally, unless your LISPs are really making difficult and/or complicated work easy and a lot faster, I wouldn't believe they would be big sellers since they seem targeted at AutoCAD MEP, I haven't looked at any numbers lately, but a lot of those users are slowly rolling over to Revit, I was using AutoCAD MEP occasionally, but haven't had any of that type work to do in a good while, perhaps an occasional user such as myself would be a potential customer, I am not sure what percentage of AutoCAD users "do a little of everything" like I do. That is not meant to deter you, just to give an insight on what $$$ and effort you need to spend getting them secure and keeping them up. What future plans do you have on providing support? I see a lot of for purchase apps that end up having the publisher lose interest or other issues and the support goes away.
    1 point
×
×
  • Create New...