找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 690|回复: 8

带小数递增或递减的程序!

[复制链接]
发表于 2005-4-10 10:16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
请各位帮忙编辑一个象CAD内“copy"加m功能的复制程序,并且要有小数递增或递减功能,小数要求两位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-4-10 12:32:05 | 显示全部楼层
试试看,行不行
[PHP]
(defun c:test ()
  (setq ent (car (entsel "\n选择要递增或递减的数字:")))
  (setq roop (getreal "\n递增或递减的值:"))
  (setq num (cdr (assoc 1 (entget ent)))) ;_取出字符型数值
  (setq num1 (atof num)) ;_转换成实数
  (setq i 1)
  (command "copy"
           ent
           ""
           (setq b-point (getpoint "选择一个基准点:"))
  )
  (while (setq point (getpoint "\n选择一个插入点:"))
    (command point)
    (setq ent1 (entget (entlast)))
    (setq num2 (rtos (+ num1 (* roop i)) 2 2))
    (setq ent1 (subst (cons 1 num2)
                      (assoc 1 ent1)
                      ent1
               )
    )
    (entmod ent1)
    (setq i (1+ i))
    (command "copy" ent "" b-point)
  )
  (command "")
)

[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 13:06:39 | 显示全部楼层
楼上的朋友,递增或递减功能是实现了,可是不能带小数啊!如:每次增加或减少0.52(0.52是任意的,由使用者给定)!即递增或递减的步长!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-10 13:14:08 | 显示全部楼层
不好意思,没有理解题意,2楼程序已修改过了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 13:26:38 | 显示全部楼层
命令: _appload 已成功加载 test.lsp。
命令: ; 错误: 输入的列表有缺陷

命令: test
未知命令“TEST”。按 F1 查看帮助。

你好,程序有问题!显示如上!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-10 13:41:16 | 显示全部楼层
最初由 hsb-hy 发布
[B]命令: _appload 已成功加载 test.lsp。
命令: ; 错误: 输入的列表有缺陷

命令: test
未知命令“TEST”。按 F1 查看帮助。

你好,程序有问题!显示如上! [/B]


程序没问题的,只是在修改2楼的贴子时多了一个“(”,在(defun前面多了一个,去掉了应该没问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 13:49:45 | 显示全部楼层
多谢,已经可以使用了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-10 18:15:34 | 显示全部楼层
我也来凑热闹!



  1. (defun nadd:setini ()
  2.   (setvar "cmdecho" 0)
  3.   (setq dimzin_old (getvar "Dimzin"))
  4.   (setvar "dimzin" 0)
  5.   (setq osmode_old (getvar "osmode"))
  6.   (setvar "osmode" 0)
  7.   (setq        error_old *error*
  8.         *error*        err_new
  9.   )
  10.   (gc)
  11. )
  12. (defun nadd:err_new (msg)
  13.   (princ "\n")
  14.   (princ msg)
  15.   (nadd:setclose)
  16. )
  17. (defun nadd:setclose ()
  18.   (setvar "dimzin" dimzin_old)
  19.   (setq *error* error_old)
  20.   (setvar "osmode" osmode_old)
  21.   (setvar "cmdecho" 1)
  22.   (Princ)
  23. )
  24. (defun c:nadd ( / p dt l_dt d_dt zengliang dxfcode pt pt_from pt_to delt_x delt_y)
  25.   (nadd:setini)
  26.   (setvar "osmode" 97)
  27.   (setq        p          2                        ;精度
  28.         dt          (car (entsel "选择文本:"))
  29.         l_dt          (entget dt)
  30.         d_dt          (distof (cdr (assoc 1 l_dt)))
  31.         zengliang (getreal "\n请输入增值:")
  32.   )
  33.   (if (or (/= 0 (cdr (assoc 71 l_dt)))
  34.           (/= 0 (cdr (assoc 72 l_dt)))
  35.       )
  36.     (setq dxfcode 11
  37.           pt          (cdr (assoc 11 l_dt))
  38.     )
  39.     (setq dxfcode 10
  40.           pt          (cdr (assoc 10 l_dt))
  41.     )
  42.   )
  43.   (setq        pt_from        (getpoint "\n基准点: ")
  44.         delt_x        (- (car pt) (car pt_from))
  45.         delt_y        (- (cadr pt) (cadr pt_from))
  46.   )
  47.   (setq pt_to (getpoint "\n拷贝至:" pt_from))
  48.   (while pt_to
  49.     (setq d_dt (+ d_dt zengliang)
  50.           pt   (list (+ (car pt_to) delt_x)
  51.                      (+ (cadr pt_to) delt_y)
  52.                      '0
  53.                )
  54.           l_dt (subst (cons dxfcode pt)
  55.                       (assoc dxfcode l_dt)
  56.                       l_dt
  57.                )
  58.           l_dt (subst (cons 1 (rtos d_dt 2 p))
  59.                       (assoc 1 l_dt)
  60.                       l_dt
  61.                )
  62.     )
  63.     (entmake l_dt)
  64.     (setq pt_to (getpoint "\n拷贝至:" pt_from))
  65.   )
  66.   (nadd:setclose)
  67.   (princ)
  68. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 19:30:53 | 显示全部楼层

多谢朋友

朋友,多谢你!完全满足要求!

在工程施工中,经常要填写一些有规律的小数,如方格网内的设计高程,道路中线的设计高程等!有了此工具,会给你带来很大的方便。为了方便大家,我将楼上我朋友的东西打包,执行命令是:
nadd

希望大家喜欢,特别是搞工程测量的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 16:52 , Processed in 0.191038 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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