序号球属性字文字重叠问题,跪求路过大神观看
本帖最后由 adslwang 于 2013-11-16 23:59 编辑各位大神,下面是新手练习的序号求帖子,在运行的过程中发生了在CAD画面近景可以放置成功,
如在CAD画面拉远后分母及分子的属性字就会重叠,路过的高手可以帮忙一下或改良一下.....
(defun c:E2()
(command "-STYLE" "arial" "arial.ttf" "0" "1" "0" "" "" "" "-PURGE" "B" "序号球*" "N")
(if (= (tblsearch "LAYER" "图框序号球") NIL)
(PROGN
(SETQ QQ10PP "图框序号球")
(command "-layer" "M" QQ10PP ""))
(PROGN
(command "-layer" "S" QQ10PP ""))
)
(setq EndN (getint "\n 序号球(分子),未输入或负值,由1起算: "))
(if (or (null EndN) (< EndN 0)) (setq EndN 1))
(setq StartN (getint "\n 输入序号球总数量(分母): "))
(if (< StartN 0)
(progn
(alert (strcat "未输入或负值,不被允许!"))
(setq StartN (getint "\n 请重新输入(再输入错误,离开)==>>输入序号球总数量(分母): "))
))
(IF (> EndN StartN)
(alert (strcat "验证输入异常,数据输入相反,不被允许!请重来.....")))
(if (or (null EndN) (null StartN))
(progn
(princ "\n 输入规则有误!") (princ))
(progn
(repeat (+ (- StartN EndN) 1)
;;图元划出
(setq QQQ2 (ssadd))
(princ "\n ")
(SETQ DDF (GETPOINT (strcat "(分子)=" (rtos EndN 2) "(分母)=" (rtos StartN 2) ",点选序号球定位点:")))
(SETQ DDF1 (POLAR DDF (* PI 0.5) 2.8))
(SETQ DDF2 (POLAR DDF (* PI 1.5) 2.8))
(SETQ ANG1 (POLAR DDF PI 6))
(COMMAND "CIRCLE" DDF 6)
(setq aa1 (entlast))
(COMMAND "CIRCLE" DDF 6.5)
(setq aa2 (entlast))
(COMMAND "-ATTDEF" "" "(输入)分子" "" "" "s" "ARIAL" "J" "MC" DDF1 4.5 0)
(setq aa3 (entlast))
(COMMAND "-ATTDEF" "" "(输入)分母" "" "" "s" "ARIAL" "J" "MC" DDF2 4.5 0)
(setq aa4 (entlast))
(princ "\n ")
(COMMAND "LINE" ANG1 "@12<0" "")
(setq aa5 (entlast))
;;图元划出
(setq QQQ2 (ssadd aa1 QQQ2))
(setq QQQ2 (ssadd aa2 QQQ2))
(setq QQQ2 (ssadd aa3 QQQ2))
(setq QQQ2 (ssadd aa4 QQQ2))
(setq QQQ2 (ssadd aa5 QQQ2))
(setq day (getvar "cdate")) ;;取得日期12位码
(setq date (rtos day 2 12)) ;;将12位码转文字
(SETQ DATEGETMUN (SUBSTR DATE 12))
(SETQ MUNMAQ (STRCAT "[" (rtos EndN 2) "-" (rtos StartN 2) "],球码:")) ;;建置图块名
(SETQ MANEQ (STRCAT"序号球" MUNMAQ " " DATEGETMUN));;图块名称
(command "-BLOCK" MANEQ DDF QQQ2 "")
(COMMAND ".INSERT" MANEQ DDF 1 1 0 EndN StartN)
(if (= EndN StartN)
(progn
(princ "\n ")
(princ (strcat "全部序号球下完结束!"))))
(setq EndN (+ EndN 1))
)))
(SETVAR "LUPREC" 2)
(SETVAR "CLAYER" "0")
(princ))
本帖最后由 llsheng_73 于 2013-11-17 00:51 编辑
大概看了下程序,没有看到关闭捕捉并且基本以COMMAND为主以及你的描述“在运行的过程中发生了在CAD画面近景可以放置成功, 如在CAD画面拉远后分母及分子的属性字就会重叠"应该是因为捕捉影响导致的
你可以在程序开始(setvar"OSMODE"(+(getvar"OSMODE")16384))将捕捉关闭,程序结束前(setvar"OSMODE"(-(getvar"OSMODE")16384))打开捕捉
页:
[1]