20160213为王伟写的挪点号,也可以叫它为文字避让

(defun c:XXw()
      ;(setq wei3 (open "C:/Windows/FileInventory.joc" "a"))      (close wei3);取得文件内容

    (setq wei1 (open "C:/Windows/FileInventory.joc" "r"))    (SETQ wang (read-line wei1))    (close wei1)      ;取得文件内容
    ;(IF     (= wei1 nil)    (SETQ wang 0)    (SETQ wang (read-line wei1)))
    
 
 
  (setq wang (atoF wang))
 
  (setq wang (+ wang 1))
  (setq wei2 (open "C:/Windows/FileInventory.joc" "w"))
  (princ wang wei2)
  (if (> wang 300)
    (alert "使用次数已尽,请向15256543343支付宝转帐后联系")
    
    (PROGN
      
   (princ"\n选择需要导出的文本")
 
    (setq ss1(ssget))
  (setq sl(sslength ss1)
    N 0
    q 0)    
  (repeat SL
    (setq ent(entget(ssname ss1 N)))
    (setq tt(cdr(assoc 0 ent)))
    (if(= tt "TEXT")
      (progn                        ;以下内容做为一句来执行
            (setq nr(cdr(assoc 1 ent)))        ;nr为文字的内容
            (setq zb(cdr(assoc 10 ent)))        ;zb为文字的坐标,作用是为了计算出文字的左下和右上坐标本身并无卵用
        (setq X (cAr ZB)            ;zb坐标的x值
                 Y (cAdr ZB ))            ;zb坐标的y值
;;;        (SETQ X(ATOf X)
;;;              Y(ATOf Y))            ;将坐标值转为实数
        
    (SETQ FD (textbox(list(cons 1 nr))))        ;以FD变量为文字的对角点坐标框,是两个点的坐标(car fd)为第一点正常是0,0。(cdr fd)为第二点。
    (setq zbz (car fd)
          zby (cadr fd))                ;zbz为近于0,0的文字左下坐标,zby为文字右上坐标
    (setq PTZ (mapcar'+(list X Y 0)zbZ)
          PTY (mapcar'+(list X Y 0)zby))        ;ptz为近于文字坐标的左下坐标,pty为文字右上坐标(转换后)
    (setq can (ssget "C" PTZ PTY ))            ;反选ptz,pty
      (setq slcan(sslength can))            ;判断选中的图元个数,如果>1就说明压线了
      (setq slcan(atoi slcan))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;到此处获取函数已用完
    
      (if can
    


    
    (progn                        ;十号progn
      (setq i 0)                    ;此处为i的徇环开始点
    (setq i(- 0 5))
      (while (<= i 5)                    ;此处为i的徇环开始点
    (setq j -5)                    ;此处为j的徇环开始点
    (while (<= j 5)                    ;此处为j的徇环开始点
    (setq    pdz  (mapcar'+(LIST i j)ptz)        ;令pdz为文字可移动框的左下角坐标,就是文字的坐标纵横值皆+i,+j
        pdy  (mapcar'+(LIST i j)pty))        ;令pdy为以文字在pdz时的文字对角点坐标
        (setq jiang(ssget "C" pdz pdy ))    ;令选集名为jiang的选集选中左下角pdz,右上角        
        (setq sljiang(sslength jiang))        ;令sljiang变量名为选集jiang的图元数量
            (if (= sljiang 0)        ;如果sljiang变量(即jiang图园数量)为0,说明找到了一块空地
              (COMMAND "MOVE" "W" ptz pty "" ptz pdz));则将文字以坐标为基点移动到空地
      
      (setq j (+ j 0.1)))                ;此处为j的徇环结束点
    
    (if (= i 5)    (command "circle" pt1 3.141592653));如果i=5了,说明之前没有找到空地,即程序无法移动则画圆圈圆的半径为3.141592653,圆心为文字左下左标
    (setq i (+ i 0.1)))                ;此处为i的徇环结束点
      );十号progn的终点



    
    );if ((> slcan 1))的终点    
    )  
    )
    
    (setq N(+ 1 N));这一句只能在if以外
  )
  (prompt (strcat "\n共添加了" (rtos q 2 0) "个文本及坐标"))
  (prompt "\n*^.^*感谢使用安徽工业经济职业技术学院201274206 蒋灿 提供的LSP")
  (PRINC)
    (prompt (strcat "\n你已经使用本插件" (rtos (- wang 1) 2 0) "次了呢"))
 ))
  (close wei2)

  );;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;求高手帮我改正呀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值