领导者mtext。。口齿不清打断
该代码在ACAD2008中工作,但在ADT2008中,当我创建leader并尝试编写文本时,该代码停止。拜托,有什么想法吗??
(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)
)
简单得多
(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)
)
ADT中断??为什么? ADT中的引线提示是否与ACAD08中的相同?
有时,在Lisp中使用命令函数时,OSNAP可能会出现问题
(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)
) 你也许是对的。
如果他们不同,那就糟糕了。我需要让lisp在两个程序上工作,ACAD2008和ADT2008。
对于Thanx的建议,它并没有解决问题。。。
我正在
起点:
第二点:
文本位置:无
所以它在文本放置后中断 你能不能成为领导者?
(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)
)
这是一个好看整洁的代码吗?至少目前有效。 我认为有更好的方法检查此>
http://www.theswamp.org/index.php?topic=29245.0
[或者直接使用它]
是 啊
我试过了,但没用。
Lisp可以工作,但它就像一个领导者和多行文字分开。
它只选择文本在一侧。如果我抓取文本并移动它,“leader”不会像真正的acad leader那样跟随。
上述中断也。。。
页:
[1]