au-s Posted June 25, 2009 Share Posted June 25, 2009 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) ) Quote Link to comment Share on other sites More sharing options...
au-s Posted June 26, 2009 Author Share Posted June 26, 2009 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? Quote Link to comment Share on other sites More sharing options...
jammie Posted June 26, 2009 Share Posted June 26, 2009 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) ) Quote Link to comment Share on other sites More sharing options...
au-s Posted June 26, 2009 Author Share Posted June 26, 2009 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 Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 26, 2009 Share Posted June 26, 2009 Can you not entmake the leader? Quote Link to comment Share on other sites More sharing options...
au-s Posted June 26, 2009 Author Share Posted June 26, 2009 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. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted June 26, 2009 Share Posted June 26, 2009 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 ] Quote Link to comment Share on other sites More sharing options...
au-s Posted June 29, 2009 Author Share Posted June 29, 2009 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 ... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.