adslwang 发表于 2013-11-16 23:46:14

序号球属性字文字重叠问题,跪求路过大神观看

本帖最后由 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:49:03

本帖最后由 llsheng_73 于 2013-11-17 00:51 编辑

大概看了下程序,没有看到关闭捕捉并且基本以COMMAND为主以及你的描述“在运行的过程中发生了在CAD画面近景可以放置成功, 如在CAD画面拉远后分母及分子的属性字就会重叠"应该是因为捕捉影响导致的
你可以在程序开始(setvar"OSMODE"(+(getvar"OSMODE")16384))将捕捉关闭,程序结束前(setvar"OSMODE"(-(getvar"OSMODE")16384))打开捕捉
页: [1]
查看完整版本: 序号球属性字文字重叠问题,跪求路过大神观看