明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1148|回复: 6

[基础] 请问这个函数可以实现字符串-12x200中的12与200相乘嘛?

[复制链接]
发表于 2011-7-10 15:39 | 显示全部楼层 |阅读模式
请问这个函数可以实现字符串-12x200中的12与200相乘嘛?
(defun c:CX ()
(setq i 1 num "")
(princ "请选择需要相乘的第一个数字\n")
(setq a1 (entsel))
(repeat (strlen a1)
(setq ch (substr a1 i 1))
(if (or (= ch "-") (= ch "x"))
(progn
(setq num2 num)
(setq num "")
)
(setq num (strcat num ch))
)
(setq i (1+ i))
)
(* (atof (cdr (assoc 1 (entget (car (num)))))) (atof (cdr (assoc 1 (entget (car (num2)))))))
)
如果不能实现又要怎么改才能实现呢?
感激不尽
发表于 2011-7-10 16:15 | 显示全部楼层

  1. (defun c:CX ()
  2.   (arxload (findfile "geomcal.arx"))
  3.   (setq        i   1
  4.         num ""
  5.   )
  6.   (princ "请选择需要相乘的第一个数字\n")
  7.   (setq a1 (cdr (assoc 1 (entget (car (entsel))))))
  8.   (repeat (strlen a1)
  9.     (setq ch (substr a1 i 1))
  10.     (if        (or (= ch "x") (= ch "X"))
  11.       (setq ch "*")
  12.     )
  13.     (setq num (strcat num ch))

  14.     (setq i (1+ i))
  15.   )
  16.   (setq jieguo (cal num))
  17. )

 楼主| 发表于 2011-7-10 17:51 | 显示全部楼层
非常感谢。继续学习
 楼主| 发表于 2011-7-10 18:00 | 显示全部楼层
可以说一下我的程序为什么不能实现嘛?
 楼主| 发表于 2011-7-10 18:01 | 显示全部楼层
回复 zhynt 的帖子

可以说一下我的程序为什么不能实现嘛?
发表于 2011-7-10 18:17 | 显示全部楼层
chenying0527 发表于 2011-7-10 18:01
回复 zhynt 的帖子

可以说一下我的程序为什么不能实现嘛?

错误太多,不好讲;
给你一些建议,在编程的时候,可以用Visual LISP编译器来调试,可以逐步来检查,注意看它的返回值是什么.象(setq a1 (entsel)) 它的返回值是一个图元名与坐标值的列表,接下来这句(repeat (strlen a1)就明显错误了....
 楼主| 发表于 2011-7-10 21:45 | 显示全部楼层
谢谢,还得努力啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 11:00 , Processed in 0.150744 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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