明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3156|回复: 13

请对话框高手帮我把程序加个对话框

  [复制链接]
发表于 2009-10-28 09:58:00 | 显示全部楼层 |阅读模式

我自己写了个程序,是LISP的,要经常用到,可是每次改一个数都要输入多个数,很不方便,所以想做成对话框输入,这样改一个数其他的就不用重复输入,要方便一点,可以我不会DCL的编程,有没有高手可以帮我改一下,期待了。源码如下

(defun c:CX3(/ zwzd spt1 spt2 spt3 spt4 SMZX xmyd xpt1 xpt2 xpt3 xpt4 xMZX Apc pp2 Aen1 Aang1 Aang2 jl1 jl2 Adeg);;;;;;;;;;;;;;;绘出成型冲头的上下模辅助线
(setq os (getvar "osmode" ) cm (getvar "cmdecho"))
  (setvar "cmdecho" 0)
;;--------------------------------------------------------------
  (if (= ctcd nil)()(prompt (strcat "冲头长度(s) " (rtos ctcd) " ,下模长度(xs) " (rtos xmcd))))
  (setq pp (getpoint "\n冲头长度(s),下模长度(xs) " ))
  (if (= pp nil)()(setq ctcd (car pp) xmcd (cadr pp)))

  (if (= ctkd nil)()(prompt (strcat "\n冲头宽度(k) " (rtos ctkd) " ,下模宽度(xk) " (rtos xmkd))))
  (setq ppp (getpoint "\n冲头宽度(k),下模宽度(xk)" ))
  (if (= ppp nil)()(setq ctkd (car ppp) xmkd (cadr ppp)))

  (if (= ctr nil)()(prompt (strcat "\n冲头圆角半径(r)" (rtos ctr) " ,下模圆角半径(R) " (rtos xmr) " ,冲头离折弯线距离(L) " (rtos zwjl) " ,下模离折弯线距离(XL)" (rtos xmjl))))
  (setq pppp (getpoint "\n冲头圆角半径(r),下模圆角半径(R),冲头离折弯线距离(L),下模离折弯线距离(XL) " ))
  (if (= pppp nil)()(setq ctr (car pppp) xmr (cadr pppp) zwjl (caddr pppp) xmjl (nth 3 pppp)))(princ pppp)
;;---------------------------------------------------------------

  (setq Apc (entsel "\n选取参考方向的直线<空格键为0度>: "))
  (if (not Apc)
    (progn
      (setq Adeg 0.0)
      (print (strcat "角度: " (rtos Adeg 2 5)))
    )
    (progn
      (setq pp2 (cadr Apc))
      (setq Aen1 (entget (car Apc)))
      (setq Aang1 (cdr (assoc 10 Aen1)))
      (setq Aang2 (cdr (assoc 11 Aen1)))
      (setq jl1 (distance pp2 Aang1))
      (setq jl2 (distance pp2 Aang2))
      (if (< jl1 jl2) (setq Arad (angle Aang1 Aang2)) (setq Arad (angle Aang2 Aang1)))
      (setq Adeg (atof (angtos Arad 0 2)))
      (print (strcat "角度: " (rtos Adeg 2 5)))
    )
  )
;;----------------------------------------------------------------

    (setq zwzd (getpoint  "\n选取折弯线中点: "))
(setvar "osmode" 2)
(setq ACzd (polar zwzd (* pi (/ Adeg 180)) (- zwjl)))  ;;先计算出偏移的zwzd
(setvar "osmode" 0)
(setvar "CLAYER" "2")
(setq spt1 (polar zwzd (/ pi 2) (/ ctkd 2.0)))
(setq spt2 (polar spt1 0 ctcd))
(setq spt3 (polar spt1 (* pi 1.5) ctkd))
(setq spt4 (polar spt3 0 ctcd))
(command "rectang" "f" ctr spt1 spt4  "")         ;;;画带园角的矩形
(setq SMZX (ssget "l"))                      ;;求出它的选择集
;;----------------------------------------------------------------
(setvar "CLAYER" "1")
(setq xmyd (polar zwzd pi (- xmjl 0.1)));;;;冲头前面离下模的距离可以在这里减掉,0.1就是距离0.1mm
(setq xpt1 (polar xmyd (/ pi 2) (/ xmkd 2.0)))
(setq xpt2 (polar xpt1 0 xmcd))
(setq xpt3 (polar xmyd (* pi 1.5) (/ xmkd 2.0)))
(setq xpt4 (polar xpt3 0 xmcd))
(command "rectang" "f" xmr xpt1 xpt4  "")       ;;;画带园角的矩形
(setq AMZX (ssget "l"))                    ;;求出它的选择集)
;;----------------------------------------------------------------
(command "rotate" AMZX  SMZX ""Zwzd Adeg)
(command "MOVE" AMZX  SMZX ""zwzd ACzd)
(setvar "osmode" os)
(setvar "cmdecho" cm)
(PRINC)
)

 楼主| 发表于 2009-10-28 10:06:00 | 显示全部楼层
本帖最后由 作者 于 2009-10-28 16:16:20 编辑

对话框如下,有劳各位大虾,谢谢

本帖子中包含更多资源

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

x
发表于 2009-10-28 10:34:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-10-28 15:18:00 | 显示全部楼层
zm这么多人看,怎么没有一个帮忙的
发表于 2009-10-28 18:13:00 | 显示全部楼层

这个最好自己学一下

一般我做 DCL 的代码都是一行5分钱呢 便宜你了

本帖子中包含更多资源

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

x
发表于 2009-10-29 05:54:00 | 显示全部楼层
下载学习!谢谢楼上!
 楼主| 发表于 2009-10-29 08:01:00 | 显示全部楼层
虽然还不能直接使用,但还是谢谢你。看来我又要学一下DCL才行了
发表于 2010-1-31 10:17:00 | 显示全部楼层
猫真好!呼呼
发表于 2010-1-31 10:57:00 | 显示全部楼层

楼主可以试一下一个叫 CreateDCL.lsp的程序。创建DCL on fly

发表于 2010-1-31 11:16:00 | 显示全部楼层
秋枫发表于2010-1-31 10:57:00楼主可以试一下一个叫 CreateDCL.lsp的程序。创建DCL on fly

CreateDCL.lsp这个程序在哪里?

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

本版积分规则

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

GMT+8, 2024-10-1 23:32 , Processed in 0.225196 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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