明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1635|回复: 3

自编简易画桩程序,求高手优化!

[复制链接]
发表于 2011-11-24 13:54 | 显示全部楼层 |阅读模式
最近开始学习LISP语言,自己又正在画桩,就写了个简易的小程序,自己慢慢用还是可以,但是速度快了 就会出错,我想可能是算法上复杂了,电脑计算没这么快?所以求高手优化下 谢谢!以下是源代码:

  1. (defun C:TBHZ()
  2.     (setvar "cmdecho" 0)
  3. (setq pt1 (getpoint "\n 请输入第一桩芯点:"))
  4. (setq pt2 (getpoint "\n 请输入第二桩芯点:"))
  5. (setq zj (getreal "\n 请输入桩径<800>:"))
  6. (if (null zj) (setq zj 800))
  7. ;*******************************************
  8. ;以下计算两桩芯线与当前UCS之间的弧度
  9. (setq rag (angle pt1 pt2))
  10. ;*******************************************
  11. ;由以上给定数据计算椭圆桩直段四角点
  12. (setq rag1 (+(/ pi 2) rag))
  13. (setq rag2 (+(* pi 1.5) rag))
  14. (setq pt11 (polar pt1 rag1 (/ zj 2)))
  15. (setq pt12 (polar pt1 rag2 (/ zj 2)))
  16. (setq pt21 (polar pt2 rag1 (/ zj 2)))
  17. (setq pt22 (polar pt2 rag2 (/ zj 2)))
  18. ;********************************************
  19. ;由计算结果开始画图
  20. (command "PLINE" pt11 "W" "0" "0" "A" "CE" pt1 pt12 "L" pt22 "A" "CE" pt2 pt21 "L" "C" "" )
  21. (command "chprop" (entlast) "" "c" 6 "") ;将最后的图形改颜色为紫红色
  22. (TBZX)
  23. )
  24. (prompt "<<TBHZ>> → → → → ToXicBug的画桩程序,当前只能画二芯桩.感谢支持,有建议请发邮件toxicbug@qq.com")
  25. (prin1)
  26. (defun TBZX() ;画桩芯点(一个十字形和一个小圆),并改颜色为绿色
  27.     (setq pt1x1 (polar pt1 0 150))
  28. (setq pt1x2 (polar pt1 pi 150))
  29. (setq pt1x3 (polar pt1 (/ pi 2) 150))
  30. (setq pt1x4 (polar pt1 (* pi 1.5) 150))
  31. (setq pt2x1 (polar pt2 0 150))
  32. (setq pt2x2 (polar pt2 pi 150))
  33. (setq pt2x3 (polar pt2 (/ pi 2) 150))
  34. (setq pt2x4 (polar pt2 (* pi 1.5) 150))
  35. ;*********************************************
  36. ;以下开始画图
  37. (command "LINE" pt1x1 pt1x2 "")
  38. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  39. (command "LINE" pt1x3 pt1x4 "")
  40. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  41. (command "LINE" pt2x1 pt2x2 "")
  42. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  43. (command "LINE" pt2x3 pt2x4 "")
  44. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  45. (command "circle" pt1 75) ;画小圆
  46. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  47. (command "circle" pt2 75)
  48. (command "CHPROP" (entlast) "" "C" 3 "")  ;将最后的图形改颜色为绿色
  49. )


pt1 pt2 等点见附图,pt1x1 pt1x2 pt1x3 pt1x4 pt2x1 pt2x2 pt2x3 pt2x4 为图中十字形边点。画桩速度过快就会出现一些乱图,比如十字少 线啊  椭圆 不规则啊 等等 ,我觉得可能是速度超过电脑画图的速度就出错了,慢慢一个一个的点 还是没问题的!


该贴已经同步到 ToXicBug的微博

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-11-24 14:08 | 显示全部楼层

这就是使用过快的结果。。。感觉是计算机还没画完下个命令来了 是这样吗?求解答

本帖子中包含更多资源

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

x
发表于 2011-11-24 14:16 | 显示全部楼层
关了补捉再试
 楼主| 发表于 2011-11-24 14:33 | 显示全部楼层
哦原来是这个问题啊 谢谢 现在再怎么快 也没这个怪图出现了  呵呵  谢谢哈 不过 要是能再优化就好了。下一步加入 层控制 和 承台 以及三芯(多芯)桩的自动化!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 04:51 , Processed in 0.133765 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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