有可能把这些结合起来吗
将这两个编号lisp例程结合起来会很困难吗?我想画一个多边形周围的数字和TXT。我已经能够想出如何编辑这些,但运气不好,并结合这些功能。; inserts increasing numbers inside polygon
(defun c:iwn (/ p n ni ts oecho ds th txt na)
(if (= 0 (getvar "dimscale"))(setq ds 1.0)(setq ds (getvar "dimscale")))
(setq th (getvar "dimtxt"))
(setq txt (* th ds))
(setq ts txt)
(if nn (setq nn (fix nn))(setq nn 1))
(if (= nn 0)(setq nn 1))
(princ "\n Increment by < ")
(princ nn)
(princ " >? : ")
(setq ni (getint))
(if (= ni nil)(setq ni nn)(setq nn ni))
(if np
()
(setq np 1)
)
(princ "\n Start or continue with number < ")
(princ np)
(princ " >? : ")
(setq n (getint))
(if (= n nil)
(setq n np)
(setq np n)
)
(setq p (getpoint "\n Number location: "))
(setq oecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(while p
(setq na (itoa n))
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 na); actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)
)
)
(if (> n 99)
(command "polygon" "5" p "c" (* ts 1.4)) ; edit for number of polygon sides
(command "polygon" "5" p "c" (* ts 1.4))) ; edit for number of polygon sides
(setq p (getpoint "\n Next number location: ")
n (+ ni n)
np n
)
)
(setvar "cmdecho" oecho)
(princ)
)
(princ "\n Type > iwn <to insert numbers inside hexagon")
第二个允许前缀和后缀TXT。
;;; TX+INTEGERS+TX
(defun c:tit (/ p n ni pref suff nns ntx ntxx oecho osn ds th txt)
(setq oecho (getvar "cmdecho")
osn (getvar "osmode")
)
(if (= 0 (getvar "dimscale"))(setq ds 1.0)(setq ds (getvar "dimscale")))
(setq th (getvar "dimtxt"))
(setq txt (* th ds))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(if nn
(setq nn (fix nn))
(setq nn 1)
)
(if (= nn 0)(setq nn 1))
(princ "\n Increment numbers by < ")
(princ nn)
(princ " >? : ")
(setq ni (getint))
(if (= ni nil)
(setq ni nn)
(setq nn ni)
)
(if np
(setq np (fix np))
(setq np nn)
)
(princ "\n Start or continue with number < ")
(princ np)
(princ " >? : ")
(setq n (getint))
(if (= n nil)
(setq n np)
(setq np n)
)
(setq nns (itoa n))
(princ "\n Prefix text < ")
(princ pre)
(princ " >? or <.> for none: ")
(setq pref (getstring t))
(if (= pref ".")
(progn
(setq pre nil)
(setq pref nil)
)
(progn
(if (= pref "")
(setq pref pre)
(setq pre pref)
)
(if pref
(setq ntx (strcat pref nns))
)
)
)
(princ "\n Suffix text < ")
(princ suf)
(princ " >? or <.> for none: ")
(setq suff (getstring t))
(if (= suff ".")
(progn
(setq suf nil)
(setq suff nil)
)
(progn
(if (= suff "")
(setq suff suf)
(setq suf suff)
)
(if suff
(if pref
(setq ntxx (strcat pref nns suff))
(setq ntxx (strcat nns suff))
)
)
)
)
(setq p (getpoint "\n Insert: "))
(setq oecho (getvar "cmdecho"))
(while p
(if suff
;(command "text" "j" "mc" p "" "" ntxx)
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 ntxx) ; actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)
)
)
(if pref
;(command "text" "j" "mc" p "" "" ntx)
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 ntx); actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)
)
)
;(command "text" "j" "mc" p "" "" n)
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 n); actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)
)
)
)
)
(setq p (getpoint "\n Next number location: ")
n (+ ni n)
nns (itoa n)
np n
)
(if suff
(if pref
(setq ntxx (strcat pref nns suff))
(setq ntxx (strcat nns suff))
)
)
(if pref
(if suff
(setq ntxx (strcat pref nns suff))
(setq ntx (strcat pref nns))
)
)
)
(setvar "cmdecho" oecho)
(setvar "osmode" osn)
(princ)
)
(princ "\n Type > TIT <to insert text with ascending integers.") 嗨,戈斯特里德,
测试这个代码也许你想这样
(defun c:test (/ ds n ni nn nns np ntx ntxx oecho osn p pre pref suf suff th ts txt)
(setq oecho (getvar "cmdecho"))
(if
(/= oecho 0)
(setvar "cmdecho" 0)
) ; if
(setq osn (getvar "osmode"))
(if
(= 0 (getvar "dimscale"))
(setq ds 1.0)
(setq ds (getvar "dimscale"))
) ; if
(setq th (getvar "dimtxt"))
(setq txt (* th ds))
(setq ts txt)
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(if
nn
(setq nn (fix nn))
(setq nn 1)
) ; if
(if (= nn 0)(setq nn 1))
(setq ni (getint (strcat "\n Increment numbers by < " (itoa nn) " >? : ")))
(if
(= ni nil)
(setq ni nn)
(setq nn ni)
) ; if
(if
np
(setq np (fix np))
(setq np nn)
) ; if
(setq n (getint (strcat "\n Start or continue with number < " (itoa np) " >? : ")))
(if
(= n nil)
(setq n np)
(setq np n)
) ; if
(setq nns (itoa n))
(setq pre "A")
(setq pref (getstring t (strcat "\n Prefix text < " pre " >? or <.> for none: "))) ; ??!!
(if
(= pref ".")
(progn
(setq pre nil)
(setq pref nil)
) ; progn
(progn
(if (= pref "")
(setq pref pre)
(setq pre pref)
) ; if
(if pref
(setq ntx (strcat pref nns))
) ; if
) ; progn
) ; if
(setq suf "Z")
(setq suff (getstring t (strcat "\n Suffix text < " suf " >? or <.> for none: ")))
(if
(= suff ".")
(progn
(setq suf nil)
(setq suff nil)
) ; progn
(progn
(if (= suff "")
(setq suff suf)
(setq suf suff)
) ; if
(if suff
(if pref
(setq ntxx (strcat pref nns suff))
(setq ntxx (strcat nns suff))
) ; if
) ; if
) ; progn
) ; if
(setq p (getpoint "\n Insert: "))
(while
p
(if
suff
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 ntxx) ; actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)))
(if
pref
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 ntx); actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)))
(entmake (list (cons 0 "TEXT")
(cons 10 p)
(cons 11 p)
(cons 1 n); actual text
(cons 7 (getvar "TEXTSTYLE"))
(cons 40 txt)
(cons 72 4)))
) ; if
) ; if
(command "polygon" "5" p "c" (* ts 1.5))
(setq p (getpoint "\n Next number location: "))
(setq n (+ ni n))
(setq nns (itoa n))
(if
suff
(if
pref
(setq ntxx (strcat pref nns suff))
(setq ntxx (strcat nns suff))
) ; if
) ; if
(if
pref
(if
suff
(setq ntxx (strcat pref nns suff))
(setq ntx (strcat pref nns))
) ; if
) ; if
) ; while
(setvar "cmdecho" oecho)
(setvar "osmode" osn)
(princ)
)
阿,非常感谢你抽出时间为我做这件事。我经常用这个。我以为我能弄明白,但这比我所理解的要先进一点。
它工作得很好。。。 不客气 很好,非常感谢
页:
[1]