明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 993|回复: 17

[提问] 请各位老师看看怎么修改,或者提供一下修改思路

[复制链接]
发表于 2024-7-31 17:46:48 | 显示全部楼层 |阅读模式
小白在论坛上抄了一个制作DCL的代码,想修改成计算输入的数字,点击确认后返回计算结果到最后一个空格内,但是完全没有头绪,用了AI帮忙修改都不行,所以来请教一下各位老师,或者提供一下修改的思路,谢谢。
  1. (defun C:WW ()
  2.   (setq dcl_file (open (setq tmp-dcl-file-name (vl-filename-mktemp nil nil ".DCL")) "w"))
  3.   (progn
  4.     (foreach x
  5.       '(  
  6.         "ZW:dialog {"
  7.         "    label = "计算" ;"
  8.         "    :boxed_column {"
  9.         "        :edit_box{label = "数A:" ; name = "BH"; height=1;}"
  10.         "        :edit_box{label = "数B:" ; name = "JD"; height=1;}"
  11.         "        :edit_box{label = "结果:" ; name = "JG"; height=1;}"
  12.         "    }"
  13.         "    ok_button;"
  14.         "    cancel_button;"
  15.         "}"
  16.       ) (write-line x dcl_file) )
  17.     (setq dcl_file (close dcl_file))

  18.   (setq dcl_id (load_dialog tmp-dcl-file-name))
  19.   (if (not (new_dialog "ZW" dcl_id)) (exit)) ;; 激活对话框

  20.   (setq side "") ; 初始化side变量
  21.   (setq AA (start_dialog)) ; 启动对话框
  22.   (if (eq AA 1)
  23.     (progn
  24.       (setq TT1 (getvar "BH"))
  25.       (setq YY1 (getvar "JD"))
  26.       (setq result (* TT1 YY1))
  27.       (setvar "result" (itoa JG))
  28.     )
  29.   )
  30. )
  31. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2024-8-30 15:02:52 | 显示全部楼层
非常感谢lee50310,cjrun,xyp1964三位老师的指导,帮助小白我搞出第一个插件,功能是便于钣金折弯展开计算,下面放源码出来,大家有用的就下载来看看吧哈哈哈,谢谢大家

本帖子中包含更多资源

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

x
发表于 2024-8-1 08:40:23 | 显示全部楼层
本帖最后由 lee50310 于 2024-8-1 08:42 编辑

已改好, 輸入兩數值 再按 結果鍵
執行指令:ww

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 金钱 +20 收起 理由
chen3732088 + 1 + 20 很给力!
zhoupeng220 + 1 很给力!

查看全部评分

回复 支持 2 反对 0

使用道具 举报

发表于 2024-8-28 21:49:59 | 显示全部楼层
本帖最后由 cjrun 于 2024-8-29 16:31 编辑


