找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 782|回复: 14

[编程申请]:欢迎讨论,怎样编一个CAD内嵌的工程计算器?

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

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

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

×
在CAD绘图过程中,经常要用到工程计算方面的问题,虽然CAD中有_cal命令,但对繁杂的工程计算公式,每次输入不方便,在此我提议编程将公式一次输入,以后调用该公式时只需输入变量即可计算出结果.
   例:1、材料计算公式。2、机械方面的强度校核、链轮计算等公式。3、化学工程上的流体流动等公式
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-13 10:57:47 | 显示全部楼层
和绘图结合起来岂不是更好!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 15:20:11 | 显示全部楼层
大致界面已成形,见附件,我无法将所输入公式转化为VBA计算公式和赋值,请大虾用VBA程序指点一二。*-*3 *-*4
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-14 16:16:28 | 显示全部楼层
怎样将所输入公式转化为VBA计算公式和赋值,
  cobobox1.text="a+b/c*sin(d)"
   a=5:b=10:c=2:d=45
textbox1.text=a+b/c*sin(d)

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

使用道具 举报

发表于 2005-10-14 17:41:00 | 显示全部楼层
Sub test()
Set oScript = CreateObject("ScriptControl")
oScript.language = "VBS"
oScript.ExecuteStatement "a=1"
oScript.ExecuteStatement "b=2"
MsgBox oScript.Eval("a+b")

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-15 16:48:26 | 显示全部楼层
最初由 lzh741206 发布
[B]Sub test()
Set oScript = CreateObject("ScriptControl")
oScript.language = "VBS"
oScript.ExecuteStatement "a=1"
oScript.ExecuteStatement "b=2"
MsgBox oScript.Eval("a+b")
End Sub [/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-20 17:26:01 | 显示全部楼层
E:\My Documents\sendxdsoft\工程计算器.bmp
  如上图所示,因各工程公式变量不一,还要能识别象cos等函数也可误用别,那位大侠帮我?*-*3*-*8
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 21:00:58 | 显示全部楼层
6楼的代码你没试过么?
ScriptControl组件可以处理复杂的表达式,还可以加入函数,下面的例子加入一个弧度转度数的函数r2d,并求出其正弦值
不需引用

  1. Sub test()
  2. Set oScript = CreateObject("ScriptControl")
  3. oScript.language = "VBS"
  4. oScript.ExecuteStatement "a=1"
  5. oScript.ExecuteStatement "b=30"
  6. oScript.addcode "function r2d(val):r2d=atn(1)*val/45.0:end function"
  7. MsgBox oScript.Eval("a+sin(r2d(b))")
  8. End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-21 18:46:58 | 显示全部楼层
只要你想到的,它都能计算,比如((100^2+300/2)*500+700-600^2)^0.5
sin(),cos()都不成问题,注意在工程中应引用excel库
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-22 10:17:33 | 显示全部楼层
这就奇怪了,我在VB6.0及AutoCAD VBA下运行不成功,见图,请教各位大侠,问题出在哪?E:\My Documents\Sendxdsoft\HzCal1.bmp *-*3 *-*6

  1.   [FONT=courier new]
  2. Option Explicit
  3. Dim oScript As Object
  4. Sub text()
  5. 'On Error GoTo ExitSub
  6. Set oScript = CreateObject("ScriptControl")
  7. oScript.language = "VBS"
  8. oScript.ExecuteStatement "a=1"
  9. oScript.ExecuteStatement "b=30"
  10. oScript.addcode "function r2d(val):r2d=atn(1)*val/45.0:end function"
  11. MsgBox oScript.Eval("a+sin(r2d(b))")
  12. 'ExitSub:
  13. End Sub

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-11-8 16:02:06 | 显示全部楼层
谢谢,终于找到这个控件,我还想请教各位大侠,在AutoCAD VBA能象VB一样绑定控件吗? 怎样做?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 08:18 , Processed in 0.374683 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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