Jump to content

Recommended Posts

Posted

I have a lisp, actually i have several version of this lisp but it seems to have a grown a bug or something becuase it's not behaving now like it used to do. The problem is that it places the X-text and the Y-text right on top of each other, and not being able to read Lisps, I have no idea what variable it is that governs that, anyone that can help me?

 

;;--------------------------------------------------------------------------
;; COORD.LSP                        PLACE CO-ORDINATE TEXT OF SELECTED POINT
;;==========================================================================
;;DESCRIPTION:  This routine will place co-ordinate text alongside a defined
;;              (user selected) point.  The `x' & `y' values of the selected
;;              point will be preceded with an `E' & `N' respectively. This
;;              routine also places a donut at the point.  The co-ord text is
;;              then echoed to the screen alongside the selected point, and
;;              the user is prompted to select the desired location of the
;;              text.  
;;
;;START COMMAND........   coord
;;
;;WRITTEN BY:   ALAN CULLEN           December 1994
;;
;;AMENDED:      August 1995           Error handler included
;;              November 1999         Modified to read text settings from
;;                                    configuration file "COORD.CFG"
;;              October 2007          Re-written for Tiger
;;
;;---------------------------ERROR HANDLER------------------------------
(defun clerr (s)
(if (/= s "Function cancelled")
  (if (= s "quit / exit abort")
    (princ)
    (princ (strcat "\nError: " s))
  )
)
(setvar "donutid" olid)
(setvar "donutod" olod)
(setvar "blipmode" olblip)
(setvar "LUPREC" oluprec)
;; (setvar "osmode" olsnap)
(setq el1 nil el2 nil)
(setvar "cmdecho" ocmd)
(setvar "ANGBASE" oangbase)       ;;Angle zero direction to "north"
(setvar "ANGDIR" oangdir)         ;;Clockwise angles
(setvar "dragmode" odrag)

(if olderr (setq *error* olderr))
(princ "\nERROR...CONSOLE BREAK...PREVIOUS DRAWING STATUS RESTORED...")
(princ)
)

