lohas1118 发表于 2012-8-9 16:30:10

有木有能计算重量的LISP.材质与密度需可修改。有木有啊!

本帖最后由 lohas1118 于 2012-8-15 17:13 编辑

有木有能计算重量的LISP.材质与密度需可修改。有木有啊!

preone 发表于 2012-8-9 16:30:11

本帖最后由 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)
)

不知道是不是你要的东西~~注意需严格按照提示语句执行~~另外计算价格还需注意输入数值的单位等~~

zoloo 发表于 2012-8-9 17:14:11

有的,看你要怎样计算。

myjping 发表于 2012-8-9 17:48:21

要带框,存常用材料,还要有记忆材料功能,最好加上查看型材截面功能,简单倒简单,但太便宜了

preone 发表于 2012-8-9 18:26:24

重量=面积x长度x密度
分别赋值,然后列个公式,就出来了~~
赋值用   setq 函数
公式为    (* 面积 长度 密度)
这个,自己编一下就可以了~~

42142 发表于 2012-8-9 22:33:23

本帖最后由 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:56

上面的能实现了,但不够完美

myjping 发表于 2012-8-10 13:08:12

myjping 发表于 2012-8-10 09:10 static/image/common/back.gif
上面的能实现了,但不够完美


lohas1118 发表于 2012-8-11 14:46:58

zoloo 发表于 2012-8-9 17:14 static/image/common/back.gif
有的,看你要怎样计算。

选择图元,输入或选择长宽。得出重量。
主要用于零件重量的计算,材质45#,SKD11,SKH9,WC.等

lohas1118 发表于 2012-8-13 15:41:29

lohas1118 发表于 2012-8-11 14:46 static/image/common/back.gif
选择图元,输入或选择长宽。得出重量。
主要用于零件重量的计算,材质45#,SKD11,SKH9,WC.等

已经上传,多谢了
页: [1] 2 3 4
查看完整版本: 有木有能计算重量的LISP.材质与密度需可修改。有木有啊!