明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4557|回复: 16

[已解答] 急需LISP源码:钢材重量计算!

[复制链接]
发表于 2014-5-25 09:32 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2014-5-27 15:11 编辑

如题:哪位高手有啊?
主要得到就是钢板计算问题。这对钢构设计太重要啦,我为此都花费大量时间,相信大家都需要。



解释:
    1:程序要求,点取"规格"一栏数据字符 ,比如:-180x8  ,关键这个数值不是纯数字,如何完美拆分相乘?存为变量1
    2:再点取"长度”一栏数据字符,存为变量2
    3:变量2X变量2X78.5=   变量 3
   4:变量3显示,或者点取“单重”一栏,自动修改准确值!  OK



本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2018-9-15 01:55 | 显示全部楼层
程序加上提示:实用性更好了。


;;; 门钢构件表重量自动计算  明经 zzxxqq 2014.5.26
(defun c:ccj (/ ss1 ss2 x1 x2 x3 txt1 txt2 ss3)
(while (and
      
      (princ "\n 选择门钢构件表第一栏: ")
      (setq ss1 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
      (princ "\n 选择门钢构件表第二栏: ")
      (setq ss2 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
      
     )
  (setq txt1 (cdr (assoc 1 (entget (ssname ss1 0)))))
  (if (wcmatch txt1 "*X*")
   (setq x1 (atof (substr txt1 2))
    x2 (atof (substr txt1 (+ 2 (vl-string-position (ascii "X") txt1))))
   )
   (setq x1 (atof txt1)
    x2 1
   )
  )
  (setq txt2 (cdr (assoc 1 (entget (ssname ss2 0)))))
  (if (wcmatch txt2 "#*")
   (setq x3 (atof txt2))
  )
  (setq re (* x1 x2 x3 0.00000785))
  (princ "\n 选择门钢构件表单件重量栏: ")
  (if (setq ss3 (ssget ":E:S" '((0 . "TEXT"))))
   (progn
    (setq ent (entget (ssname ss3 0)))
    (entmod (subst
         (cons 1 (rtos re 2 1))
         (assoc 1 ent)
         ent
        )
    )
   )
  )
)
(princ)
)
;;; 结束===========================================================*


本帖子中包含更多资源

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

x
发表于 2018-9-18 09:01 | 显示全部楼层
这个还可以加上反应器 那效果就无敌了 钢板厚度 宽度长度数量有一个变化 自动算单重总重

点评

说的是,希望开发完善。  发表于 2018-9-22 06:06
 楼主| 发表于 2018-9-17 08:29 | 显示全部楼层
bai2000 发表于 2018-9-16 15:03
楼上的,举个例子

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-5-25 20:57 | 显示全部楼层
本帖最后由 尘缘一生 于 2014-5-27 07:53 编辑

对于这个帖子http://bbs.mjtd.com/thread-107027-1-1.html的编程是不行的,
原因:这个帖子是真对机械设计的,建筑设计用的是这样的表!
发表于 2014-5-26 08:29 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2014-5-27 09:00 编辑

程序测试通过
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2014-5-27 07:58 | 显示全部楼层
本帖最后由 尘缘一生 于 2014-5-27 08:11 编辑
ZZXXQQ 发表于 2014-5-26 08:29
程序未测试
[/post]

非常感谢,

我测试不能运行啊,
一:加载CAD运行提示:

“函数被取消Error: 函数被取消; 错误: *error* 函数中出错AutoCAD 变量设置被拒绝: "blipmode" nil”

我是WIN7系统,64为,AUTOCAD 2010版本。

二:VLISP 编译出现错误提示为:

编译器发现致命错误 "TT.LSP"
Error: 编译器发现致命错误 "TT.LSP"
; 错误: *error* 函数中出错AutoCAD 变量设置被拒绝: "blipmode" nil
_$
发表于 2014-5-27 09:01 | 显示全部楼层
尘缘一生 发表于 2014-5-27 07:58
非常感谢,

我测试不能运行啊,

二楼程序调试好了
 楼主| 发表于 2014-5-27 12:55 | 显示全部楼层
本帖最后由 尘缘一生 于 2014-5-27 13:10 编辑
ZZXXQQ 发表于 2014-5-27 09:01
二楼程序调试好了

不会吧?我测试下,恩,好像对,需要变换单位下。
 楼主| 发表于 2014-5-27 16:13 | 显示全部楼层
本帖最后由 尘缘一生 于 2014-5-27 16:17 编辑

再次表示感谢,调试成功!
  1. ;;; 门钢构件表重量自动计算  明经 zzxxqq 2014.5.26
  2. (defun c:mggl (/ ss1 ss2 x1 x2 x3 txt1 txt2 ss3)
  3.   (while (and
  4.      (setq ss1 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
  5.      (setq ss2 (ssget ":E:S" '((0 . "TEXT") (1 . "*#*"))))
  6.    )
  7.     (setq txt1 (cdr (assoc 1 (entget (ssname ss1 0)))))
  8.     (if (wcmatch txt1 "*X*")
  9.       (setq x1 (atof (substr txt1 2))
  10.       x2 (atof (substr txt1 (+ 2 (vl-string-position (ascii "X") txt1))))
  11.       )
  12.       (setq x1 (atof txt1)
  13.       x2 1
  14.       )
  15.     )
  16.     (setq txt2 (cdr (assoc 1 (entget (ssname ss2 0)))))
  17.     (if (wcmatch txt2 "#*")
  18.       (setq x3 (atof txt2))
  19.     )
  20.     (setq re (* x1 x2 x3 0.00000785))
  21.     (if (setq ss3 (ssget ":E:S" '((0 . "TEXT"))))
  22.       (progn
  23.   (setq ent (entget (ssname ss3 0)))
  24.   (entmod (subst
  25.       (cons 1 (rtos re 2 1))
  26.       (assoc 1 ent)
  27.       ent
  28.     )
  29.   )
  30.       )
  31.     )
  32.   )
  33.   (princ)
  34. )

  35. ;;; 结束===========================================================*
引申考虑:

           我LISP不精通,提点建议,如此好的代码,可以考虑编写一个“炸开文字和数字混编”的代码,就是文字炸开一起,数字炸开在一起,不要文字和数字字符都是单个的。
发表于 2014-6-11 16:32 | 显示全部楼层
我编写的总重计算,可以框选。

本帖子中包含更多资源

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

x

点评

很不错啊。源码可以提供吗?  发表于 2014-6-11 16:55
发表于 2018-9-16 15:03 | 显示全部楼层
楼上的,举个例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 11:14 , Processed in 0.385379 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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