;;-----------------------------MAIN PROGRAM------------------------------
(DEFUN C:cr  ()

(princ "\n PLACE POINT CO-ORDINATE TEXT  -  November  1999 - Alan CULLEN")

(setq txtang 90)                               ;;*** Set orientation angle for text (set for 0 deg = North, angles measured clockwise)
(setq lnspace 1.5)                            ;;*** Set text line spacing factor (generally 1.
(setq olderr *error* *error* clerr)        ;;Set new error handler
(setq ocmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq olid (getvar "DONUTID"))
(setvar "donutid" 0)
(setq olod (getvar "DONUTOD"))
(setvar "donutod" 300.0)                       ;;*** Sätter ytterdiameter på donut
(setq oluprec (getvar "LUPREC"))
(setvar "LUPREC" 3)                           ;;*** Sätter antal decimaler
;; (setq olsnap (getvar "osmode"))
(setq ts 5)                                   ;;*** Sätter text storlek
(setq olblip (getvar "blipmode"))
(setvar "blipmode" 0)                       ;;*** Set BLIPMODE enviroment variable 0/1 ... 0=OFF, 1=ON
(setq oangbase (getvar "ANGBASE"))
(setvar "ANGBASE" (/ pi 2))                   ;;Angle zero direction to "north"
(setq oangdir (getvar "ANGDIR"))
(setvar "ANGDIR" 1)                           ;;Clockwise angles
(setq odrag (getvar "dragmode"))
(setvar "dragmode" 2)


(setq pt T)
(while pt
 (princ "\n PLACE POINT CO-ORDINATE TEXT  -  November  1999 - Alan CULLEN")
 ;; (setvar "osmode" 1)
 (setq pt (getpoint "\n Välj Punkt - <RETURN> för att avsluta :"))                      
 ;; (setvar "osmode" 0)
 (if (/= pt nil)
  (progn
   (setq ptx (car pt) pty (cadr pt))
   (setq txtptx (/  ptx 1000))
   (setq txtptx (strcat "Y: " (rtos txtptx)))
   (setq txtpty (/  pty 1000))
   (setq txtpty (strcat "X: " (rtos txtpty)))
   (setq pt1 (list ptx pty 0))
   (setq txtpt1 (list ptx (+ pty (* lnspace ts)) 0))
   (command "doughnut" "" "" pt1 "")
   (command "text" txtpt1 ts txtang txtpty)
   (setq el1 (entlast))
   (command "text" pt1 ts txtang txtptx)
   (setq el2 (entlast))
   (prompt "\n     Välj Plats För Koordinattext ")
   (command "move" el1 el2 "" pt1 pause)
)))
(setvar "donutid" olid)
(setvar "donutod" olod)
(setvar "blipmode" olblip)
(setvar "LUPREC" oluprec)
;; (setvar "osmode" olsnap)
(setq el1 nil el2 nil)
(setq *error* olderr)             ;; Restore old error handler
(setvar "cmdecho" ocmd)
(setvar "ANGBASE" oangbase)
(setvar "ANGDIR" oangdir)
(setvar "dragmode" odrag)

(princ)
)

  • Replies 25
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    11

  • Tiger

    10

  • eldon

    2

  • NBC

    1

Top Posters In This Topic

Posted

AC might have been on the Ted :shock:

 

Seriously though, AC always changed angles round so that they worked as survey angles, and that complicates matters if you are not used to it.

 

Here are a couple of simple lisps that write coordinates (WC) as texts in metre coordinates. One to use when the drawing units are metres, and the other writes coordinates in metres when the drawing units are millimetres. No error checking, and you have to put in the text height into the lisp. See if they can give you an idea.

 

;WC.LSP is a programme to write coordinates. eldon Nov 1999
(defun C:WC (/ pt0 e east eastin n north northin)
;here begins the loop that gets the actual positions
  (while (setq pt0 (getpoint "\nPick co-ordinate point:  "))
         (setq e (car pt0)        ;easting coord as number
               n (cadr pt0)       ;northing coord as number
               east (rtos e 2 3)  ;easting coord as string
               north (rtos n 2 3)  ;northing coord as string
               eastin (strcat  east "mE" )
               northin (strcat  north "mN")
         )
  (command "TEXT" pt0 "0.1" "0" eastin);size of text changed manually
  (command "TEXT" "" northin)
   )
   (princ)
)

;WCMM.LSP is a programme to write coordinates in m when dwg units are mm. eldon Nov 1999
(defun C:WCmm (/ pt0 e east eastin n north northin)
;here begins the loop that gets the actual positions
  (while (setq pt0 (getpoint "\nPick co-ordinate point:  "))
         (setq e (car pt0)        ;easting coord as number
               n (cadr pt0)       ;northing coord as number
               east (rtos (/ e 1000) 2 3)  ;easting coord as string
               north (rtos (/ n 1000) 2 3)  ;northing coord as string
               eastin (strcat  east "mE" )
               northin (strcat  north "mN")
         )
  (command "TEXT" pt0 "500" "0" eastin);size of text changed manually
  (command "TEXT" "" northin)
   )
   (princ)
)

Posted

Hey Tiger,

 

I'll take a look at the LISP for you - but in the meantime, here are a few others that may get you by:

 

http://www.cadtutor.net/forum/showthread.php?t=37762

http://www.cadtutor.net/forum/showthread.php?t=36668

http://www.cadtutor.net/forum/showthread.php?t=38525

http://www.cadtutor.net/forum/showthread.php?t=19666&page=4

http://www.cadtutor.net/forum/showthread.php?t=36328

http://www.cadtutor.net/forum/showthread.php?t=36808

 

Some may be of more relevance than others... taken from my "links vault" lol

 

Also, VVA has a great set of programs for the task:

http://www.cadtutor.net/forum/showthread.php?t=31653

 

Lee

 

EDIT:

 

PS> Tiger, are you sure you want to be using "donuts" for your points - this makes it very hard to extract the point information from the drawing (as opposed to using ACAD points). Just a thought :)

Posted

Eldon,

 

Just a tip -

 

I'd be careful using the TEXT command - it can sometimes have undesired results. The prompts with the TEXT command are not consistent, and so the LISP can error out sometimes. I would instead use an entmake method :)

 

Also, watch out for your Osnaps :)

 

Lee

Posted
AC might have been on the Ted :shock:

 

