明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2202|回复: 0

[源码]简单序号累加

[复制链接]
发表于 2014-5-11 02:06:39 | 显示全部楼层 |阅读模式
本帖最后由 004 于 2014-5-11 02:38 编辑




  1.           ;wkq004  20140331
  2. (PRINC "序号球004,启动命令:xh")
  3. (defun c:xh (/ ss)
  4.   
  5.   (setvar "cmdecho" 0)
  6. (if (setq layerE (tblobjname "layer" "004序号"))
  7.   (progn
  8.     (setq layerEL (entget layerE))
  9.     (setq ass62 (assoc 62 layerEL))
  10.     (if  (/= 4 (cdr ass62))
  11.       (progn (setq layerEL (subst (cons 62 4) ass62 layerEL))
  12.        (entmod layerEL)
  13.       )
  14.     )
  15.   )
  16.   (entmake (list '(0 . "LAYER")
  17.      '(100 . "AcDbSymbolTableRecord")
  18.      '(100 . "AcDbLayerTableRecord")
  19.      '(70 . 0)
  20.      '(6 . "Continuous")
  21.      '(62 . 4)
  22.      (cons 2 "004序号")
  23.      )
  24.   )
  25. )
  26.   (defun *error* (msg)
  27.     (princ "\n取消!")
  28.     (command "_.erase" SS "")
  29.     (command ".undo" "end")
  30.     (setq *error* nil)
  31.   )

  32.   (defun fun-xh004 ()
  33.     (if  (null xh004)
  34.       (progn (setq xh004 "1")
  35.        (setq xh004 (itoa (getint "\n请输入起始序号[]<1>:")))
  36.       )
  37.     )
  38.   )

  39.   (defun rr004 ()
  40.     (if  (null r004)
  41.       (progn
  42.   (command ".circle"
  43.      (getpoint "\n点取设置序号球半径的大小><:")
  44.      pause
  45.   )
  46.   (setq r004 (getvar "CIRCLERAD"))
  47.   (entdel (entlast))
  48.       )
  49.     )
  50.   )
  51.   (fun-xh004)
  52.   (rr004)
  53.   (defun msg ()
  54.     (princ
  55.       "\n点击放置序号球[右键退出/S设置序号/R设置序号球半径]<左键放置>:"
  56.     )
  57.   )
  58.   (msg)
  59.   (defun main ()
  60.     (command ".undo" "begin")
  61.     (setq ss (ssadd))
  62.     (setq TEST t)
  63.     (setq a nil)
  64.     (while TEST
  65.       (setq TMP (grread t 7 1))
  66.       (cond
  67.   ((= (car TMP) 3) ;_左键
  68.    (setq xh004 (itoa (1+ (atoi xh004))))
  69.    (setq TEST NIL)
  70.    (setq a T)
  71.    
  72.   )
  73.   ((= (car TMP) 25) ;_右键
  74.    (command "_.erase" SS "")
  75.    (setq TEST NIL)
  76.   )
  77.   ((= (car TMP) 5) ;_移动
  78.    (setq PT (cadr TMP))
  79.    (command "_.erase" SS "")
  80.    (entmake
  81.      (list '(0 . "TEXT")
  82.      '(8 . "004序号")
  83.      '(62 . 256)
  84.      '(7 . "fs")
  85.      (cons 1 xh004)
  86.      (cons 10 pt)
  87.      (cons 40 r004)

  88.      )
  89.    )
  90.    (ssadd (entlast) ss)
  91.   )
  92.   ((and (OR (equal (cadr TMP) 114) (equal (cadr TMP) 82))
  93.         (equal (car TMP) 2)
  94.    ) ;_序号球半径

  95.    (progn
  96.      (command ".circle"
  97.         (getpoint "\n点取设置序号球半径的大小><:")
  98.         pause
  99.      )
  100.      (setq r004 (getvar "CIRCLERAD"))
  101.      (princ r004)
  102.      (msg)
  103.      (entdel (entlast))

  104.      (setq TEST NIL)
  105.      (setq a T)
  106.    )
  107.   )
  108.   ((and (OR (equal (cadr TMP) 83) (equal (cadr TMP) 115))
  109.         (equal (car TMP) 2)
  110.    ) ;_设置序号
  111.    (command "_.erase" SS "")
  112.    (setq xh004 (itoa (getint "\n请输入序号:")))
  113.    (msg)
  114.    (setq TEST NIL)
  115.    (setq a T)
  116.   )
  117.   (t
  118.    (princ TMP)
  119.   )
  120.       )
  121.     ) ;_结束 while
  122.     (command ".undo" "end")
  123.   )
  124.   
  125.   (main)
  126.   
  127.   (while a
  128.    
  129.     (main)
  130.    
  131.   )
  132.   (princ)
  133. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +2 金钱 +30 收起 理由
yfy2003 + 2 + 30

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 13:45 , Processed in 0.163478 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表