;增加输入为0时的判断和自动计算
  • (defun C:QQA ()
  •   (defun s_tan (A1);正切函数;输入弧角度如π
  •     (if (= (cos A1) 0) (sin A1) (/ (sin A1) (cos A1)))
  •   )
  •   (setq dcl_file (open (setq tmp-dcl-file-name (vl-filename-mktemp nil nil ".DCL")) "w"))
  •   (progn
  •     (foreach x
  •       '(
  •          "ZW:dialog {"
  •          "    label = \"折弯系数\" ;"
  •          "    :boxed_column {"
  •          "        :edit_box{label = \"板厚  :\" ; key = \"BH\"; height=1;}"
  •          "        :edit_box{label = \"角度  :\" ; key = \"JD\"; height=1;}"
  •          "  :row {edit_width = true;"
  •          "        :button{label = \"计算\"; key = \"SUM\" ;  height=1; width=1; fixed_width = true; }"
  •          "        :edit_box{ key = \"JG\"; height=1; edit_width = 14; }"
  •          "}"
  •          "    }"
  •          ":text_part{ label=\"备注:\"; key=\"SGG\";}"
  •          ":text_part{ label=\"计算结果为单边扣除尺寸\"; key=\"SRR\";}"
  •          "    ok_cancel;"
  •          ":text_part{ label=\"BY:Mentos\"; key=\"tmx\";}"
  •          "}"
  •        )
  •       (write-line x dcl_file)
  •     )
  •     (defun do:sum ()
  •       (setq jg_key (rtos (* 0.833 (read bh_key)(/ 1 (s_tan (/ (* (read jd_key) 3.14) 360)))) 2 1))
  •     )
  •     (defun fun:sum ()
  •       (do:sum)
  •       (set_tile "JG"  jg_key)
  •     )
  •     (setq dcl_file (close dcl_file))
  •     (setq dcl_id (load_dialog tmp-dcl-file-name))
  •     (if (not (new_dialog "ZW" dcl_id)) (exit)) ;; 激活对话
  •     ;key命名触发操作
  •     (if (not bh_key) (progn (setq bh_key "10") ))
  •     (if (not jd_key) (progn (setq jd_key "10")))
  •     (do:sum)
  •     (set_tile "BH" bh_key)
  •     (set_tile "JD" jd_key)
  •     (set_tile "JG" jg_key)
  •     ;(if (not sum) (setq bh "10"))
  •     (action_tile "BH" (vl-prin1-to-string '(progn (if (= $value "0")(alert "板厚不能为 0 !!!") (setq bh_key $value))(fun:sum)))) ;当编辑框有输入值时 将值存入 bh_key变数中
  •     (action_tile "JD" (vl-prin1-to-string '(progn (if (= $value "0")(alert "角度不能为 0 !!!") (setq jd_key $value)) (fun:sum))))
  •     (action_tile "SUM" "(fun:sum)")
  •     (action_tile "cancel" "(done_dialog 0)") ;按取消键 离开
  •     (mode_tile "tmx" 1)
  •     (mode_tile "SGG" 1)
  •     (mode_tile "SRR" 1)
  •     (mode_tile "JG" 1)
  •     (action_tile "accept" "(setq sum_key (atof (get_tile \"JG\")))(done_dialog 1)");按确认键
  •     (setq AA (start_dialog)) ; 启动对话框
  •     ;(if (eq AA 1)
  •     ;        (progn     
  •     ;        )
  •     ;)
  •   )
  •   (princ)
  • )

评分

参与人数 1明经币 +1 金钱 +20 收起 理由
chen3732088 + 1 + 20 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-8-1 08:45:56 | 显示全部楼层
lee50310 发表于 2024-8-1 08:40
已改好, 輸入兩數值 再按 結果鍵
執行指令:ww

很好→很棒!很好~很棒!!很好……很棒!!!
 楼主| 发表于 2024-8-1 08:49:47 | 显示全部楼层
lee50310 发表于 2024-8-1 08:40
已改好, 輸入兩數值 再按 結果鍵
執行指令:ww

非常感谢老师
 楼主| 发表于 2024-8-5 20:42:09 | 显示全部楼层
lee50310 发表于 2024-8-1 08:40
已改好, 輸入兩數值 再按 結果鍵
執行指令:ww

您好lee老师,请问在这个代码上添加一个记忆功能,记住数A上一次输入的结果,请问应该怎么改,或者老师有参考的案例吗,谢谢您
发表于 2024-8-5 21:28:14 | 显示全部楼层
这个对lee50310来说分分钟的事情啦
发表于 2024-8-6 09:54:37 | 显示全部楼层
chen3732088 发表于 2024-8-5 20:42
您好lee老师,请问在这个代码上添加一个记忆功能,记住数A上一次输入的结果,请问应该怎么改,或者老师有 ...

面板設定記憶功能, 這裡有以前發表的 參考範例 請參考看看!

[源码] <*** DCL面板設定+記憶功能+幻燈片(尺吋標註) ***>
http://bbs.mjtd.com/thread-189122-1-1.html

评分

参与人数 1明经币 +1 金钱 +20 收起 理由
chen3732088 + 1 + 20 谢谢lee老师

查看全部评分

 楼主| 发表于 2024-8-28 17:54:20 | 显示全部楼层
lee50310 发表于 2024-8-6 09:54
面板設定記憶功能, 這裡有以前發表的 參考範例 請參考看看!

[源码]  

您好lee老师,最近才有空去研究这个记忆功能,但是看了您给出案例,本人愚昧,实在想不出如何插入代码,能劳烦您有空帮忙修改一下吗,这是我根据您帮忙修改的程序去改的一个钣金展开计算,谢谢

本帖子中包含更多资源

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

x
发表于 2024-8-28 19:55:12 | 显示全部楼层
chen3732088 发表于 2024-8-28 17:54
您好lee老师,最近才有空去研究这个记忆功能,但是看了您给出案例,本人愚昧,实在想不出如何插入代码, ...

.......我看看!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:39 , Processed in 0.271045 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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