Jump to content

Leaderboard

  1. lastknownuser

    lastknownuser

    Community Member


    • Points

      7

    • Posts

      131


  2. mhupp

    mhupp

    Trusted Member


    • Points

      7

    • Posts

      2,242


  3. pkenewell

    pkenewell

    Community Member


    • Points

      5

    • Posts

      794


  4. BIGAL

    BIGAL

    Trusted Member


    • Points

      4

    • Posts

      20,103


Popular Content

Showing content with the highest reputation since 05/30/2026 in Posts

  1. Just to add something more from me, as I did try to understand this problem as much as I could back then when I was working on my solution. Boundary command probably uses Pixel-Based Areas (Boundary Fill) method, that's why you have to see whole area on your screen. You can google what that is and how it works, but it makes sense to me considering there is a precision problem depending on "zoom" level. As for Hatch, it works the same for "pick points" method (boundary command + add hatch for that polyline), but if you choose "select objects" then it works as completely different method (just math without graphics part) and that's why its more accurate in this example. It all depends what you have as starting variables and what you need in the end. If you can, and its not a problem to select all lines, then CBoundray function from post above will work okay. This works like the Hatch by selecting objects... Of course clicking just one point inside area is simpler and faster, but can give wrong result because of its limitation. And I don't think its an issue with Autocad, its just a method that has its limitation. And it actually works really good otherwise, if you think about it, considering how much zoomed out you have to be and have a short segment to get the error. For example I work with topology, and have area centroids, and I needed to work some analysis with polylines for certain areas. In 99% cases boundary command was good, but with large areas with small boundary segments (like in OP example) I had this problem and needed to avoid it.
    4 points
  2. This has been talked before if I understood the problem correctly: https://www.cadtutor.net/forum/topic/61468-boundary-precision/ To create a boundary you have to have the whole area visible in your model, everything needs to be visible in display area So it has to do something with your "viewing resolution" (zoom), that's how command works. What is the limit I don't know, I never did tests like they did in topic mentioned above. But I also had the same problems with large areas like you posted, when I have one short line, or polyline segment, one of the boundary vertices would be wrong (bad precision). The solution for me was to create lisp working with regions, then convert region to polyline. When creating regions you don't need to see the whole area on your screen, you select the lines and its just pure math from there
    3 points
  3. @darshjalal Thanks for your program contribution. I don't want to take away for your obvious hard work, but I somewhat agree with @BIGAL. I have read the extensive comments that are very detailed and technical, but there is no summary of what it is used for, or how it is useful. For the casual LISP user, they would not understand the value in such a program. I think a simple paragraph would be help instead of blindly evaluating it. Your title does explain the purpose of the program, but it's too vague and some plain language on how the features are helpful would be nice - just a friendly critique
    3 points
  4. It's supposed to use the HPGAPTOL as far as I know. This has been an issue for sometime, now that I looked back into from a few years ago, this problem also occurs with Hatch command. I just tried Boundary and Hatch on a closed polyline object at Zoom Extents and got ... And despite the first instruction, Zooming In resolved the issue. I normally resolve this with Hatch by using Select Object, maybe Hatch, Select Object, delete the Hatch and keep the Boundary could work for the OP. @lastknownuser's post brought it back to my memory. There is a thread around from a while back on this issue and needing to use Select Object option for Hatch.
    2 points
  5. Was reading up on this too. apparently AutoCAD boundary command doesn't have a tolerance setting but BricsCAD does. That is why people opt to use hatching and then you can create the boundary from the hatch. and then delete the hatch. I'm confused since their isn't a gap/vertex at that location.
    2 points
  6. There was a post a couple of years ago now, if it is a closed shape without crossing lines, hatching the area then recreate the boundary and delete the hatch leaves the boundary... as a last resort since it is long winded way to go. I haven't had time this week to look at this properly - you're in safe hands with the other posters though... (The post I am thinking about was using LISP to do something, click in the area to get boundary, might have been to measure area, perimeter or something but that was the idea behind it, LISP is ok if it is a bit long winded, fractions of a second longer process)
    2 points
  7. @Danielm103, I'm on rev. 8.9.3 so does not apply to me. Thanks for the warning nonetheless. ymg
    2 points
  8. if Nothing else it would show up in peoples searches. just posting a file even tho it has great documentation will not show up in searches. if you take all the time to write things up and share here make it so people can find your lisp files. or just copy all the ;; lines. someone in 6 months to a year will post looking for a divide lisp with points and I won't be able to find this post. -Edit like you did here
    2 points
  9. If your offering something a good idea is to provide images or a movie about what the program does, else the "Why bother" will occur. Just attaching a lisp is not really describing why you should download the program. Think of it as if I was selling the program how would I get people interested.
    2 points
  10. @rlx Your Kung-Fu is Strong! Nice work!
    2 points
  11. If it can be fixed with zooms then you can record the current zoom, zoom object, make the boundary and zoom back 'current' zoom - I think that method is online somewhere to copy / paste else can find it on Monday if needed.
    1 point
  12. DIVCURVES-INSERTING POINTS AS SPECIFIC DISTANCE.LSP I am so sorry for not giving more details about the code. Please read the following for more details: When executed, the utility launches an interactive keyword configuration: Menu: [1-Polylines/2-Lines/3-Arcs/4-Circles/5-Splines/6-FeatureLines/7-All] --- OPTION 1: Polylines --- - Target: Native 2D LWPolylines and 3D Heavy Polylines (*POLYLINE). - Sub-Prompts: Asks for both "Curve distance" and "Line distance". - Workflow Logic: Polylines frequently alternate between straight tangents and arced bulges. The engine runs through each sub-segment parameter, applying the Curve interval on loops returning a non-zero bulge and the Line interval on zero-bulge vectors. Critical for tracking centerlines. --- OPTION 2: Lines --- - Target: Standalone native LINE entities (completely ignores curves). - Sub-Prompts: Triggers only "Line distance [Middle/Vertices]". - Workflow Logic: * Absolute Number: Measures out fixed structural intervals from start. * "Middle": Drops a single layout node at exactly Total Length / 2. * "Vertices": Flags only the absolute start and endpoints, bypassing any segment division calculations. Perfect for boundary box indexing. --- OPTION 3: Arcs --- - Target: Standalone open circular ARC elements. - Sub-Prompts: Triggers only "Curve distance [Middle]". - Workflow Logic: Uses true structural arc-length path calculations (not straight-line chord spacing). Entering "Middle" isolates the exact apex mid-curve station node. Excellent for curb returns or radius layout. --- OPTION 4: Circles --- - Target: Full, closed 360-degree CIRCLE elements. - Sub-Prompts: 1. Circle Mode [Distance/Pieces] 2. Curve Distance (if Distance Mode) 3. Number of Slices (if Pieces Mode) - Workflow Logic: * Pieces Mode: Divides the 360° rim into perfectly equal pie sections. Ideal for setting layout coordinates for manholes or foundation piles. * Distance Mode: Steps linearly around the outer circumference. --- OPTION 5: Splines --- - Target: Non-uniform smooth organic SPLINE curve strings. - Sub-Prompts: Triggers "Curve distance" and "Line distance". - Workflow Logic: Utilizes Visual LISP curve projection vectors to step smoothly through changing multi-radius landscape or contour paths, automatically trapping and marking the true start/end index boundaries. --- OPTION 6: FeatureLines --- - Target: Native Autodesk Civil 3D Feature Lines (AECC_FEATURE_LINE). - Sub-Prompts: Triggers "Curve distance" and "Line distance". - Workflow Logic: Tailored for civil infrastructure models. The engine interrogates the 3D string, locks all critical grade breaks and site vertices, and overlays intermediate interval layout points that retain design model accuracy. --- OPTION 7: All --- - Target: Simultaneous mixed selection set of all supported geometries. - Sub-Prompts: Sequential configuration parameters for all curves/lines. - Workflow Logic: Scans the entire cross-window selection. For every object trapped, it reads its DXF Group 0 type, dynamically assigns your preset rules, avoids duplicate coordinate overlaps, and populates the entire site plan layer in a single execution click. SHORT SEGMENT OVERRIDE LOGIC: If an entity length or sub-segment is shorter than the interval distance specified, the script halts and prompts: [Middle/All/SkipAll] - "Middle": Drops a layout node exactly at the center of that specific short segment. - "All": Converts the current short vector and all subsequent short vectors discovered during the current command run into midpoints automatically. - "SkipAll": Ignores short segments entirely for the rest of the execution, leaving them clean and checking only major length spans. SHORT SEGMENT OVERRIDE LOGIC: If an entity length or sub-segment is shorter than the interval distance specified, the script halts and prompts: [Middle/All/SkipAll] - "Middle": Drops a layout node exactly at the center of that specific short segment. - "All": Converts the current short vector and all subsequent short vectors discovered during the current command run into midpoints automatically. - "SkipAll": Ignores short segments entirely for the rest of the execution, leaving them clean and checking only major length spans.
    1 point
  13. Idk about that this is a super simple lisp that will allow you to select multiple entites. But if they aren't within the fuzz distance of each other they wont connect. ;;----------------------------------------------------------------------------;; ;; Copy Boundary Entities to join as a single polyline fuzz is 0.1 units ;; https://www.cadtutor.net/forum/topic/99146-boundary-command/ mhupp:06/04/26 (defun C:CBoundray (/ ss ss1 obj) (setq ss1 (ssadd)) (while (setq ss (ssget '((-4 . "<OR") (0 . "LINE") (0 . "ARC") (0 . "LWPOLYLINE") (-4 . "OR>")))) (foreach obj (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))) (vla-copy obj) ) (command "_.PEDIT" "_M" ss "" "_J" "0.1" "W" "0" "") ) (princ) )
    1 point
  14. If your offering something a good idea is to provide images or a movie about what the program does, else the "Why bother" will occur. "(setq oldDynPrompt (getvar "DYNPROMPT")) Fails in Bricscad V25. Here is a freebie for you I dont uses initget. Multi radio buttons.lsp (if (not AH:Butts)(load "Multi radio buttons.lsp")) (setq ans (ah:butts but "V" '("Please choose" "1-Polylines" "2-Lines" "3-Arcs" "4-Circles" "5-Splines" "6-FeatureLines" "7-All"))) You ask for a distance only so it would make sense that it ask for intervals, we did road design and in an intersection kerb the curve was nearly always based on 4 points. maybe when asked for a distance enter a -ve value say -4 means break into 4 even spacing. Have added a couple of other make dcl on the fly for you just leave my name in the code but free to use. You can make a dcl then convert it to lsp code using write-line for the dcl code so dont need the MULTI's.Multi GETVALS.lspMulti toggles.lsp
    1 point
  15. Off the top of my head, could you use polar coordinates to split the site into slices? With 60-degree increments, you have six slices. When you process a borehole, you use the distance from the center of the site to place the table at a proportional distance in the outer area. By setting the placement angle to a clamped fraction of the slice, you get a fixed number of places for the tables, so there's no chance of overlap. That way you don't have a lot of edge cases, and the tables correspond roughly to the boreholes. I'm probably not explaining this clearly. I can put together a diagram and maybe some code if you need them.
    1 point
  16. The only "solution" besides zooming in I could determine, was to copy the polylines in place and use region on them, which seems to be correct in the example drawing. That should be able to be done with a LISP? Boundary.dwg
    1 point
  17. Yes, 2000i fails when zoomed out as well.
    1 point
  18. I use windows terminal winget upgrade. the publisher has to send them the file i think how it works. it directs to the url submitted.
    1 point
  19. I reversed all the polylines see if that does anything. -Edit Might fix it on the bottom but then mess it up on the top. Rervers Boundary.dwg
    1 point
  20. I exploded the polylines into lines. I also reduced the lineweight to 0, but in both cases the result remains the same. A colleague who still has an old PC with Autodesk Map 5 (= AutoCAD 2002) also confirmed that the same error occurs. If I’m not mistaken, AutoCAD 2002 is basically the same as AutoCAD 2000, so @SLW210’s statement that the "boundary" command works correctly in that version intrigues me.
    1 point
  21. Welcome aboard, post a sample dwg with your block, then people can have a look at what you have done.
    1 point
  22. Why the error occurs The PAUSE limitation: In AutoLISP, pause only stops the command to let the user interact (e.g., click a point). It does not return the string value to the command sequence. When you reach the attribute part, AutoCAD expects a string, but since pause doesn't provide one, the sequence breaks.Multiline Attribute Format: Multiline attributes in a command-line sequence require specific formatting. If there are line breaks, they must be represented by \P. In Lisp, you must escape the backslash: \\P .Command vs -Command: When using Lisp, it is safer to use the hyphenated version (e.g., -INSERT ) to force the command-line interface and bypass dialog boxes entirely. The Corrected Lisp Routine This routine replaces your DIESEL script. It captures the date automatically (matching your DIESEL format) and prompts for the initials and notes. (defun c:REVNOTE (/ insPt dateStr userInitials revNote) ;; Save current ATTDIA and turn it off (setq oldAttdia (getvar "ATTDIA")) (setvar "ATTDIA" 0) ;; 1. Get Insertion Point (setq insPt (getpoint "\nSpecify insertion point: ")) ;; 2. Get Date (Mimicking your Diesel formatting) ;; This uses a Lisp trick to call the Diesel 'edtime' function directly (setq dateStr (menucmd "M=(edtime,$(getvar,date),DD.MO.YYYY)")) ;; 3. Get User Initials (getstring T allows spaces) (setq userInitials (getstring T "\nEnter Initials: ")) ;; 4. Get Revision Note (for the multiline attribute) (setq revNote (getstring T "\nEnter Revision Note: ")) ;; 5. Execute the Insert command ;; Sequence: BlockName, Point, ScaleX, ScaleY, Rotation, Attr1, Attr2, Attr3, Attr4 (command "-INSERT" "REVNOTE" ; Block name insPt ; User picked point "1" "1" "0" ; Scale and Rotation "P01" ; Attribute 1: Rev Index dateStr ; Attribute 2: Date userInitials ; Attribute 3: Initials revNote ; Attribute 4: Multiline Note ) ;; Restore ATTDIA and Regen (setvar "ATTDIA" oldAttdia) (command "REGEN") (princ "\nRevision inserted successfully.") (princ) ) Key Differences & Improvements: menucmd: This is the best way to get the exact edtime format you used in DIESEL without writing a complex date-parsing routine in Lisp. getstring T: The T flag allows the user to enter spaces (e.g., if the user wants to type "First issue - revised"). Without it, pressing the Spacebar would finish the command. -INSERT: Using the hyphen ensures that AutoCAD doesn't try to pop up a browser window for the block file.Multiline Support: If your revNote contains multiple lines, make sure to type \P where you want the line break, or modify the code to join multiple strings with \\P.
    1 point
  23. Updated first post , added a few new options and killed a little bug in the get-subfolders routine.
    1 point
  24. Another way to get the text from a pdf is the AI option 'OCR text & table from Microsoft PC manager, normally just available in the US store. But if you have VPN or are a really good singer (Queen : Oh...yes , I'm the great pretender lalala.. applause , oh thank you , you're so kind) you should be able to get it. Open pdf , use button et voila... but its still manual labor
    1 point
  25. Before I used this : (defun GetFolder ( m / f s) (if (and (setq s (vlax-create-object "Shell.Application")) (setq f (vlax-invoke s 'browseforfolder 0 m 65536 "")))(setq f (vlax-get-property (vlax-get-property f 'self) 'path)) (setq f nil))(vl-catch-all-apply 'vlax-release-object (list s)) f) (defun wait (sec / stop)(setq stop (+ (getvar "DATE") (/ sec 86400.0)))(while (> stop (getvar "DATE")))) (defun findstring ( / a b c d e) (setq a (GetFolder "Select folder for string search")) (setq b (getstring "\nEnter string to search for : " T)) (setq c (getstring "\nFile extension (lsp) : ")) (if (eq c "") (setq c "lsp")) (setq d (strcat a "\\result.txt")) (setq e (strcat "findstr /i /s \"" b "\" " a "\\*." c " > " d)) (command "shell" e) (gc)(gc) ;;; natural delay for system to clear cache and write file to disk (alert "search completed") (startapp "notepad" d) (princ) ) (defun c:dfs ()(findstring)) (defun c:t1 ()(findstring)(princ)) This code only works for text based files. Have updated code in my first post with Excel support. Valid extensions are now lsp , txt , dwg , xls and xlsx I have a license for able2extract on my home computer and also written something that uses pdfattach and import for readable pdf's. Though I can take that route, it's not like shoot & forget , often more than one step is needed. But it is what it is... most pdf's I get are pretty poor quality , some by accident and some not because a 3rd party wants you as a returning client if you know what I mean.
    1 point
×
×
  • Create New...