有木有能计算重量的LISP.材质与密度需可修改。有木有啊!
本帖最后由 lohas1118 于 2012-8-15 17:13 编辑有木有能计算重量的LISP.材质与密度需可修改。有木有啊! 本帖最后由 preone 于 2012-8-16 17:13 编辑
lohas1118 发表于 2012-8-13 15:56 http://bbs.mjtd.com/static/image/common/back.gif
你好,我上传图档,你看这个样子可以编个程序吗
(defun c:tts (/ midu changdu wks nbsh ssn scha tg pt)
(setvar "cmdecho" 0)
(setq midu(getreal "输入材料密度(kg/m^3):"))
(setq changdu(getreal "输入计算长度或厚度(mm):"))
;下部分为求面积部分
(if (null (setq scha (getreal "输入计算面积(mm^2):")))
(progn
(prompt "选择外框面域或多段线:")
(command "area"
"e"
(ssget '((0 . "REGION,LWPOLYLINE,CIRCLE")))
)
(setq wks (getvar "area"))
(prompt "逐一选择内部面域或多段线:")
(setq nbsh 0)
(while
(setq ssn (ssget'((0 . "REGION,LWPOLYLINE,CIRCLE"))))
(command "area" "e" ssn)
(setq nbsh (+ (getvar "area") nbsh))
)
(setq scha (- wks nbsh))
)
)
;end求面积部分
(setq tg (getreal "指定输出字高:"))
(if (null tg)(setq tg (* (getvar "dimscale") 1.6)) tg)
(setq pt (getpoint"\n指定插入点:"))
(command "text" "s" "standard" pt tg "0" (strcat "G=" (rtos (/ (* scha changdu midu) 1000000) 2 6) "kg"))
(prin1)
)
不知道是不是你要的东西~~注意需严格按照提示语句执行~~另外计算价格还需注意输入数值的单位等~~
有的,看你要怎样计算。 要带框,存常用材料,还要有记忆材料功能,最好加上查看型材截面功能,简单倒简单,但太便宜了 重量=面积x长度x密度
分别赋值,然后列个公式,就出来了~~
赋值用 setq 函数
公式为 (* 面积 长度 密度)
这个,自己编一下就可以了~~ 本帖最后由 42142 于 2012-8-10 13:07 编辑
;;;计算重量lisp by 小陈 2011.06
(defun c:ZL ()
(setvar "cmdecho" 0)
(initget "Ll Mm Tt")
(setq CGX (getkword
"\n:<L>"
)
)
(if (= CGX nil)
(LZ)
(cond
((= CGX "Ll") (Lz))
((= CGX "Mm") (Mz))
((= CGX "Tt") (Tz))
(T nil)
)
)
(princ)
)
(defun LZ ()
(vl-load-com)
(prompt "\n请选择对象: ")
(WHILE
(setq ENT (ssget c))
(setq ent (ssname ent 0))
(setq ent (vlax-ename->vla-object ent))
(setq area (vlax-get ent 'area))
(setq num (getreal "\n请输入长度: "))
(setq wei (/ (* num area 0.00271) 1000))
(setq wei1 (rtos wei 2 2))
(princ " \n铝板重量= ")
(princ wei1)
(princ "kg/件")
)
(princ)
)
(defun MZ ()
(vl-load-com)
(prompt "\n请选择对象: ")
(WHILE
(setq ENT (ssget c))
(setq ent (ssname ent 0))
(setq ent (vlax-ename->vla-object ent))
(setq area (vlax-get ent 'area))
(setq wei (* area 0.00271))
(setq wei1 (rtos wei 2 2))
(setq P4 (* 2.5 (getvar "dimscale")))
(princ " \n-------->>模图重量=")
(princ wei1)
(princ "kg/m ")
)
(princ)
)
;;;计算铁件重量(kg/m)
(defun TZ ()
(vl-load-com)
(prompt "\n请选择对象: ")
(WHILE
(setq ENT (ssget c))
(setq ent (ssname ent 0))
(setq ent (vlax-ename->vla-object ent))
(setq area (vlax-get ent 'area))
(setq num (getreal "\n请输入长度: "))
(setq wei (/ (* num area 0.00785) 1000))
(setq wei1 (rtos wei 2 2))
(princ wei1)
(princ "kg/件")
)
(princ)
)
上面的能实现了,但不够完美 myjping 发表于 2012-8-10 09:10 static/image/common/back.gif
上面的能实现了,但不够完美
zoloo 发表于 2012-8-9 17:14 static/image/common/back.gif
有的,看你要怎样计算。
选择图元,输入或选择长宽。得出重量。
主要用于零件重量的计算,材质45#,SKD11,SKH9,WC.等 lohas1118 发表于 2012-8-11 14:46 static/image/common/back.gif
选择图元,输入或选择长宽。得出重量。
主要用于零件重量的计算,材质45#,SKD11,SKH9,WC.等
已经上传,多谢了