Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/06/2024 in all areas

  1. I tend to shy away from automatic changes, partly different clients have different naming conventions for files and drawings to make that trickier. However, if all drawings follow the same conventions then yes, a short LISP to check things out as things open is a handy tool.
    2 points
  2. In newer versions since AutoCAD 2016, the DIM command can already do this. What do you need that is not in this feature?
    1 point
  3. After creating the surface with loft create a box that extends above and below the surface and with sides that are within or flush with the surface. Explode the box and delete the top surface. Now use surfsculpt with the remaining 5 sides of the box plus the surface. If the bondary is not a rectangle, create a closed polyline and extrude it then explode etc.
    1 point
  4. If you look at Vlax-get obj 'area it will return an area so you can compare that answer is it within tolerance for the new object just added. yes you must use a iterative approach, either using a small offset repeatedly till you get to the desired result may use a seed starting value. Then just keep adding to offset value, it can be slow. An alternative method is to jump to halves, you purposely oversize the offset 1st guess, check is equal then jump to a 1/2 way of 1/2 way value if smaller jump to new 1/2 way + 1/2 way of old outside value, hopefully this makes sense see diagram. You are resetting offset step value each time by 1/2. When used as a search a sorted values say 10,000 it takes 13 goes to find the item your looking for, that is fast. How much do you know about lisp ? Something to have a play with. I have set a limit so stops endless loop. (defun c:wow ( / area% oldsnap obj area1 area2 x) (setq oldsnap (getvar 'osmode)) (setvar 'osmode 0) (setvar 'cmdecho 0) (setq plent (car (entsel "\nPick object "))) (setq obj (vlax-ename->vla-object plent )) (setq area1 (vlax-get obj 'area)) (setq area% (* area1 (+ 1.0 (/ (getreal "\nEnter % ") 100.)))) (setq off 0.0 step 0.0001 x 1) (repeat 3000 (vla-offset obj (setq off (+ off step))) (setq area2 (vlax-get (vlax-ename->vla-object (entlast)) 'area)) (princ (setq x (1+ x))) (if (equal area2 area% 0.01) (progn (alert (strcat "\nArea found " (rtos area% 2 3) " " (rtos area2 2 3) ))(exit)) ) (vla-delete (vlax-ename->vla-object (entlast))) ) (setvar 'osmode oldsnap) (if (> x 3000) (alert "solution not found ")) (princ) ) (c:wow)
    1 point
  5. Try "Net" hatch pattern trying to remember its spacing, create it at 1 scale then look at squares and change hatch pattern scale, as a default if you use acadiso.pat I think scale 1 is 0.25 spacing. We used to change net to 1x1 so made squares that matched scale.
    1 point
×
×
  • Create New...