明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6218|回复: 52

处女作,本人开发第一个程序,明经第一时间低调发布

    [复制链接]
发表于 2011-11-25 08:03 | 显示全部楼层 |阅读模式


来明经学LISP已快有两个月,还是谢谢各位大侠帮忙,,,
以下为小弟写的小软件,,呵呵,不足之处望改进(小弟才学一两个月,肯定很多不懂的,,给点意见吧)
  1. ;;;本程序由用户自定义参数快速绘制模具行位三视图
  2. ;;; by tony 20111125
  3. ;;;CAD使用命令:XXX
  4. ;;;
  5. (alert "欢迎使用本程序,若要更多相关程序,请联系QQ:609719845")
  6. (defun c:xxx()
  7.    (setvar "cmdecho" 0)
  8.    (setvar "osmode" 0)
  9.    (dcl_xxx)
  10.    (prin1)
  11. )
  12. (defun dcl_xxx()
  13.    (setq dcl_id (load_dialog "xxx"))
  14.    (new_dialog "xxx" dcl_id)   
  15.    (def_xxx)
  16.    (action_tile "kimage1" "(setq ddtype 1)")
  17.    (action_tile "accept" "(ok_xxx)(done_dialog 1)")
  18.    (setq dd(start_dialog))
  19.    (if (= dd 1)
  20.        (draw_xxx)
  21.    )
  22. )
  23. (defun def_xxx()
  24.    (set_tile "aa1" "15")
  25.    (set_tile "aa2" "5")
  26.    (set_tile "ww1" "53")
  27.    (set_tile "ww2" "43")
  28.    (set_tile "hh1" "38")
  29.    (set_tile "hh2" "23")
  30.    (set_tile "hh3" "6")
  31.    (set_tile "ll1" "45")
  32.    (set_tile "ll2" "30")
  33.    (setq sldkey_list '("kimage1"))
  34.    (setq sld_list    '("xxx"))
  35.    (mapcar 'show_sld sldkey_list sld_list)
  36. )

  37. (defun show_sld(key sld)
  38.    (setq x (dimx_tile key))
  39.    (setq y (dimy_tile key))
  40.    (start_image key)
  41.    (fill_image 0 0 x y -2)
  42.    (slide_image 0 0 x y sld)
  43.    (end_image)
  44. )
  45. (defun ok_xxx()
  46.    (setq WW1 (atof (get_tile "ww1")))
  47.    (setq WW2 (atof (get_tile "ww2")))
  48.    (setq HH1 (atof (get_tile "hh1")))
  49.    (setq HH2 (atof (get_tile "hh2")))
  50.    (setq HH3 (atof (get_tile "hh3")))
  51.    (setq AA1 (atof (get_tile "aa1")))
  52.    (setq AA2 (atof (get_tile "aa2")))
  53.    (setq LL1 (atof (get_tile "ll1")))
  54.    (setq LL2 (atof (get_tile "ll2")))
  55. )
  56. (defun draw_xxx()
  57.   ;;以下绘制最上面的侧视图 以左下角点为基准
  58.    (setq pt1 (getpoint "左下角基准点:"))
  59.    (setq pt2 (polar pt1 0 LL1))
  60.    (setq pt3 (polar pt2 (* pi 0.5) (- hh1 hh2)))
  61.    (setq pt4 (polar pt3 0 LL2))
  62.    (setq pt5 (polar pt4 (* pi 0.5) HH2))
  63.    (setq bb (* (/ (sin (* AA1 (/ pi 180))) (cos (* aa1 (/ pi 180)))) (- hh1 hh3)))
  64.    (setq pt6 (polar pt5 pi (- (+ LL1 LL2) bb)))
  65.    (SETQ pt7 (polar pt1 (* pi 0.5) HH3))
  66.    (command "pline" pt1 pt2 pt3 pt4 pt5 pt6 PT7 "C")
  67.   ;;以下绘制右边的俯视图以基点下来30mm
  68.   (setq pa (polar pt1 (* pi 1.5) 30))
  69.   (setq pb (polar pa 0 ll1))
  70.   (setq pc (polar pb (* pi 1.5) (/ (- ww1 ww2) 2)))
  71.   (setq cc (/ ll2 (cos (* pi (/ aa2 180.0)))))
  72.   (setq ee (sqrt (- (* cc cc) (* ll2 ll2))))
  73.   (setq pd (polar pc (* pi (- 0 (/ AA2 180))) cc));;;这一行好像不太对,但行的通
  74.   (setq pe (polar pd (* pi 1.5) (- ww2 (* ee 2))))
  75.   (setq pf (polar pc (* pi 1.5) ww2))
  76.   (setq pg (polar pb (* pi 1.5) ww1))
  77.   (setq ph (polar pa (* pi 1.5) ww1))
  78.   (command "pline" pa pb pc pd pe pf pg ph "c")
  79.   ;;;以下绘制左边的侧视图
  80.   (setq ea (polar pa pi 30))
  81.   (setq eb (polar ea pi hh3))
  82.   (setq ec (polar eb (* pi 1.5) (/ (- ww1 ww2) 2)))
  83.   (setq ed (polar ec pi (- hh1 hh3)))
  84.   (setq ef (polar ed (* pi 1.5) ww2))
  85.   (setq eg (polar ef 0 (- hh1 hh3)))
  86.   (setq eh (polar eg (* pi 1.5) (/ (- ww1 ww2) 2)))
  87.   (setq ej (polar ea (* pi 1.5) ww1))
  88.   (command "pline" ea eb ec ed ef eg eh ej "c")
  89.   (setvar "osmode" 1)
  90. (prin1)
  91. (prompt "\n      行位已绘制完毕,如有更好建议,请联系QQ609719845")
  92. (PRIN1)
  93.   )





本帖子中包含更多资源

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

x

评分

参与人数 7明经币 +6 金钱 +70 收起 理由
VBALISPER + 1 很给力!
革天明 + 1 很给力!编辑的程序那叫个棒啊
way2490 + 20 赞一个!
yanshengjiang + 1
仲文玉 + 1 赞一个!
cabinsummer + 1 赞一个!
langjs + 1 + 50 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-11-25 17:11 | 显示全部楼层
处女作,乍没见红

点评

你头相,,,够红了,,,呵呵,,  发表于 2011-11-25 18:31
回复 支持 1 反对 0

使用道具 举报

发表于 2011-11-25 09:09 | 显示全部楼层
本帖最后由 xshrimp 于 2011-11-25 09:09 编辑

不错,角度aa1的:edit_box没有对齐啊.

点评

我调不好,全使用edit_width,,,都还一样对不齐,请高手你赐教,,,,让我学习学习  发表于 2011-11-25 18:25
发表于 2011-11-25 10:21 | 显示全部楼层
虽然用不上!!不过还是要给你一个
发表于 2011-11-25 11:36 | 显示全部楼层
学习两个月达到如此程度了不起
发表于 2011-11-25 11:53 | 显示全部楼层
再接再厉会有更大成果
发表于 2011-11-25 12:40 | 显示全部楼层
作为练习不错,其实真正在工作中很少这样画。幻灯片的三视图上有些线条没有,像正视图和顶视图没表现出挂台。另外应该在幻灯片中标上插入点,长度的输入框后可以做一个测量的按钮,直接测量图面的距离,不需要自己手动输入。

点评

那些技术含量高,,我刚入手LISP,,不太会,以后再改进,,  发表于 2011-11-25 18:47
发表于 2011-11-25 12:51 | 显示全部楼层
我觉得要用户这么多输入是不是太累了?

点评

我觉得有些数据还是要自定义的,刚学LIAP ,很多函数不会用,,先手输入用着吧,呵呵,,等我学会更多函数,也许在上面点几下,这个图就出来了,方便,  发表于 2011-11-25 18:41
发表于 2011-11-25 13:37 | 显示全部楼层
command 尽量用 vla- vl- vlax- 开头的vlisp函数处理
没有出错处理, 数据越界检查,
整体*error*处理等. 加油

点评

VL-VLA-VLAX等这些函数还没去学习,,以后学会了再改改,用上再给你们源码看看,,  发表于 2011-11-25 18:30
发表于 2011-11-25 16:13 | 显示全部楼层
虽然用不上也顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 16:48 , Processed in 0.321286 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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