找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1726|回复: 5

[求助] [求助]:可以编程序吗?计算用钢量

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

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

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

×
可以编这样的LSP程序吗?如在CAD中有这样的材料表

规格    长度   数量   单重   总重
角钢
槽钢
圆管
圆钢
檩条
等等

规格、长度、数量、单重、总重都有写数学。编写的程序输入后分别点击规格,长度,数量,然后再点击单重,总重会做出相应的正确的修改。象这样的程序可以编写吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-11-10 20:53:43 | 显示全部楼层
不复杂,可以。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-11-13 18:58:18 | 显示全部楼层
可使用lisp及dcl编写程序,汇总及各部修改在输入完毕并导入屏幕时一起修改。
下图使用明细表模块生成的明细表与楼主的类似:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-11-14 17:19:25 | 显示全部楼层
技术含量是不高,可是工作量(主要是要把所有规格的截面积列出来)就有点太大了
只用Lisp肯定能做出来,但是感觉做这个有点浪费时间,划不来的




;1. 选择时,规格必须是已经列到lst中的,长度必须为数值文本,数量必须为正整数
;2. 没考虑文本坐标相对位置问题(就是说,只要满足上一条要求,不论文本相对位置如何,都进行计算),
;   否则的话可以用选择集同时选取规格、长度、数量、总重文本,然后判断其相对位置自动计算并赋值
;3. 程序执行中,点击鼠标右键退出

(defun c:zz(/ lst si kg_m mm sum standard_text length_text number_text sum_weight_text sum_weight_en)
    (setq lst '(("L20x3" . 0.889)
                ("L20x4" . 1.145)
                ("L25x3" . 1.124)
                ("L25x4" . 1.459)
                ("L30x3" . 1.373)
                ("L30x4" . 1.786)
                ("L36x3" . 1.656)
                ("L36x4" . 2.163)
                ("L36x5" . 2.654)
                ("L25x16x3" . 0.912)
                ("槽钢 50x37x4.5" . 5.438)
                ;主要的工作量体现在这里,要将所有用到的型钢规格及单位长度质量列到这里
               )
    )
    (princ "\n\n")
    (setq kg_m 0.0)
    (while (zerop kg_m)
        (setq standard_text (cdr (assoc 1 (entget (car (xentsel "\n指定型钢规格:" '((0 . "*text"))))))))
        (if (setq si (assoc standard_text lst))
            (setq kg_m (cdr si))
        )
    )
    (princ standard_text)
    (setq mm 0.0)
    (while (zerop mm)
        (setq length_text (cdr (assoc 1 (entget (car (xentsel "\n指定型钢长度:" '((0 . "*text"))))))))
        (if (setq si (distof length_text))
            (setq mm si)
        )
    )
    (princ (strcat length_text "mm"))
    (setq num 0)
    (while (zerop num)
        (setq number_text (cdr (assoc 1 (entget (car (xentsel "\n指定型钢数量:" '((0 . "*text"))))))))
        (if (wcmatch number_text "~*[~0-9]*")
            (setq num (atoi number_text))
        )
    )
    (princ (strcat number_text "个"))
    (setq sum_weight_text (rtos (* kg_m mm num 0.001) 2 3))
    (princ (strcat "\n<型钢总重:" sum_weight_text "kg>"))
    (setq sum_weight_en (entget (car (xentsel "\n指定代表总重的文本图元:" '((0 . "*text"))))))
    (setq sum_weight_en (subst (cons 1 sum_weight_text) (assoc 1 sum_weight_en) sum_weight_en))
    (entmod sum_weight_en)
    (princ)
)
         
;No.1 选择,类型不附继续选择,为空则退出
;made by 铁甲蚂蚁
(defun xentsel(txt plist / ss sn en)
    ;(setq txt "\n请选择一个圆:")
    ;(setq plist '((0 . "circle")))
    (setq ss (ssget "x" plist))
    (setq sn 0)
    (while (zerop sn)
        (setq en (entsel (strcat "\n" txt)))
        (if (not en) (vl-exit-with-error ""))
        (if (ssmemb (car en) ss) (setq sn 1))
    )
    en
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 07:59 , Processed in 0.396302 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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