明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5162|回复: 17

求助高手-----改为记忆数字递增-----(祥图编号)-----标题要长 要长

  [复制链接]
发表于 2012-4-8 08:59:38 | 显示全部楼层 |阅读模式
这里面有三个命令,第一个是设置圆的半径(RC),第二个是设置字体大小,字体倾斜度,并输入数字《1或A,任意数都行》(BB),第三个能记忆圆的半径,字体大小,字体倾斜度,但不能记忆输入的数字(BC),

要求在第三个命令里也能记忆上一次输入的数字并递增1,比如说在(BB)里输入的是 3,在第三个命令(BC)里能自动输入数字 4 ,再(BC)就是数字 5 ;在(BB)里输入的是 A2 ,在第三个命令(BC)里能自动输入数字 A3 再(BC)就是 A4

在 给大家代码如下

本帖子中包含更多资源

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

x
发表于 2012-4-9 00:17:32 | 显示全部楼层
本帖最后由 zhuquanmao 于 2012-4-9 00:28 编辑

看看楼下的代码 我这里成了
回复 支持 0 反对 1

使用道具 举报

发表于 2018-11-25 23:27:44 | 显示全部楼层
              留个脚印
回复 支持 0 反对 1

使用道具 举报

发表于 2015-2-3 18:59:31 | 显示全部楼层
我怎么不行啊。。。。
回复 支持 0 反对 1

使用道具 举报

发表于 2012-4-8 09:54:06 | 显示全部楼层
发表于 2012-4-8 11:02:17 | 显示全部楼层
设置一个全局变量行么?
发表于 2012-4-8 20:03:42 | 显示全部楼层
;;这是一个对祥图进行标号的小程序
(defun C:bb (/ rr r pt1 pt2 pt3 ang)
  (setq old_osmode (getvar "osmode"))
  (setvar "cmdecho" 0)
  (setq rr (getvar "circlerad"))
  (initget (+ 2 4))
  (setq r (getreal (strcat "\n请输入标号圆半径 < " (rtos rr) ">:")))
                                        ;如标号圆半径未输入,提示输入标号圆半径
  (if (null r)
    (setq r rr)
  )
  (initget (+ 2 4))
  (if (not (numberp bh))
    (progn
      (setq bh (getint "\n输入起始号<1>:"))
      (if (= nil bh)
        (setq bh 1)
      )
    )
    (progn
      (setq bh (getint (strcat "\n输入起始号<" (itoa bh) ">:")))
      (if (= nil bh)
        (setq bh bh)
      )
    )
  )
  (if (null qz)
    (setq qz (getstring "\n前缀<无>:"))
                (progn
    (setq qz (getstring (strcat "\n前缀<" qz ">:")))
                (setq qz qz)
  )
        )
  (setq pt1 (getpoint "\n请输入第一点: "))
  (while pt1
    (setq pt2 (getpoint pt1 "\n请输入第二点: "))
    (if        pt2
      (progn
        (setvar "osmode" 0)
        (command "_.line" pt1 pt2 "")
        (setq ang (angle pt1 pt2))
        (setq pt3 (polar pt2 ang r))
        (command "circle" pt3 r)
        (command "text" "mc" pt3  r 0 (strcat qz (itoa bh)))
        (setq bh (1+ bh))
        (setvar "osmode" old_osmode)
        (setq pt1 (getpoint "\n请输入第一点: "))
      )
      (setq pt1 nil)
    )
  )
        (setvar "cmdecho" 1)
  (prin1)
)
;;; 文字结尾
 楼主| 发表于 2012-4-8 20:19:55 | 显示全部楼层
叮咚 发表于 2012-4-8 20:03
;;这是一个对祥图进行标号的小程序
(defun C:bb (/ rr r pt1 pt2 pt3 ang)
  (setq old_osmode (getvar " ...

刚进行了一个测试,发现有点问题呢!

当第一次输入BB命令时,默认输入是数字1,当再一次用BB命令时,默认输入是数字2,当回车时,输入能消失!

错误: 参数类型错误: fixnump: nil

有这个错误呢!
发表于 2012-4-8 20:24:19 | 显示全部楼层
xingyun300 发表于 2012-4-8 20:19
刚进行了一个测试,发现有点问题呢!

当第一次输入BB命令时,默认输入是数字1,当再一次用BB命令时,默 ...

你看提示了吗?
我试了,怎么没错啊
 楼主| 发表于 2012-4-8 20:36:06 | 显示全部楼层
叮咚 发表于 2012-4-8 20:24
你看提示了吗?
我试了,怎么没错啊

做了一个视频,你看看是怎么会事!

本帖子中包含更多资源

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

x
发表于 2012-4-8 20:50:17 | 显示全部楼层
这个问题会在我的“明细表”帖子中得到详细回答,敬请期待!
发表于 2012-4-8 20:54:01 | 显示全部楼层
;;这是一个对祥图进行标号的小程序
(defun C:bb (/ rr r pt1 pt2 pt3 ang)
  (setq old_osmode (getvar "osmode"))
  (setvar "cmdecho" 0)
  (setq rr (getvar "circlerad"))
  (initget (+ 2 4))
  (setq r (getreal (strcat "\n请输入标号圆半径 < " (rtos rr) ">:")))
                                        ;如标号圆半径未输入,提示输入标号圆半径
  (if (null r)
    (setq r rr)
  )
  (initget (+ 2 4))
  (if (not (numberp bh))
    (progn
      (setq bh (getint "\n输入起始号<1>:"))
      (if (= nil bh)
        (setq bh 1)
      )
    )
    (progn
                (setq bh00 bh)
      (setq bh (getint (strcat "\n输入起始号<" (itoa bh00) ">:")))
      (if (= nil bh)
        (setq bh bh00)
      )
    )
  )
  (if (= "" qz)
    (setq qz (getstring "\n前缀<无>:"))
                (progn
                (setq qz00 qz)
    (setq qz (getstring (strcat "\n前缀<" qz00 ">:")))
                (if (= "" qz)
                (setq qz qz00)
                )
  )
        )
  (setq pt1 (getpoint "\n请输入第一点: "))
  (while pt1
    (setq pt2 (getpoint pt1 "\n请输入第二点: "))
    (if        pt2
      (progn
        (setvar "osmode" 0)
        (command "_.line" pt1 pt2 "")
        (setq ang (angle pt1 pt2))
        (setq pt3 (polar pt2 ang r))
        (command "circle" pt3 r)
        (command "text" "mc" pt3  r 0 (strcat qz (itoa bh)))
        (setq bh (1+ bh))
        (setvar "osmode" old_osmode)
        (setq pt1 (getpoint "\n请输入第一点: "))
      )
      (setq pt1 nil)
    )
  )
        (setvar "cmdecho" 1)
  (prin1)
)
;;; 文字结尾
 楼主| 发表于 2012-4-8 21:11:32 | 显示全部楼层
叮咚 发表于 2012-4-8 20:54
;;这是一个对祥图进行标号的小程序
(defun C:bb (/ rr r pt1 pt2 pt3 ang)
  (setq old_osmode (getvar " ...

这次运行不了,直接出现错误了,哥们,还要帮忙改改呀!!!


命令: bb
请输入标号圆半径 < 0>:50
输入起始号<1>:
; 错误: 参数类型错误: stringp nil
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-21 07:56 , Processed in 0.206821 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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