Author Topic: Detail routine  (Read 4215 times)

0 Members and 2 Guests are viewing this topic.

Biscuits

  • Swamp Rat
  • Posts: 502
Detail routine
« on: July 17, 2012, 08:10:24 AM »
Does anyone have or know where I might find a routine that will create an arc with arrowheads on each end and call for a letter to be inserted between the arrows?
I've had one for years, but after a PC melt down , mine has disappeared and our IT people have messed up my backup files. ARGH!
I used this for creating "detail" views using current dimscale, section lines, & text height.

hmspe

  • Bull Frog
  • Posts: 362
Re: Detail routine
« Reply #1 on: July 17, 2012, 08:48:06 AM »
Can you provide a picture of whet the finished product should look like?  A portion of a finished drawing that shows its use in context would be ideal.
"Science is the belief in the ignorance of experts." - Richard Feynman

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #2 on: July 17, 2012, 09:02:18 AM »
Quickly written:

Code - Auto/Visual Lisp: [Select]
  1. (defun c:aarc ( / *error* an1 an2 an3 ang arl arw cen ent enx rad )
  2.  
  3.     (setq arl 1.0 ;; Arrow Length
  4.           arw 0.5 ;; Arrow Width
  5.     )
  6.  
  7.     (defun *error* ( msg )
  8.         (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
  9.             (princ (strcat "\nError: " msg))
  10.         )
  11.         (princ)
  12.     )
  13.  
  14.     (setq ent (entlast))
  15.     (command "_.arc")
  16.     (while (= 1 (logand 1 (getvar 'cmdactive)))
  17.         (command pause)
  18.     )
  19.     (if (not (eq ent (setq ent (entlast))))
  20.         (progn
  21.             (setq enx (entget ent)
  22.                   cen (cdr (assoc 10 enx))
  23.                   rad (cdr (assoc 40 enx))
  24.                   an1 (cdr (assoc 50 enx))
  25.                   an2 (cdr (assoc 51 enx))
  26.                   an3 (/ arl rad)
  27.                   ang (rem (+ pi pi (- an2 an1)) (+ pi pi))
  28.             )
  29.             (if (< arl (* rad ang))
  30.                 (if (entmake
  31.                         (list
  32.                            '(0 . "LWPOLYLINE")
  33.                            '(100 . "AcDbEntity")
  34.                            '(100 . "AcDbPolyline")
  35.                            '(90 . 4)
  36.                            '(70 . 0)
  37.                             (cons 10 (polar cen an1 rad))
  38.                            '(40 . 0.0)
  39.                             (cons 41 arw)
  40.                             (cons 42 (tan (/ an3 4.0)))
  41.                             (cons 10 (polar cen (+ an1 an3) rad))
  42.                            '(40 . 0.0)
  43.                            '(41 . 0.0)
  44.                             (cons 42 (tan (/ (- ang an3 an3) 4.0)))
  45.                             (cons 10 (polar cen (- an2 an3) rad))
  46.                             (cons 40 arw)
  47.                            '(41 . 0.0)
  48.                             (cons 42 (tan (/ an3 4.0)))
  49.                             (cons 10 (polar cen an2 rad))
  50.                         )
  51.                     )
  52.                     (entdel ent)
  53.                 )
  54.                 (princ "\nArc too short to accommodate arrows.")
  55.             )
  56.         )
  57.     )
  58.     (princ)
  59. )
  60.  
  61. ;; Tangent  -  Lee Mac
  62. ;; Args: x - real
  63.  
  64. (defun tan ( x )
  65.     (if (not (equal 0.0 (cos x) 1e-10))
  66.         (/ (sin x) (cos x))
  67.     )
  68. )
« Last Edit: July 17, 2012, 04:44:28 PM by Lee Mac »

ronjonp

  • Needs a day job
  • Posts: 7529
Re: Detail routine
« Reply #3 on: July 17, 2012, 09:17:22 AM »
Nice Lee :)

Windows 11 x64 - AutoCAD /C3D 2023

Custom Build PC

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #4 on: July 17, 2012, 09:21:13 AM »
Thanks Ron  :-)

Biscuits

  • Swamp Rat
  • Posts: 502
Re: Detail routine
« Reply #5 on: July 17, 2012, 12:54:55 PM »
Here's the command line response I get. Using ACAD 2012 by the way.
And an attachment of what I'm looking for

Command: (LOAD "AARC")
TAN

Command: AARC
_.arc Specify start point of arc or
: C
Specify center point of arc:
Specify start point of arc:
Specify end point of arc or [Angle/chord Length]:
Command: ; error: bad DXF group: (41)

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #6 on: July 17, 2012, 12:58:41 PM »
Are you sure that you have downloaded the code correctly? Have you modified the code in any way?

The reason I ask is that I cannot reproduce the error and, from the error message you are receiving, the only explanation for that result would be if the variable 'arw' is not defined (i.e. is nil), however, this variable is clearly defined at the top of the code.

Biscuits

  • Swamp Rat
  • Posts: 502
Re: Detail routine
« Reply #7 on: July 17, 2012, 01:04:16 PM »
I'll try again. Thanks for your help by the way!

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #8 on: July 17, 2012, 01:07:44 PM »
You're welcome.  :-)

Looking at your drawing, you would need to change the arrow length to 0.09375 and the arrow width to 0.03125

By the way, why not use a dynamic attributed block for this purpose?


CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Detail routine
« Reply #9 on: July 17, 2012, 01:10:59 PM »
Works here but was able to crash it with osnaps on. 8-)
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #10 on: July 17, 2012, 01:26:11 PM »
Works here but was able to crash it with osnaps on. 8-)

Zero radius arc?

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Detail routine
« Reply #11 on: July 17, 2012, 01:55:23 PM »
Start & end points the same.
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #12 on: July 17, 2012, 02:10:57 PM »
Start & end points the same.

Surely not possible with an arc?  :?

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: Detail routine
« Reply #13 on: July 17, 2012, 02:24:43 PM »
Just saying that with careless snapping you can pick start & end as the same point & routine crashes.
No big deal, just start over. I know the routine is not fool prof.  :-)
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

Lee Mac

  • Seagull
  • Posts: 12914
  • London, England
Re: Detail routine
« Reply #14 on: July 17, 2012, 02:40:06 PM »
Just saying that with careless snapping you can pick start & end as the same point & routine crashes.
No big deal, just start over. I know the routine is not fool prof.  :-)

No big deal, but I just thought that it wasn't possible to pick coincident arc endpoints - the Arc command in 2010 doesn't allow it...