Seriously though, AC always changed angles round so that they worked as survey angles, and that complicates matters if you are not used to it.

 

 

AC was always on the Ted :wink:

 

This is one that he used and adopted for me, hence the survey-style to it - I'll take a look at yours, cheers!

 

Lee - nah, the donut I'm not so sure I need, but I haven't bothered to remove it, sometimes good to see what point I mean.

Posted

OK, well if you don't find anything that suits in those links or from what Eldon has provided - I'd be happy to help you out with a LISP (this kind of program isn't too complex to make :) )

Posted

ok, so a look at the links you provided Lee, I can't seem to find one that does what I want, most seem to want to get the points exported to a txt- or a excel-file, that is not needed for me.

 

Really, the CR.lsp that I posted does want I want, it picks up the coordinates of a point, this particular version does so in meters even if the drawing is in millimeters, it lets me place the text where I want and it doesn't add any other text than the coordinates. It's just that wherever I place the text, it places the X and Y texts on top of each other, a bit varied depending on where I place the texts. Just want to figure out what variable it is that affects that...

Posted

from your initial code Tiger, it is using el1 as the y co-ordinate , and el2 as the x co-ordinate; then it is moving both the x and y text together to the same point using pt1 which is defined as the x and y co-ordinate

Posted

Tiger,

 

Give this a try. I've spent a bit longer than usual commenting the code so that you know "what does what".

 

I have tried to make it similar to the original code - but it may need tweaking as the original code is a little, how can I put it, "off".

 

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:cr [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* doc lFac tSze tLay tSty vl ov pt t1 t2[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#ff00ff]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n** Error: "[/color][/b] msg [b][color=#ff00ff]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b]

   lFac [b][color=#009999]1.5[/color][/b]    [i][color=#990099];; <<-- Line Spacing Factor[/color][/i]

   tSze [b][color=#009999]5.0[/color][/b]    [i][color=#990099];; <<-- TextSize (nil to use TEXTSIZE sys var)[/color][/i]

   tLay [b][color=#ff00ff]"TEXT"[/color][/b] [i][color=#990099];; <<-- Text Layer (nil to use CLAYER sys var)[/color][/i]

   tSty [b][color=BLUE]nil[/color][/b]    [i][color=#990099];; <<-- Text Style (nil to use TEXTSTYLE sys var)[/color][/i]

 [b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] vl [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b][b][color=RED])[/color][/b]
       ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]getvar[/color][/b] vl[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]

 [i][color=#990099];;<<--  Error Checking  -->>[/color][/i]

 [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]numberp[/color][/b] lFac[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=#009900]0[/color][/b] lFac[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Line Spacing not Valid **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=DARKRED]'[/color][/b]STR [b][color=RED]([/color][/b][b][color=BLUE]type[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Layer not a String **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b]t

        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tSze [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tSze [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSIZE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"CLAYER"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tSty [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tSty [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSTYLE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

        [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LAYER"[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]vla-add[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vla-get-layers[/color][/b] doc[b][color=RED])[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

[i][color=#990099];; <<---------------------->>[/color][/i]


        [i][color=#990099];; <<-- Business End  -->>[/color][/i]
        
        [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\n Välj Punkt - <RETURN> för att avsluta :"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b] doc[b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]trans[/color][/b] pt [b][color=#009900]1[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
          
          [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.point"[/color][/b] pt[b][color=RED])[/color][/b]   [i][color=#990099];; << Comment this if unnecessary[/color][/i]

          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] t1
            [b][color=RED]([/color][/b]Make_Text pt
              [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"X: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]1000.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]2.[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099];; Text is at 90 deg.[/color][/i]
              tSze tLay tSty[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] t2
            [b][color=RED]([/color][/b]Make_Text [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] lFac tSze[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"Y: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]1000.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]2.[/color][/b][b][color=RED])[/color][/b]
              tSze tLay tSty[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] ov[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.move"[/color][/b] t1 t2 [b][color=#ff00ff]""[/color][/b] pt pause[b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

        [i][color=#990099];; <<------------------>>[/color][/i]

        [b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]


[i][color=#990099];; <<--  Sub-Function  -->> [/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] Make_Text  [b][color=RED]([/color][/b]pt val rot sZe lay sty[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]entmakex[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"TEXT"[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b]  lay[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]10[/color][/b] pt[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]40[/color][/b] sZe[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]1[/color][/b]  val[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]50[/color][/b] rot[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]7[/color][/b]  sty[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]71[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]72[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099];; 0 = Left, 1 = Center, 2 = Right[/color][/i]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]73[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099];; 0 = Base, 1 = Bottom, 2 = Middle, 3 = Top[/color][/i]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]11[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

Posted
from your initial code Tiger, it is using el1 as the y co-ordinate , and el2 as the x co-ordinate; then it is moving both the x and y text together to the same point using pt1 which is defined as the x and y co-ordinate

 

yes, I notice that you are moving the text that you have just placed - but I thought this was intentional, so I left it in the new code.

 

It is easily seen and can be commented if necessary. :)

Posted
Tiger,

 

Give this a try. I've spent a bit longer than usual commenting the code so that you know "what does what".

 

I have tried to make it similar to the original code - but it may need tweaking as the original code is a little, how can I put it, "off".

 

 

Thanks a bunch mate, except that the text comes in at a 90degree angle it works like a charm :) yeah, it's suppose to move the texts so I can place it where I want - sometimes there are a lot of points close together so I need to fiddle with the placement of the texts, and it's so much easier to do at the start than afterwards.

 

And yes, the original code is a bit off, first becuase it's the work of AC, and very custom to him and then re-written to be custom to my settings.

Posted

I thought the text was set to come in at 90 degs in the original code, so implemented it in this one... but it could be that Alan changed a few other sys vars to change this... :unsure:

 

EDIT: I commented the part of the code that sets it to 90degs. It is in radians, hence (/ pi 2.) - just change this to 0. :)

Posted
from your initial code Tiger, it is using el1 as the y co-ordinate , and el2 as the x co-ordinate; then it is moving both the x and y text together to the same point using pt1 which is defined as the x and y co-ordinate

 

el1 being the actual coordinate or the coordinate for the text position?

 

I thought the text was set to come in at 90 degs in the original code, so implemented it in this one... but it could be that Alan changed a few other sys vars to change this... :unsure:

 

probably :D

Posted

el1 and el2 are the text entities that are being moved after the point is clicked. It just seems weird that you would click and point, then move away from it thats all :wink:

Posted
Eldon,

 

Just a tip -

 

I'd be careful using the TEXT command - it can sometimes have undesired results. The prompts with the TEXT command are not consistent, and so the LISP can error out sometimes. I would instead use an entmake method :)

 

Also, watch out for your Osnaps :)

 

Lee

 

Thank you very much for your comments. It was written 10 years ago when I had to make it work without any help. I work without any Osnaps set, and use the F keys (accelerator keys) to set an Osnap as I need. But the code could give some ideas, even if only to show what not to do :shock:

Posted
el1 and el2 are the text entities that are being moved after the point is clicked. It just seems weird that you would click and point, then move away from it thats all :wink:

 

uh...perhaps I'm not reading you right here - but the original CR.lsp and your CR.lsp works the same way from where I see it - click a point, click where you want to place the texts. If the code takes a roundabout, I have no idea.

 

Thanks for the 90degree fix :)

Posted
Thank you very much for your comments. It was written 10 years ago when I had to make it work without any help. I work without any Osnaps set, and use the F keys (accelerator keys) to set an Osnap as I need. But the code could give some ideas, even if only to show what not to do :shock:

 

Not a problem Eldon ~ I'm just too petty really and like to see "nice" code :)

 

uh...perhaps I'm not reading you right here - but the original CR.lsp and your CR.lsp works the same way from where I see it - click a point, click where you want to place the texts. If the code takes a roundabout, I have no idea.

 

No, its just that I would have though you would want the text to be at the point you have clicked, thats all. :)

Posted

 

No, its just that I would have though you would want the text to be at the point you have clicked, thats all. :)

 

Ah, well, no, that's why the donut was there - to show what point the coordinates was referring to. The point in the question can't be covered with texts, that need to be visible as well.

 

oh, and I feel like an idiot here - but I can't seem to get the 90-degree changed to 0-degree.... you mind typing it up as it should look like in the code?

 

Edit: If I change it to

 

(setq t2

(Make_Text (polar pt 0 (* lFac tSze))

(strcat "Y: " (rtos (/ (cadr pt) 1000.)))

(/ 0 2.)

tSze tLay tSty))

 

the text does indead come in the right way - but now they're back to being on top of each other!! :shock:

Posted

Sorry Tiger,

 

I am the idiot - I didn't explain enough.. I forgot you need to change the offset as well :oops:

 

See here:

 

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:cr [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* doc lFac tSze tLay tSty vl ov pt t1 t2[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#ff00ff]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n** Error: "[/color][/b] msg [b][color=#ff00ff]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b]

   lFac [b][color=#009999]1.5[/color][/b]    [i][color=#990099];; <<-- Line Spacing Factor[/color][/i]

   tSze [b][color=#009999]5.0[/color][/b]    [i][color=#990099];; <<-- TextSize (nil to use TEXTSIZE sys var)[/color][/i]

   tLay [b][color=#ff00ff]"TEXT"[/color][/b] [i][color=#990099];; <<-- Text Layer (nil to use CLAYER sys var)[/color][/i]

   tSty [b][color=BLUE]nil[/color][/b]    [i][color=#990099];; <<-- Text Style (nil to use TEXTSTYLE sys var)[/color][/i]

 [b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] vl [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b][b][color=RED])[/color][/b]
       ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]getvar[/color][/b] vl[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]

 [i][color=#990099];;<<--  Error Checking  -->>[/color][/i]

 [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]numberp[/color][/b] lFac[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=#009900]0[/color][/b] lFac[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Line Spacing not Valid **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=DARKRED]'[/color][/b]STR [b][color=RED]([/color][/b][b][color=BLUE]type[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Layer not a String **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b]t

        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tSze [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tSze [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSIZE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"CLAYER"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
        [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] tSty [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tSty [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSTYLE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

        [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] tLay [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LAYER"[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]vla-add[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vla-get-layers[/color][/b] doc[b][color=RED])[/color][/b] tLay[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

[i][color=#990099];; <<---------------------->>[/color][/i]


        [i][color=#990099];; <<-- Business End  -->>[/color][/i]
        
        [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\n Välj Punkt - <RETURN> för att avsluta :"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b] doc[b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]trans[/color][/b] pt [b][color=#009900]1[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
          
          [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.point"[/color][/b] pt[b][color=RED])[/color][/b]   [i][color=#990099];; << Comment this if unnecessary[/color][/i]

          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] t1
            [b][color=RED]([/color][/b]Make_Text pt
              [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"X: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]1000.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=#009999]0.[/color][/b]  [i][color=#990099];; Text is at 0 deg.[/color][/i]
              tSze tLay tSty[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] t2
            [b][color=RED]([/color][/b]Make_Text [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=#009900]3[/color][/b] [b][color=BLUE]pi[/color][/b][b][color=RED])[/color][/b] [b][color=#009999]2.[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] lFac tSze[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"Y: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]1000.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
              [b][color=#009999]0.[/color][/b]
              tSze tLay tSty[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] ov[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.move"[/color][/b] t1 t2 [b][color=#ff00ff]""[/color][/b] pt pause[b][color=RED])[/color][/b]

          [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]

        [i][color=#990099];; <<------------------>>[/color][/i]

        [b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]


[i][color=#990099];; <<--  Sub-Function  -->> [/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] Make_Text  [b][color=RED]([/color][/b]pt val rot sZe lay sty[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]entmakex[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"TEXT"[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b]  lay[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]10[/color][/b] pt[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]40[/color][/b] sZe[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]1[/color][/b]  val[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]50[/color][/b] rot[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]7[/color][/b]  sty[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]71[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]72[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099];; 0 = Left, 1 = Center, 2 = Right[/color][/i]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]73[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099];; 0 = Base, 1 = Bottom, 2 = Middle, 3 = Top[/color][/i]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]11[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

Posted
Sorry Tiger,

 

I am the idiot - I didn't explain enough.. I forgot you need to change the offset as well :oops:

 

 

Thanks mate! Just the irony of it that two pages down into a problem, and the same problem occurs :P

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...