Jump to content

Leaderboard

  1. BIGAL

    BIGAL

    Trusted Member


    • Points

      8

    • Posts

      20,088


  2. pkenewell

    pkenewell

    Community Member


    • Points

      6

    • Posts

      791


  3. SLW210

    SLW210

    Moderator


    • Points

      5

    • Posts

      11,612


  4. mhupp

    mhupp

    Trusted Member


    • Points

      3

    • Posts

      2,230


Popular Content

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

  1. @PaulyPHI Give this a try.SetPlineZ_Updated.lsp
    4 points
  2. Don't know what is going on about Textexp but here is a favour for you. I just made A-Z 0-9 exploded. Convert to correct plines then can extrude into a solid say 1 unit high, will need to check the 36 shapes. The sample dwg really needs more thought say text size =1 and height equal say 0.1. It took about 10 minutes to make these. With a bit of practice much faster and use other fonts. You can use presspull to change height. BUT SET TEXT HEIGHT CORRECT BEFORE EXTRUDE. Oh yeah why do you have units set to Architectural when your talking mm ? new block.dwg
    2 points
  3. Ok I used Txtexp on "MACEY", then went to a 3d view so could see what was going on VPOINT -1,-1,-1. You have to check that all the objects that appear are plines I had to join the little "A" triangle. Ok extruded the base 1.5 Extruded the circles 2.5, then unionid both, to base, subtracted the inner circle from the new solid. Extruded the ""M" 4.5 then did a union again. Extruded the two parts of the "A" unioned together with base then subtracted the inner triangle, You can see the progress. What you want is not a single step but rather multiple steps, lastly can export the STL file. Once you get the hang of extruding, subtrcat and union you can do multiple objects at one time. This is a bit rough as a solid and can be done better, by moving the text to a Z matching base height before you start.
    2 points
  4. The equal linetype as supplied is just a dashed linetype that has a length of one unit and a gap of one unit. By setting its LTSCALE to the length of a pipe you can get an idea of the number of pipes involved. I have somewhere also convert an existing line to two lines as per right hand image, The GIS used to dump out a single line on a size layer so we wanted 2 dashed lines to imply existing drainage. Will try to find I think that is what you want.
    2 points
  5. @darshjalal Nice work! Your added Automatic mode, and the code to strip numbers out of the text is over and above!
    1 point
  6. @PaulyPHI Here is a quick walk-though: This uses Visual LISP to pull the text string from the selected object and convert it to a real number. See the added comments below. (if (and ;; Logical AND = All conditions must be met. ;; 1) an object must be selected. (setq es (entsel "\nSelect Text Object: ")) ;; 2) The selected object must have a text string property, i.e. TEXT, MTEXT, ATTRIBUTE, MLEADER, etc. (vlax-property-available-p (vlax-ename->vla-object (car es)) 'TextString) ;; 3) Retrieve the textsting value if the above conditions are met. (setq newZ (vla-get-textstring (vlax-ename->vla-object (car es)))) ;; 4) The textstring value must evaluate to greater than 0 when converted to a real number. This only works if the text is numerical. (> (setq newZ (atof newZ)) 0.0) ) ;; if all conditions are met, then continue to the (progn) block that performs the changes.
    1 point
  7. Welcome. To make a cleaner look I would make a master Chart (or multiple BH SW MW or by area with a box around them) with all the relative call outs. this would allow a larger view of the area. eliminate the use/need of leaders that aren't really doing anything but cluttering the drawing. -edit Then updating would be adding borehole location and adding to the chart.
    1 point
  8. Like I stated, I still like leaning on AutoCAD for making things for the 3D printer, but also learning Blender and playing with TinkerCAD, etc. The main goal is getting nice 3D Prints, I can tell you from experience, the stuff you get from online, supposedly ready to print, sometimes needs a little tweaking or outright re-modeled. I also have been learning to work in the 3D printer software, in my case, Bambu Studio, it's a lot easier cleaning up, scaling, adding text, etc. right before slicing. Like anyone that uses tools to do a job, learning what tools to use, how to use them, when to use what, etc. is usually the best way to go forward, it's a learning process. By all means start with AutoCAD and improve, we are here to help. Do you know how to export to STL and import that into your slicer?
    1 point
  9. I messed around a little with tinker cad but figured since I already had some knowledge of AutoCAD that it would probably be more useful to stick with AutoCAD. as I mentioned above, I just started learning AutoCAD in November of last year through Penn Foster (don't hold that against me. I'm basically teaching myself at this point with the help of you fellas).
    1 point
  10. Well, I just started learning AutoCAD in November of last year through Penn Foster (don't hold that against me. I'm basically teaching myself at this point with the help of you fellas). I didn't realize you could set the text height BEFORE you press pull. I just started the press/pull then typed the number I want. As far as architectural, I'll be honest, that's all we used when I was in college so that's all I really know
    1 point
  11. Did you try doing these in TinkerCAD? Not sure why your have issues with exploding the text in AutoCAD, I'll look when I get back to work tomorrow. Even as you describe it "When I tried txtexp it shot the text way off to the left and made it huge", you just have to move it and scale it. What you really want to do is learn to do this with the 3D Printer tools. https://www.youtube.com/watch?v=9McpK4nNf2k
    1 point
  12. Thank you very much sir, works perfect. I have compared the modified text file to the original and my brain just melted.... i can see some text that makes sense but the rest is just gobldee goop to me.... I'm just not programmed to understand it... Thank you once again.
    1 point
  13. Sorry it took so long to get back. I never got notifications that there were any replies. OK, so maybe I'm missing something here and ChatGPT and Gemini are of zero help so far. I have this drawing. I'm trying to make a 3d printed ATV number plate. Extrude absolutely won't work for me, not sure why. I was able to use the "presspull" command to punch out the holes (which I don't believe is the correct way) and I can raise the plate up the 3mm I want and the support around the holes the additional 1mm I want but it absolutely won't do anything with the text. I tried MTEXT and single line text. Neither works My printer is a FlashForge AD5X Mark Macey Rear Plate.dwg
    1 point
  14. PETA-INSERT ELEVATIONS FROM TEXTS INSIDE THE CLOSED OR OPEN POLYINE.LSP Try this one too
    1 point
  15. What 3D printer do you have? I just recalled, there used to be an APP at the Autodesk APP store, but no longer there, works on older AutoCAD, but it is also posted here at CADTutor and the Swamp. I use Bambu Labs and it comes with Bambu Studio which has a 3D Text that is very easy, I can do a custom name plate with text directly on the machine.
    1 point
  16. Taking your example video this is convert a p/line to a drainage pipe written for civil road works, with most common AUS sizes. Needs linetype Equal the length of dashed is set to 2.4 which is a length of a concrete pipe. Handy for civil works. It is not dynamic. *EQUAL,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ A,1.0,-1.0 Pipe offsets.lsp If you post here a VLR function can test. Fillet offset circle.lsp Have a look at "Fillet offset circle" uses reactors.
    1 point
  17. You have multiple locations using a redundant entget. (vlax-ename->vla-object (cdr (car (entget e1))) == (vlax-ename->vla-object e1)
    1 point
  18. This may help you set up for checking your LISPs Graebert LISP Extension[FLISP] - ARES Commander Partner Documentation - Confluence
    1 point
  19. Thanks both for the honest feedback — exactly what I was hoping for. @pkenewell — appreciate the link, I'm aware of Lee Mac's MPLine and have a lot of respect for his work. His implementation is elegant and handles the core offset drawing well. MultiPLine goes in a different direction: DCL-based configuration dialog, per-line layer assignment, named presets that persist across drawings, and the Pro version adds a command reactor for auto-sync. Different scope rather than a direct replacement for what he built. Worth knowing about either way so thanks for flagging it. @BIGAL — fair points across the board. BricsCAD: honestly didn't design for it and can't make promises there. The reactor implementation in Pro leans on AutoCAD-specific VLR functions. Lite might load fine in BricsCAD but I haven't tested it — if any BricsCAD users try it I'd be curious to hear the result. On the "why pay" question: fair challenge. The free Lite version covers the core workflow for most users. The Pro is aimed at teams and daily-driver users who want auto-sync and a preset library they can share across a team. Whether that's worth $29 is genuinely up to the buyer — I'm not trying to oversell it. The package suggestion is actually something I've been thinking about. MultiPLine is my first commercial release but I have other tools in progress. A bundle makes more sense as a value proposition and I'll keep that in mind for when there's more to package together. One more thing — I've added the full .lsp source to the Lite download on Gumroad. Free to inspect, modify for personal use, and learn from. Thanks again for taking the time — this kind of feedback from experienced users is more useful than any marketing. Zlatislav
    1 point
  20. Can you post a .dwg? You might give the FREE Autodesk TinkerCAD, I barley have looked at it lately, but IIRC it does a great job with 3D Text creation. But, like you I tend to use AutoCAD and Blender to make objects for the 3D Printer.
    1 point
  21. "Why Use TXTEXP? 3D Extrusion: Converts text into line/polyline paths that you can use the EXTRUDE command on." So to use extrude you must have closed shapes it can take a few minutes to properly close the exploded text. When using extrude you should set a height that you want.
    1 point
  22. Incredible: it seems that (GC) works! I think I last used this command on a 486! Thank you very much!
    1 point
  23. Haven't been on AutoCAD for a while. maybe try GC command to free up memory might help. use mem at the start when its nice and fast and when it is starting to slow down. https://help.autodesk.com/view/ACDLT/2026/ENU/?caas=caas/documentation/ACD/2014/ENU/files/GUID-F4AEB953-2117-4BF2-8056-EA1384AC3FFF-htm.html
    1 point
  24. I used SSX to select all objects on the layer "SURVEY NO BOUNDARY". As long as "Optimize segments within polylines" is checked Overkill will fix the existing polylines. As Eldon said "If you run Overkill first, then Extrim will work. But it will only trim the lines crossing the rectangle." It's a routine for trimming not erasing. I use EraseOutsideBoundary to both trim & erase outside: ;| Function to trim objects inside selected boundaries (allows for multiple boundaries) Boundaries can be "Circle, Ellipse, LWPolyline and Polyline" Entities Written By: Peter Jamtgaard Copyright 2015 All Rights Reserved ^C^C^P(or C:BoundaryTrim (load "BoundaryTrim.lsp"));BoundaryTrim EraseOutsideBoundary added by Tom Beauford ^C^C^P(or C:EraseOutsideBoundary (load "BoundaryTrim.lsp"));EraseOutsideBoundary ==============================================================================|; ;(defun C:BT ()(c:BoundaryTrim)) (defun C:BoundaryTrim (/ acDoc intCount ssBoundaries) (if (setq ssBoundaries (ssget (list (cons 0 "Circle,Ellipse,LWPolyline,Polyline")))) (progn (vla-startundomark (setq acDoc (vla-get-activedocument (vlax-get-acad-object)))) (repeat (setq intCount (sslength ssBoundaries)) (setq intCount (1- intCount)) (BoundaryTrim (ssname ssBoundaries intCount)) (BoundaryWindowErase (ssname ssBoundaries intCount)); <-Erase objects inside boundary optional ) ) ) (if acDoc (vla-endundomark acDoc)) ) ; Command line function to select objects that are windowed by a selected circle. (defun C:BoundarySelect (/ lstPoints objBoundary ssBoundary) (if (and (setq ssBoundary (ssget ":E:S" (list (cons 0 "Circle,Ellipse,LWPolyline,Polyline")))) (setq objBoundary (vlax-ename->vla-object (ssname ssBoundary 0))) (setq lstPoints (SegmentPoints objBoundary 360)) ) (and (setq ssSelections (ssget "_WP" lstPoints)) ) ) ) ; Function to trim linework inside a boundary entity (defun BoundaryTrim (entBoundary1 / lstPoints entBoundary1 entBoundary2 lstCenter lstPoints1 lstPoints2 objBoundary1 objBoundary2 ssBoundary *Error*) (defun *Error* () (setvar "cmdecho" intCMDEcho) ) (setq intCMDEcho (getvar "cmdecho")) (setvar "cmdecho" 0) (if (and (setq objBoundary1 (vlax-ename->vla-object entBoundary1)) (setq lstPoints1 (SegmentPoints objBoundary1 360)) (setq lstCenter (mapcar '(lambda (X)(/ (apply '+ X) (length lstPoints1)))(transposematrix lstPoints1))) (vl-cmdf "offset" (/ (distance (car lstPoints1) lstCenter) 36.0) entBoundary1 lstCenter "") (setq entBoundary2 (entlast)) (setq objBoundary2 (vlax-ename->vla-object entBoundary2)) (setq lstPoints2 (SegmentPoints objBoundary2 360)) ) (progn (vl-cmdf "trim" entBoundary1 "" "f") (foreach lstPoint lstPoints2 (vl-cmdf lstPoint)) (vl-cmdf "" "") (entdel entBoundary2) (vl-cmdf "redraw") (setvar "cmdecho" intCMDEcho) ) ) ) ; Function to trim linework outside a boundary entity (defun TrimOutsideBoundary (entBoundary1 / lstPoints entBoundary1 entBoundary2 lstCenter maxpt lstPoints1 lstPoints2 objBoundary1 objBoundary2 ssBoundary *Error*) (defun *Error* () (setvar "cmdecho" intCMDEcho) ) (setq intCMDEcho (getvar "cmdecho")) (setvar "cmdecho" 0) (if (and (setq objBoundary1 (vlax-ename->vla-object entBoundary1)) (setq lstPoints1 (SegmentPoints objBoundary1 360)) (setq lstCenter (mapcar '(lambda (X)(/ (apply '+ X) (length lstPoints1)))(transposematrix lstPoints1))) (setq maxpt (list (1+ (car (getvar 'extmax)))(1+ (cadr (getvar 'extmax)))(1+ (caddr (getvar 'extmax))))) (vl-cmdf "offset" (/ (distance (car lstPoints1) lstCenter) 200.0) entBoundary1 maxpt "") (setq entBoundary2 (entlast)) (setq objBoundary2 (vlax-ename->vla-object entBoundary2)) (setq lstPoints2 (SegmentPoints objBoundary2 360)) ) (progn (vl-cmdf "trim" entBoundary1 "" "f") (foreach lstPoint lstPoints2 (vl-cmdf lstPoint)) (vl-cmdf "" "") (entdel entBoundary2) (vl-cmdf "redraw") (setvar "cmdecho" intCMDEcho) ) ) ) ; Function to erase linework inside a boundary entity (defun BoundaryWindowErase (entBoundary / lstPoints objBoundary ssSelections) (if (and (setq objBoundary (vlax-ename->vla-object entBoundary)) (setq lstPoints (SegmentPoints objBoundary 360)) (setq ssSelections (ssget "_WP" lstPoints)) ) (and (setq ssSelections (ssget "_WP" lstPoints)) (vl-cmdf "erase" ssSelections "") ) ) ) ; Function to determine the points along a curve dividing it intSegments number of times (defun SegmentPoints (objCurve intSegments / sngSegment intCount lstPoint lstPoints sngLength sngSegment) (if (and (setq sngLength (vlax-curve-getdistatparam objCurve (vlax-curve-getendparam objCurve))) (setq sngSegment (/ sngLength intSegments)) (setq intCount 0) ) (progn (repeat (1+ intSegments) (setq lstPoint (vlax-curve-getpointatdist objCurve (* intCount sngSegment))) (setq lstPoints (cons lstPoint lstPoints)) (setq intCount (1+ intCount)) ) lstPoints ) ) ) ; Function to Transpose a matrix (defun TransposeMatrix (lstMatrix) (if (car lstMatrix) (cons (mapcar 'car lstMatrix) (TransposeMatrix (mapcar 'cdr lstMatrix)) ) ) ) ; Function to erase linework outside a boundary entity (defun C:EraseOutsideBoundary ( / ss1 n ssBoundary objBoundary lstPoints ssSelections entSelection) (vla-startundomark (setq acDoc (vla-get-activedocument (vlax-get-acad-object)))) (setq ss1 (ssget "_X" '((67 . 0))) n -1) (if (and (setq ssBoundary (ssget ":E:S" (list (cons 0 "Circle,Ellipse,LWPolyline,Polyline")))) (setq entBoundary (ssname ssBoundary 0)) (ssdel entBoundary ss1) (TrimOutsideBoundary entBoundary) (setq objBoundary (vlax-ename->vla-object entBoundary)) (setq lstPoints (SegmentPoints objBoundary 360)) ) (and (setq ssSelections (ssget "_CP" lstPoints)) (repeat (sslength ssSelections) (setq entSelection (ssname ssSelections (setq n (1+ n)))) (if(ssmemb entSelection ssSelections)(ssdel entSelection ss1)) ) (command "erase" ss1 "") ) ) (if acDoc (vla-endundomark acDoc)) )
    1 point
×
×
  • Create New...