找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 656|回复: 6

[求助] [求助]:高手帮忙看一下我的乘法计算程序,哪里错了啊?

[复制链接]
发表于 2006-9-12 10:12:28 | 显示全部楼层 |阅读模式

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

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

×
高手帮忙看一下我的乘法计算程序,哪里错了啊?

  1. (
  2. defun C:cf (/ ns s n i e eb ds ss pt bool th blio cmdo
  3.                ent ent_data old_wz_list jd);乘法运算
  4.         (CMDLA0)
  5.         (setq jd (getint "\n请输入结果保留小数的位数(0):"))
  6.         (if (= jd nil) (setq jd 0))
  7.         (setq blio (getvar "blipmode"))
  8.         (setq cmdo (getvar "cmdecho"))
  9.         (setvar "blipmode" 0)
  10.         (setvar "cmdecho" 0)
  11.         (setq bool "T")
  12.         (princ "\n请选择需乘法运算的数字:")
  13.         (setq ns (ssget))
  14.         (if ns
  15.                 (progn
  16.                 (setq s 1.0 i 0)
  17.                 (setq n (sslength ns))
  18.                         (while (< i n)
  19.                                 (setq e (ssname ns i))
  20.                                 (setq eb (entget e))
  21.                                 (if (= "TEXT" (cdr (assoc 0 eb)))
  22.                                         (progn
  23.                                                 (if bool
  24.                                                         (progn
  25.                                                                 (setq th (cdr (assoc 40 eb)))
  26.                                                                 (setq bool nil)
  27.                                                         )
  28.                                                 )
  29.                                                 (setq ds (atof (cdr (assoc 1 eb))))
  30.                                                 (setq s (* s ds))
  31.                                         )
  32.                                 )
  33.                                 (setq i (1+ i))
  34.                         )
  35.                 )
  36.         )
  37.         (setq ss (rtos s 2 jd))
  38.         (setq ent (entsel "\n请选择作为结果输出的文字:"))
  39.            (setq ent_date (entget (car ent)))
  40.            (setq old_wz_list (assoc 1 ent_date))
  41.            (setq ent_date (subst (cons 1 ss) old_wz_list ent_date))
  42.            (entmod ent_date)
  43.         (setvar "blipmode" blio)
  44.         (setvar "cmdecho" cmdo)
  45.         (princ)
  46.         (princ "\n乘积计算完毕")       
  47.         (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-9-12 19:25:56 | 显示全部楼层
(CMDLA0)函数未定义!
将其前面打;;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-9-12 19:44:37 | 显示全部楼层
(setq ds (atof (cdr (assoc 1 eb))))
可能为0.



  1. (setq ns (ssget))
  2.         (if ns
  3.                 (progn
  4.                 (setq s 1.0 i 0)
  5.                 (setq n (sslength ns))
  6.                         (while (< i n)
  7.                                 (setq e (ssname ns i))
  8.                                 (setq eb (entget e))
  9.                                 (if (= "TEXT" (cdr (assoc 0 eb)))
  10.                                         (progn
  11.                                                 (if bool
  12.                                                         (progn
  13.                                                                 (setq th (cdr (assoc 40 eb)))
  14.                                                                 (setq bool nil)
  15.                                                         )
  16.                                                 )
  17.                                                 (setq ds (atof (cdr (assoc 1 eb))))
  18.                                                 (setq s (* s ds))
  19.                                         )
  20.                                 )
  21.                                 (setq i (1+ i))
  22.                         )
  23.                 )
  24.         )
  25. ;改为下面比较简单
  26. (setq s 1.)
  27. (if(setq ns(ssget '((0 . "text"))))
  28.   (repeat(setq n(sslength ns))
  29.      (if (/= 0(setq s1(atof(cdr(assoc 1(entget(ssname ns(setq n(1- n)))))))))
  30.          (setq s(* s s1))
  31.      )
  32.   )
  33. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-9-25 21:21:38 | 显示全部楼层
  1. [FONT=courier new](defun c:cf ()
  2.   (cmdla0)
  3.   (if (null jd)
  4.     (setq jd 0)
  5.   )
  6.   (setq        jd (UINT 1 "" "\n请输入结果保留小数的位数" jd)
  7.         SS (ssget '((0 . "TEXT,MTEXT")))
  8.         th (xyp-get-dxf 40 (ssname ss 0))
  9.         i  -1
  10.         n  1
  11.   )
  12.   (while (setq s1 (ssname ss (setq i (1+ i))))
  13.     (setq n (* n (distof (xyp-get-dxf 1 s1)))
  14.     )
  15.   )
  16.   (while (not (setq p1 (getpoint "\n计算结果放置点: "))))
  17.   (command "text" "j" "mc" p1 th "0" (rtos n 2 jd))
  18.   (cmdla1)
  19. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-9-26 14:37:30 | 显示全部楼层
;;;在1楼的函数基础上对输出部分做一补充,部分代码如下:
......
  (setq ent (entsel "\n请选择作为结果输出的文字:"))
  (if (= ent nil)
    (princ "\n乘积计算中途退出。")
    (progn
      (setq ent_date (entget (car ent)))
      (setq old_wz_list (assoc 1 ent_date))
      (setq ent_date (subst (cons 1 ss) old_wz_list ent_date))
      (entmod ent_date)      
      (princ)
      (princ "\n乘积计算完毕")
    )
  )
  (setvar "blipmode" blio)
  (setvar "cmdecho" cmdo)
  (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-26 17:08:14 | 显示全部楼层
加入了判断 空 的语句,好,谢谢
XYP是高手,语句精炼啊!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 08:44 , Processed in 0.427879 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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