明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 892|回复: 9

[提问] 求个小程序,求挤压比,谢谢

[复制链接]
发表于 2022-4-7 17:14:05 | 显示全部楼层 |阅读模式
求个铝材挤压比的程序,请大师帮个忙,!先谢!先谢!


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-4-8 07:15:49 | 显示全部楼层
楼主这是挤压模具厂的设计吗
发表于 2022-4-8 09:27:54 | 显示全部楼层
不应该是面积的比值吗?挤压后容重变了?
 楼主| 发表于 2022-4-8 09:49:44 | 显示全部楼层
一样的,面积和重量 可以转的
 楼主| 发表于 2022-4-8 09:50:18 | 显示全部楼层
是的  同行吗?
发表于 2022-4-8 10:40:49 | 显示全部楼层
本帖最后由 夏生生 于 2022-4-9 22:10 编辑

大概是这么个意思,根据自己需求去改吧
  1. (defun c:tt (/         xty-sys-makeFbylst     do_bt1
  2.          do_bt2     area3         callback     dcllst
  3.          dcl_id     en         tmpf
  4.          )
  5.   (defun xty-sys-makeFbylst (filename strlst / f n)
  6.     (setq f (open filename "w"))
  7.     (foreach n strlst
  8.       (if (eq (type n) 'STR)
  9.     (write-line n f)
  10.     (write-line (vl-princ-to-string n) f)
  11.     )
  12.       )
  13.     (close f)
  14.     filename
  15.     )
  16.   (defun do_bt1    ()
  17.     (setq en (ssget  ":e:s"'((0 . "REGION"))))
  18.     (if    en
  19.       (setq *area1* (vla-get-area (vlax-ename->vla-object (ssname en 0)))
  20.         area3   (rtos (/ *area1* (atof *area2*)) 2 6)
  21.         *area1* (rtos *area1* 2 3)
  22.         )
  23.       )
  24.     )
  25.   (defun do_bt2    ()
  26.     (setq en (ssget":e:s" '((0 . "REGION"))))
  27.     (if    en
  28.       (setq *area2* (vla-get-area (vlax-ename->vla-object (ssname en 0)))
  29.         area3   (rtos (/ (atof *area1*) *area2*) 2 6)
  30.         *area2* (rtos *area2* 2 3)
  31.         )
  32.       )
  33.     )
  34.   (setq    dcllst     (list
  35.            "ExtrusionRatio:dialog{label=\"ExtrusionRatio\";"
  36.            ":row{:edit_box{key=\"eb1\";label=\"锭坯截面积(mm^2):\";}"
  37.            ":button{key=\"bt1\";label = \"拾取面域>\";}}"
  38.            ":row{:edit_box{key=\"eb2\";label=\"型材截面积(mm^2):\";}"
  39.            ":button{key=\"bt2\";label = \"拾取面域>\";}}"
  40.            ":row{:edit_box{key=\"eb3\";label=\"挤压比:\";}ok_cancel;}}")
  41.     tmpf     (xty-sys-makeFbylst
  42.            (vl-filename-mktemp nil nil ".dcl")
  43.            dcllst
  44.            )
  45.     dcl_id     (load_dialog tmpf)
  46.     *area1*     (if (not *area1*)
  47.            "201."
  48.            *area1*
  49.            )
  50.     *area2*     (if (not *area2*)
  51.            "101."
  52.            *area2*
  53.            )
  54.     area3     (rtos (/ (atof *area1*) (atof *area2*)) 2 6)
  55.     callback 2
  56.     )
  57.   (vl-file-delete tmpf)
  58.   (while (> callback 1)
  59.     (new_dialog "ExtrusionRatio" dcl_id)
  60.     (set_tile "eb1" *area1*)
  61.     (set_tile "eb2" *area2*)
  62.     (set_tile "eb3" area3)
  63.     (action_tile "bt1" "(done_dialog 2)")
  64.     (action_tile "bt2" "(done_dialog 3)")
  65.     (setq callback (start_dialog))
  66.     (cond ((= 2 callback) (do_bt1))
  67.       ((= 3 callback) (do_bt2))
  68.       )
  69.     )
  70.   (unload_dialog dcl_id)
  71.   )



 楼主| 发表于 2022-4-9 08:05:01 | 显示全部楼层
谢了,夏生,效果不错,谢谢,我更需要的是用半径算重量,再除型材重量!
发表于 2022-4-9 10:19:20 | 显示全部楼层
夏生生 发表于 2022-4-8 10:40
大概是这么个意思,根据自己需求去改吧

您好大佬 您的这个插件锭胚截面积  能不能改成直接输入棒径 就可以计算
发表于 2022-4-9 22:05:05 | 显示全部楼层
本帖最后由 夏生生 于 2022-4-9 22:08 编辑
lzg8877 发表于 2022-4-9 08:05
谢了,夏生,效果不错,谢谢,我更需要的是用半径算重量,再除型材重量!

稍微改一下就是了
  1. (defun c:tt (/                 xty-sys-makeFbylst         do_bt1
  2.              do_bt2         area4             callback         dcllst
  3.              dcl_id         en             tmpf
  4.             )
  5.   (defun xty-sys-makeFbylst (filename strlst / f n)
  6.     (setq f (open filename "w"))
  7.     (foreach n strlst
  8.       (if (eq (type n) 'STR)
  9.         (write-line n f)
  10.         (write-line (vl-princ-to-string n) f)
  11.       )
  12.     )
  13.     (close f)
  14.     filename
  15.   )
  16.   (defun do_bt1        ()
  17.     (setq en (ssget ":e:s"'((0 . "*text"))))
  18.     (if        en
  19.       (setq *area3* (vla-get-textstring (vlax-ename->vla-object (ssname en 0)))
  20.             area4   (rtos (/(* 0.25 (atof *area2*)(atof *area2*)(atof *area1*) pi)(atof *area3*))2 6)
  21.       )
  22.     )
  23.   )
  24. (defun do_bt2 ()
  25.   (setq        *area1*        (get_tile "eb1")
  26.         *area2*        (get_tile "eb2")
  27.         *area3*        (get_tile "eb3")
  28.         area4   (rtos (/(* 0.25 (atof *area2*)(atof *area2*)(atof *area1*) pi)(atof *area3*))2 6)
  29.   )
  30.   (set_tile "eb4"area4)
  31. )
  32.   (setq        dcllst         (list
  33.                    "ExtrusionRatio:dialog{label=\"ExtrusionRatio\";"
  34.                    ":row{:edit_box{key=\"eb1\";label=\"容重(g/mm^3):\";}"
  35.                    ":edit_box{key=\"eb2\";label=\"直径(mm):\";}}"
  36.                    ":row{:edit_box{key=\"eb3\";label=\"型材质量(g):\";}"
  37.                    ":button{key=\"bt1\";label = \"拾取文字>\";}}"
  38.                    ":row{:edit_box{key=\"eb4\";label=\"挤压比:\";}:button{key=\"bt2\";label = \"计算\";}ok_only;}}")
  39.         tmpf         (xty-sys-makeFbylst
  40.                    (vl-filename-mktemp nil nil ".dcl")
  41.                    dcllst
  42.                  )
  43.         dcl_id         (load_dialog tmpf)
  44.         *area1*         (if (not *area1*)
  45.                    "0.00273"
  46.                    *area1*
  47.                  )
  48.         *area2*         (if (not *area2*)
  49.                    "120."
  50.                    *area2*
  51.                  )
  52.         *area3*         (if (not *area3*)
  53.                    "1.389"
  54.                    *area3*
  55.                  )
  56.         area4(rtos (/(* 0.25 (atof *area2*)(atof *area2*)(atof *area1*) pi)(atof *area3*))2 6)
  57.         callback 2
  58.   )
  59.   (vl-file-delete tmpf)
  60.   (while (> callback 1)
  61.     (new_dialog "ExtrusionRatio" dcl_id)
  62.     (set_tile "eb1" *area1*)
  63.     (set_tile "eb2" *area2*)
  64.     (set_tile "eb3" *area3*)
  65.     (set_tile "eb4" area4)
  66.     (action_tile "bt1" "(setq *area1* (get_tile \"eb1\")*area2* (get_tile \"eb2\"))(done_dialog 2)")
  67.     (action_tile "bt2" "(do_bt2)")
  68.     (setq callback (start_dialog))
  69.     (if(= 2 callback)(do_bt1))
  70.   )
  71.   (unload_dialog dcl_id)
  72. )

可能我的浏览器有问题,lsp在这里

本帖子中包含更多资源

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

x
发表于 2022-4-12 10:53:04 | 显示全部楼层
楼主这是挤压模具厂的设计吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:48 , Processed in 0.522225 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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