Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/22/2026 in Posts

  1. I use this in visual studio to toggle between header and source. also since I'm a southpaw, I use home and end for copy paste autohotkey is the GOAT! #z::Run www.autohotkey.com ;ALT + XX ; home::send ^c ; end::send ^v ; #IfWinActive ahk_exe devenv.exe ;PgUp::SendRaw `,DS.ARGS() ;misc command ;PgDn::SendRaw `,DS.ARGS({"val:type"}) ;misc command Insert::send ^k^o ;toggle header/source Delete::send ^a^k^f{Esc} ;select all and format #IfWinActive
    3 points
  2. You can give this a try: (defun filePicker (directory filename extension / appHandle des pickedFile pickedFiles shell tmp tmpopen tmpoutput line) ;; Multi-file FilePicker using PowerShell OpenFileDialog ;; Returns a list of selected full file paths. ;; Returns nil if Cancel is pressed. (cond ;; Create temporary .BAT file ((and (setq tmp (vl-filename-mktemp nil nil ".bat")) (setq des (open tmp "w")) (write-line (strcat "<# : chooser.bat\n" ":: launches a File... Open sort of file chooser\n" "@echo off\n" "setlocal\n" "for /f \"delims=\" %%I in ('powershell -noprofile \"iex (${%~f0} | out-string)\"') do (\n" " echo %%~I\n" ")\n" "goto :EOF\n" ": end Batch portion / begin PowerShell hybrid chimera #>\n" "Add-Type -AssemblyName System.Windows.Forms\n" "$f = New-Object System.Windows.Forms.OpenFileDialog\n" "$f.InitialDirectory = \"" directory "\"\n" "$f.FileName = \"" filename "\"\n" "$f.Filter = \"" (cond ((= "dwg" (strcase extension t)) "AutoCAD Drawing (*.dwg)|*.dwg") ((= "dxf" (strcase extension t)) "AutoCAD DXF (*.dxf)|*.dxf") (t "All Files (*.*)|*.*") ) "\"\n" "$f.FilterIndex = 1\n" "$f.DefaultExt = \"" extension "\"\n" "$f.Multiselect = $true\n" "$f.ShowHelp = $true\n" "if ($f.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {\n" " $f.FileNames | ForEach-Object { $_ }\n" "}" ) des ) ) (not (close des)) (setq tmpoutput (vl-filename-mktemp nil nil ".txt")) (setq shell (vla-getinterfaceobject (vlax-get-acad-object) "WScript.shell")) (setq appHandle (vl-catch-all-apply 'vlax-invoke (list shell 'Run (strcat "cmd /c " tmp " > " tmpoutput) 0 :vlax-false))) (vlax-release-object shell) (not (vl-catch-all-error-p appHandle)) (setq tmpopen (open tmpoutput "r")) (while (setq line (read-line tmpopen)) (if (/= line "") (setq pickedFiles (append pickedFiles (list line)) ) ) ) (close tmpopen) (setq pickedFile pickedFiles) ) ((setq pickedFile (getfiled "" (strcat directory filename) extension 0)) (setq pickedFile (list pickedFile)) ) ) (if (and tmp (setq tmp (findfile tmp))) (vl-file-delete tmp) ) (if (and tmpoutput (setq tmpoutput (findfile tmpoutput))) (vl-file-delete tmpoutput) ) pickedFile )
    3 points
  3. @Dadgad Actually I even went as far as creating a lisp command so I can make the selections to dwgunits within a dcl gui instead of looking at the dull command line interface. https://marketplace.autodesk.com/apps/5190d5ec-0b6a-4b70-b089-2753abcb8e3a?priceId=bfbb3227-aa55-4923-b9e6-7fe3db0a0a5b
    2 points
  4. This is something I hate to do, but sometimes I'm in a hurry. One title block may be different in some fundamental way. I can't just explode it, because I'll lose all the information in the attributes. There's not enough time to create an entire block for one sheet, and why bother when there's only one? So it's time to Burst a move (sorry).
    2 points
  5. That sounds like a fake Norton Pop-Up, ISeeYou, used to be (is?) an older vulnerability for web cams, I guy was activating webcams without the activation light on and blackmailing women with photos, he was caught and arrested a while back. I'll look for the article. Here is the Wiki iSeeYou - Wikipedia This looks to be a good while back.
    2 points
  6. After installing the above bundle, everything works as expected. (To install these bundle, a free vedacad account is sufficient.) --- After nearly 40 emails of intense communication with @Paul Li, I saw the professionalism and rigor of the senior developer, and this real feedback after actual use has taken VedaCAD a big step forward. Thank you @Paul Li
    1 point
  7. As @VicoWang mentioned I've been running some major tests implementing this new VedaCAD system of deploying 3rd party add-ons in my case specifically to AutoCAD users. @VicoWang has been really response with all my feedback. I'm fairly impressed with how this provides a software developer like myself another platform to push out my apps to end users to implement on their AutoCAD system. The following is a list of my VCIDs. Along with AutoCAD users, I'm hoping AutoCAD LT 2024 and higher version users will also try installing and running these apps. Since currently the Autodesk App Store (now known as the Design & Make Marketplace) do not support AutoCAD LT, this VCID deployment method provides an excellent solution to have AutoLISP coded apps load & run on LT. [DDCalc] VCID: B-NN9XC DDCalc is an on screen graphical calculator within Autodesk® AutoCAD® that supports feet, inch & fractional numeric entries. [DDList] VCID: B-NLR04 DDList is Autodesk® AutoCAD® basic list command but on steroids. [DwgSetup] VCID: B-4K6UL DwgSetup App offers two user friendly graphic user interface commands to make drawing setup changes: (1) DDSetup and (2) DDDwgunits [VpScale App] VCID: B-31VQK VpScale Apps offers two very useful Viewport Scaling Applications: DDZmVpSc & DDSetVpSc [VTN] VCID: B-0Z8Q6 Virtual Tablet Navigator (VTN) is an add-on AutoLISP application using DCL to bring Autodesk® AutoCAD® physical Tablet Menu commands virtually onto the graphics screen. [XOM] VCID: B-09NQD Xref Object Manager (XOM) is an AutoLISP application using a dynamic dialog box to present built-in & added operations to manage External Reference Objects displayed both in a Tree and a List view.
    1 point
  8. If you use notepad+ as an editor for Autolisp, the CTRL+ALT+b leaves a lot to be desired when it comes to selecting between brackets. The VLIDE double-click is much more satisfying. So here is an AutoHotKey script that gives you this functionnality while preserving the normal Dbl-Click of notepad+: #Requires AutoHotkey v2.0 #SingleInstance Off ; 1. Set up a unique communication highway (MsgNumber 0x401) OnMessage(0x401, ReceiveCloseSignal) ReceiveCloseSignal(wParam, lParam, msg, hwnd) { ExitApp } ; 2. Find any running old instance (ignoring itself) and send it the "Self-Destruct" signal DetectHiddenWindows True if (oldScriptHwnd := WinExist(A_ScriptFullPath " ahk_class AutoHotkey")) { if (oldScriptHwnd != A_ScriptHwnd) { ; Ensure the script doesn't close itself! PostMessage(0x401, 0, 0, , "ahk_id " oldScriptHwnd) WinWaitClose("ahk_id " oldScriptHwnd, , 2) } } ; 3. Automatically relaunch the script using UI Access to bypass UAC entirely if !A_IsCompiled && !InStr(A_AhkPath, "_UIA.exe") { uiaPath := RegExReplace(A_AhkPath, "\.exe$", "_UIA.exe") if FileExist(uiaPath) { try { Run('"' uiaPath '" "' A_ScriptFullPath '"') ExitApp } } } ; 4. Your Application-Specific Hotkeys #HotIf WinActive("ahk_class Notepad++") ~LButton:: { static lastClick := 0 currentClick := A_TickCount if (currentClick - lastClick < DllCall("GetDoubleClickTime")) { KeyWait("LButton") Sleep(60) SendEvent("^!b") lastClick := 0 } else { lastClick := currentClick } } #HotIf Link to download AutoHotKey https://www.autohotkey.com also available on Microsoft app store (Free) NppBrackets.ahk
    1 point
  9. Never thought about that - I always still use ctrl+ V / C - means I have to let go of the mouse every now and then
    1 point
  10. This is a port of BrxBlockMan to Python. should be a good sample of how to use a lot of the API, Palettes, Jigs, Cloning Etc. - select a drawing from the directory control - double click or drag a block from the List control to the current drawing - double click the main preview to insert the whole drawing - click the open folder button to add your favorite folder(s) - use the dropdown to navigate to a favorite folder - right click on a dwg to open it in Bricscad - right click on a folder to add it to favorites - right click on the dropdown ctrl to clear favorites https://github.com/CEXT-Dan/PyRx/tree/main/PySamples/wxPython/BlockMan Requires PyRx, BlockMan.py and BlockMan.xrc should be in the same folder
    1 point
  11. If it doesn't kill us, it makes us stronger...and older! Growing old beats the hell out of the only other option.
    1 point
  12. Yes, you are correct. The AI bots do not declare themselves like search engine bots do, they remain anonymous, so it's not possible to target only AI bots. Blocking all bots effectively destroys a site's SEO and search indexing. So my approach (at the moment) is to ride out the storm and see if it eases in the future.
    1 point
  13. Hello friends, I have noticed the same intermittent errors. As some have suggested, this seems to be to do with AI bot activity which floods available resources, making it difficult to serve pages to real users. I am hoping this will subside over time, once all models have gorged themselves on our content. Right now we have two choices. We can either add a Capture test that means you need to complete an action before getting access to the forum (this basically filters out the bots) or we just put up with random errors for now. Let me know what you think.
    1 point
  14. LJade: Here is an example of what I mentioned in my previous post. Note that the channel supports the steel decking, and the decking supports the concrete. The rebar is embedded in the concrete. Note the flashing and canted drip edge in the example as well.
    1 point
  15. @Steven P not sure if this is what you mean, but I have pick attribute in say title block in a layout and it will copy that attribute value into the correct attribute in all blocks of that name, I think also a do multiple atts, handy when say you change a project description, updates all layouts etc.
    1 point
  16. When it comes to keeping copies of various revisions completed, file naming and renaming could become really tricky especially if they're externally referenced to other dwgs. So to avoid having to repath dwgs that may be referenced elsewhere, what I've done in the past is to have the most current dwg always named the same and stored in the same location. A folder is created with the revision date as the name and the dwg is then copied into that folder. Now I have preserved copies of major milestone revisions saved in the project folder.
    1 point
  17. @dexusThis is pretty good too. Thanks for contributing. Though it does not check the AutoCAD window location and so the file selection window may open up on a different monitor, it does open really fast and remembers the monitor location where it last closed. I also like the different looking gui. Interestingly enough, I was able to get it to show multiple file types (*.dwg & *.dxf) by placing that in the filename argument instead of the extension argument: (filePicker (getvar"dwgprefix") "*.dwg;*.dxf" "")
    1 point
  18. A bit of googling check your version is past 26.2.07. can't check because i don't have V26 A regression in BricsCAD V26.2.5 caused the Properties window and other GUI components to stop updating during LISP execution, particularly when waiting for user input. This issue was identified as a regression and has been fixed in V26.2.07 (and subsequent builds). If you are experiencing this behavior: Update BricsCAD: Ensure you are running V26.2.07 or a newer version where the fix is included. Check System Variables: LISP scripts may inadvertently set FILEDIA or CMDDIA to zero, preventing dialog updates. Ensure your code resets these variables or uses an error handler to restore them upon cancellation. Alternative Property Access: For object properties not updating via COM, BricsCAD supports non-COM functions like (getpropertyvalue), (setpropertyvalue), (ispropertyreadonly), and (dumpallproperties) which work across Windows, Mac, and Linux.
    1 point
  19. I never used dimbreak before so but can you use a lisp select all the dim and test which ones which have DimBreaks applied to the then just re-set them.? Test on a few drawings first (make sure run it on back version)... I did this with the help of ai... but it appears to work for me... (perhaps some can verify and improve on it) I'm on on Version 2027 Map but his worked for me. I have notice two things if the dimension are not on screen and the object it crosses are a layer that is off the break reset doesn't work. (So I added zoom extents and do both layer on and thaw for any layer that is printable. Then at the end I reset everything back. But it may be better to do that before you start... as I seen AutCAD behaving strange... Where some lisp functions run before the previous task is complete... (defun c:RefreshDimBreaks ( / layers oldecho i data name flags plot off frozen answer item viewctr viewsize) (setq oldecho (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq viewctr (getvar "VIEWCTR")) (setq viewsize (getvar "VIEWSIZE")) (setq layers '()) (if (tblnext "LAYER" T) (progn (while (setq data (tblnext "LAYER")) (setq name (cdr (assoc 2 data))) (setq flags (cdr (assoc 70 data))) (setq plot (cdr (assoc 290 data))) (setq off (< (cdr (assoc 62 data)) 0)) (setq frozen (= (logand flags 1) 1)) (if (and (= (if plot plot 1) 1) (or off frozen)) (setq layers (cons (list name off frozen) layers)) ) ) ) ) (if (> (length layers) 0) (progn (princ (strcat "\nFound " (itoa (length layers)) " printable layers that are off or frozen.")) (initget "Y N") (setq answer (getstring T "\nTurn these layers on and thaw them temporarily? [Y/N] <N>: ")) (if (or (= answer "") (= (strcase answer) "N")) (princ "\nNo changes made.") (if (= (strcase answer) "Y") (progn (foreach item layers (command "_.-LAYER" "_ON" (car item) "") (command "_.-LAYER" "_THAW" (car item) "") ) ) ) ) ) (princ "\nNo printable layers are off or frozen.") ) (RefreshDims) (foreach item layers (if (cadr item) (command "_.-LAYER" "_OFF" (car item) "") ) (if (caddr item) (command "_.-LAYER" "_FREEZE" (car item) "") ) ) (princ "\nOriginal layer states restored.") (command "_.ZOOM" "_C" viewctr viewsize) (command "_.REGEN") (setvar "CMDECHO" oldecho) (princ) ) (defun RefreshDims ( / ss ssBreak oldecho i ent dict 360type) (setq oldecho (getvar "CMDECHO")) (setvar "CMDECHO" 0) (command "_.ZOOM" "_E") (if (setq ss (ssget "_X" '((0 . "DIMENSION")))) (progn (setq ssBreak (ssadd)) (setq i 0) (while (< i (sslength ss)) (setq ent (ssname ss i)) (if (setq dict (cdr (assoc 360 (entget ent)))) (progn (setq 360type (cdr (assoc 0 (entget dict)))) (if (= 360type "DICTIONARY") (ssadd ent ssBreak) ) ) ) (setq i (+ i 1)) ) (if (> (sslength ssBreak) 0) (progn (princ (strcat "\nRefreshing " (itoa (sslength ssBreak)) " dimension breaks.")) (command "_.DIMBREAK" "_M" ssBreak "" "_R") (command "_.DIMBREAK" "_M" ssBreak "" "_A") ) (princ "\nNo dimensions with extension dictionaries found.") ) ) (princ "\nDrawing does not have any dimensions") ) (setvar "CMDECHO" oldecho) (princ) )
    1 point
  20. No worries. I simply fed your description into Claude. With a few more prompts or a couple of revisions it would have done all that you asked. Its crazy powerful especially in the hands off someone like yourself with advanced lisp coding knowledge and experience. Claude and similar are such a high level above the likes of Co-Pilot.
    1 point
  21. Fair enough, Steven! If your current company drive setup is humming along without friction for your team, there is genuinely zero reason to disrupt what already works for you. Just to clear up one quick technical misconception for anyone following along: VedaCAD isn't an online file store (it's purely an environment deployment manager), and there is no password fatigue here—the platform is completely passwordless (supporting modern Enterprise SSO, OAuth, and Magic Links). Different tools for different office architectures. Wishing you and your CAD team smooth drafting!
    1 point
  22. I put in to Claude Opus 5. Attached is the result. It took a couple of minutes or so, with one revision. LTCOUNT_1.lsp
    1 point
  23. Agreed, the -DWGUNITS command is quite comprehensive, and particularly when receiving drawings from a non-team member. When I want to use it, I expand my commandline history to display 5 or 6 lines, in one go, all the better to display the numerous options.
    1 point
  24. Likewise, we save a full copy of the as issued drawings, plus the PDF mark ups and check prints each in a separate folder. Unless specified otherwise all our files are suffixed with the revision code. Mark ups and check prints are in sequentially numbered and dated folders - so we can always go back. Typical folders: 1.0 Working Drawings 2.0 Check Prints - 2.1 Check Print 01-01-26 - 2.2 Check Print 15-03-26 3.0 Markups - 3.1 Markup 01-01-26 - 3.2 Markup 10 -03-26 4.0 Previous Versions And of course if there is a significant change between issues, I'll save the before and after away somewhere safe We usually issue PDFs during the project and if required the as-builts as dwgs right at the end I believe that the construction cloud saves each save as a new version whether it is a new revision or not
    1 point
  25. Like others if a revision then a dwg was saved. We also saved a "AS Built" dwg, all our dwg's were recorded and could be looked up, we went back to 1999. They were saved as Tiffs later on as Pdf's. As we controlled the dwg's in regards to access by others, server locked, we made sure only the latest version was in the current working directory, we had a superseded directory. As part of document control a new project had specific directories premade.
    1 point
  26. This is one of the knottiest issues in engineering work. What constitutes a full revision? When do you issue a partial revision, if you do at all? How do you track the changes? How do you roll them back if necessary? Worst of all, different shops use different criteria, and sometimes the same shop uses different criteria for different projects. It seems like common sense, since storage is so cheap these days, to save a new copy of the drawing for each revision, and append the revision number to the file name. That way the old revisions are still available if you need to refer to them or send them to someone. Even better, keep the revisions in a subfolder so they don't clutter up the main project folder. And this should go without saying--keep current backups! The current working file should have the project name (or whatever) with no revision number. Again, though, some shops will use different standards. For smaller projects, there's no need to keep old revisions, especially if you've sent them out all along. You can go back to those emails for attached copies of old drawings. As always, simpler is better. Make a plan and stick to it. Otherwise you're asking for trouble.
    1 point
  27. Yes, it's sad, but for some time now I've thought it would be a good idea to have an AutoCAD nostalgia forum. This is a place where we can collect images of legacy AutoCAD versions. I bet you throw away all your old AutoCAD stuff with each new version. Or maybe there are some hoarders out there who still have the box that their R10 came in. I have to admit that I still have my R12 box - makes a great magazine holder (pictures later). Anyway, let me know what you think of this idea and take a look at what's there already.
    1 point
  28. Back in the early 90s I had this letter size digitizer tablet by Calcomp called the WIZ. I was able to reduce the typical 12x12 AutoCAD digitizer tablet menu and map it on. Major advantages of this over the typical larger tablets being sold at the time was it's a lot smaller and light weight and cost less too. But after AutoCAD dropped support for DOS and went all out with running on Windows, Calcomp also dropped support for the WIZ and I had to give it up to go with a mouse. I actually wrote about this awhile back in an article I called "What Happened To The Digitizer?"
    1 point
×
×
  • Create New...