Jump to content

leader mtext .. lisp breaks in adt


au-s

Recommended Posts

That code works in ACAD2008 but stops in ADT2008 when I create leader and trying to write text.

 

Please, any ideas??

 

 

(defun LDR:SetLayer (skala)
 (setq lagerDel1 "A-------D3-------")
 (cond
   ((= skala "1") (setq lagernamn (strcat lagerDel1 "A")))
   ((= skala "2") (setq lagernamn (strcat lagerDel1 "J")))
   ((= skala "5") (setq lagernamn (strcat lagerDel1 "B")))
   ((= skala "10") (setq lagernamn (strcat lagerDel1 "C")))
   ((= skala "20") (setq lagernamn (strcat lagerDel1 "D")))
   ((= skala "50") (setq lagernamn (strcat lagerDel1 "E")))
   ((= skala "100") (setq lagernamn (strcat lagerDel1 "F")))
   ((= skala "200") (setq lagernamn (strcat lagerDel1 "G")))
   ((= skala "400") (setq lagernamn (strcat lagerDel1 "K")))
   ((= skala "500") (setq lagernamn (strcat lagerDel1 "H")))
 )
 (if (tblsearch "layer" lagernamn)
   (command "_layer" "s" lagernamn "")
   (command "_layer" "m" lagernamn "c" 1 "" "")
 )
)


(defun LDR:SkapaLDRstilPILText ()
(setq dimtyp   "PilText-")
 (setq DimNamnPiltext (strcat "AIX_" dimtyp skala))
 (IF (tblsearch "dimstyle" DimNamnPiltext)
   (command "dimstyle" "r" DimNamnPiltext)
   (progn
     (setvar "dimtxt" 3)
(setvar "DIMCLRD" 1)
     (setvar "textsize" (* 3.0 (atoi skala)))
     (setvar "dimasz" 3.25)
     (setvar "dimtxsty" "AIX_ISO")
     (setvar "dimgap" 1.5)
   (setvar "dimldrblk" "_Open90")
     (setvar "dimscale" (atoi skala))
     (command "_dimstyle" "s" DimNamnPiltext)
(setvar "DIMCLRT" 1)
(setvar "DIMCLRD" 1) 
   )
 )
)

(defun c:AIX:LDRPil_Text (/ skala p1 p2 p3 oldlay)
(setq oldlay (getvar "clayer"))
 (Load "K:\\CAD\\AIX-meny-2008\\Lisp\\alla\\AIX_PopupSkala.lsp")
 (PopupSkala)
 (LDR:SetLager skala)

 (LDR:SetLager skala)

 (IF (NOT (TBLSEARCH "Style" "AIX_ISO"))
   (AIX:ISO)
 )
 (LDR:SkapaLDRstilPilText)
 (setq p1 (getpoint "\nStart Point: ")
p2 (getpoint p1 "\nSecond point: ")
 )
 (grdraw p1 p2 1 1)
 (setq p3 (getpoint p2 "\nTextplacement: "))
 (command "_leader" p1 p2 p3 "" "" "" "")
(setvar "clayer" oldlay)
 (redraw)
)

Link to comment
Share on other sites

much simplier

 

(defun c:ldr (/  p1 p2 p3 oldlay) 
(setq oldlay (getvar "clayer"))

 
 (setq	p1 (getpoint "\nStart Point: ")
p2 (getpoint p1 "\nSecond point: ")
 )
 (grdraw p1 p2 1 1)
 (setq p3 (getpoint p2 "\nText Placement: "))

(command "_leader" p1 p2 p3 "" "" "" "")
(setvar "clayer" oldlay)
 (redraw)
)

 

breaks in ADT?? why?

Link to comment
Share on other sites

Are the prompts for the leader the same in ADT as ACAD08?

 

Sometimes OSNAPS can be a problem when using command functions in Lisp

 

 

 

(defun c:ldr (/  p1 p2 p3 oldlay os) 
(setq oldlay (getvar "clayer")
       os (getvar "osmode"))

 
 (setq	p1 (getpoint "\nStart Point: ")
p2 (getpoint p1 "\nSecond point: ")
 )
 (grdraw p1 p2 1 1)
 (setq p3 (getpoint p2 "\nText Placement: "))

(setvar "osmode" 0)
(command "_leader" p1 p2 p3 "" "" "" "")
(setvar "clayer" oldlay)
(setvar "osmode" os)
 (redraw)
)

Link to comment
Share on other sites

You maybe right.

 

if they are different, that's bad. I need to have that lisp working on both programms, ACAD2008 and ADT2008.

 

Thanx for the suggestion, it did not solve the problem...

I'm getting

 

Start Point:

Second point:

Text Placement: nil

 

So it breaks after Text placement :(

Link to comment
Share on other sites

Can you not entmake the leader?

(entmake
(list
(cons 0 "LEADER")
)
)


(defun c:ldr (/  p1 p2 p3 oldlay os) 
(setq oldlay (getvar "clayer")
       os (getvar "osmode"))
(setq leader (entlast)
     elist (entget leader))



 (setq    p1 (getpoint "\nStart Point: ")
   p2 (getpoint p1 "\nSecond point: ")
 )
 (grdraw p1 p2 1 1)
 (setq p3 (getpoint p2 "\nText Placement: "))

(setvar "osmode" 0)
(command "_leader" leader p1 p2 p3 "" "" "" "")
(setvar "clayer" oldlay)
(setvar "osmode" os)
 (redraw)
)

 

is that a good clean looking code? works at least for now.

Link to comment
Share on other sites

I think theres a better way to do it. - check the coding used in this>

http://www.theswamp.org/index.php?topic=29245.0

 

[ or just use that ]

Link to comment
Share on other sites

I think theres a better way to do it. - check the coding used in this>

http://www.theswamp.org/index.php?topic=29245.0

 

[ or just use that ]

 

Yeah,

I tried that but it doesnt really work.

Lisp works but it is made like a leader and mtext seperate.

It only chooses text to be on one side. If I grab the text and move it the "leader" doesnt follow as in real acad leader.

 

The above breaks as well ...

Link to comment
Share on other sites

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...