找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 909|回复: 2

[求助] [求助]:轴网绘制,望高手指点

[复制链接]
发表于 2005-12-2 13:55:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
想想自己真是菜鸟,编程感性趣,不懂的太多.
幸好论坛老师多.
下面是一高手的轴网绘制程序,什么比例我设不好,希望老师们把想法完善在一个程序里面,载入就能用,谢谢了.
此行为不属于盗窃吧,若有不妥,望原作者见谅,学习而已.

  1. (DEFUN C:WG (   )
  2. (if (= bl nil)(setq bl(getreal "input bl---:")))(setvar "userr1" bl)
  3. (command "osnap" "off")
  4. (setq pt0 (getpoint "\n插入点:"))
  5. (setq x1 (car pt0) y1 (cadr pt0))
  6. (setq k (getint "\n输入开间个数:"))
  7. (setq j (getint "\n输入进深个数:"))
  8. (setq pj1 (getstring "\n输入x轴与水平线夹角<0>"))
  9. (setq pj2 (getstring "\n输入y轴与水平线夹角<90>"))
  10. (if (= pj1 "") (setq pj1 "0"))
  11. (if (= pj2 "") (setq pj2 "90"))

  12. (setq aang1 (- (atof pj2) (atof pj1)) aang1 (/ aang1 2.0))
  13. (setq aang1 (+ aang1 (atof pj1)))
  14. (setq aangx (* aang1 pi) aangx (/ aangx 180.0))
  15. (setq aangy (+ aangx (* pi 0.5)))

  16. (setq fi1 (open "C:\pj.txt" "w"))
  17.   (write-line pj1 fi1)
  18.   (write-line pj2 fi1)
  19. (close fi1)
  20. (setq pj1 (atof pj1) pj2(atof pj2))
  21. (setq pj11 pj1) (setq ass 64)
  22. (if (<= pj2 90) (setq pj22 pj2) (setq pj22 (+ pj2 180)))
  23. (setq pj1 (* pj1 pi)  pj1 (/ pj1 180))
  24. (setq pj2 (* pj2 pi)  pj2 (/ pj2 180))
  25. (setq pj3 (+ pi pj2) pj4 (+ pi pj1))
  26. (setq ch 45) (setq ch1 60) (setq bb 5) (setq cc 40) (setq dd 50)
  27. (setq kjzc 0) (setq jszc 0)
  28. (setq f1 (open "C:\kkk.txt" "w"))
  29. (setq m 1)
  30.   (while (<= m k)
  31.   (princ "输入开间尺寸缺省值上一次<")(princ m)(princ ">:")
  32.   (setq ki (getstring))
  33.   (if (= ki "") (setq ki last))
  34.   (setq kj1 (atof ki) kjzc (+ kjzc kj1))
  35.   (setq m (+ m 1))  (write-line ki f1)
  36.   (setq last ki)
  37.   )
  38. (close f1)
  39. (setq f2 (open "c:\jjj.txt" "w"))
  40. (setq m 1)
  41.   (while (<= m j)
  42.   (princ "输入进深尺寸缺省值上一次<")(princ m)(princ ">:")
  43.   (setq ji (getstring))
  44.   (if (= ji "") (setq ji last))
  45.   (setq js1 (atof ji) jszc (+ jszc js1))
  46.   (setq m (+ m 1))  (write-line ji f2)
  47.   (setq last ji)
  48.   )
  49. (close f2)
  50. (setq kjbl (/ kjzc bl))
  51. (setq jsbl (/ jszc bl))
  52. (setq jscc (+ jsbl ch))
  53. (setq kjcc (+ kjbl ch))
  54. (setq kjzc1 (rtos kjzc 2 0))
  55. (setq jszc1 (rtos jszc 2 0))
  56. (setq f1 (open "C:\kkk.txt" "r"))
  57. (setq m 1)
  58.   (while (<= m k)
  59.   (setq ki (read-line f1))
  60.   (setq di (atof ki) di (/ di bl))
  61.   (if (= m 1) (progn
  62.               (setq pxj (polar pt0 pj2 jscc))
  63.               (setq pxk (polar pt0 pj3 ch1))
  64.               (setq pxl (polar pxk pj3 bb))
  65.               (setq last1 (polar pt0 pj3 cc))
  66.               (setq begin (polar pt0 pj3 dd))

  67.               (setq ccx1 (polar begin aangx 1.5))
  68.               (setq ccx2 (polar begin (+ aangx pi) 1.5))

  69.               (command "layer" "s" "1" "")
  70.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  71.               (command "layer" "s" "3" "")
  72.               (command "line" pxj pxk "")
  73.               (command "layer" "s" "1" "")
  74.               (command "circle" pxl pxk "text" "m" pxl "4" "0" m)

  75.               (setq ccx1 (polar last1 aangx 1.5))
  76.               (setq ccx2 (polar last1 (+ aangx pi) 1.5))

  77.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  78.               (setq pxi (polar pt0 pj1 di))
  79.               (setq pxj (polar pxi pj2 jscc))
  80.               (setq pxk (polar pxi pj3 ch1))
  81.               (setq pxl (polar pxk pj3 bb))
  82.               (setq last2 (polar pxi pj3 cc))(setq m (+ m 1))
  83.               (command "layer" "s" "3" "")
  84.               (command "line" pxj pxk "")
  85.               (command "layer" "s" "1" "")
  86.               (command "circle" pxl pxk "text" "m" pxl "4" "0" m)
  87.               (command "line" last1 last2 "")
  88.               (setq jx1 (car last1) jy1 (cadr last1))
  89.               (setq jx2 (car last2) jy2 (cadr last2))
  90.               (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  91.               (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  92.               (setq p0 (list (+ jx1 disx1) (+ jy1 disy1 2)))
  93.               (command "text" "c" p0 "3" pj11 ki)
  94.               (setq last1 last2)(setq m (- m 1))

  95.               (setq ccx1 (polar last1 aangx 1.5))
  96.               (setq ccx2 (polar last1 (+ aangx pi) 1.5))

  97.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  98.               ))
  99.   (if (/= m 1) (progn   
  100.               (setq m11 (+ m 1))
  101.               (setq pxi (polar pxi pj1 di))
  102.               (setq pxj (polar pxi pj2 jscc))
  103.               (setq pxk (polar pxi pj3 ch1))
  104.               (setq pxl (polar pxk pj3 bb))
  105.               (setq last2 (polar pxi pj3 cc))
  106.               (command "layer" "s" "3" "")
  107.               (command "line" pxj pxk "")
  108.               (command "layer" "s" "1" "")
  109.               (command "circle" pxl pxk "text" "m" pxl "4" "0" m11)
  110.               (command "line" last1 last2 "")
  111.               (setq jx1 (car last1) jy1 (cadr last1))
  112.               (setq jx2 (car last2) jy2 (cadr last2))
  113.               (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  114.               (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  115.               (setq p0 (list (+ jx1 disx1) (+ jy1 disy1 2)))
  116.               (command "text" "c" p0 "3" pj11 ki)
  117.               (setq last1 last2)
  118.               (setq ccx1 (polar last1 aangx 1.5))
  119.               (setq ccx2 (polar last1 (+ aangx pi) 1.5))
  120.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  121.               (if (= m k) (progn
  122.                           (setq end (polar pxi pj3 dd))
  123.                           (command "line" begin end "")
  124.                           (setq jx1 (car begin) jy1 (cadr begin))
  125.                           (setq jx2 (car end) jy2 (cadr end))
  126.                           (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  127.                           (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  128.                           (setq p0 (list (+ jx1 disx1) (+ jy1 disy1 2)))
  129.                           (command "text" "c" p0 "3" pj11 kjzc1)
  130.                           (setq ccx1 (polar end aangx 1.5))
  131.                           (setq ccx2 (polar end (+ aangx pi) 1.5))
  132.                           (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  133.                           ))
  134.               ))
  135.   (setq m (+ m 1))
  136.   )
  137. (close f1)
  138. (setq f2 (open "C:\jjj.txt" "r"))
  139. (setq m 1)
  140.   (while (<= m j)
  141.   (setq ji (read-line f2))
  142.   (setq di (atof ji) di (/ di bl))
  143.   (if (= m 1) (progn
  144.               (setq ass (+ ass 1)) (setq zxy (chr ass))
  145.               (setq pxj (polar pt0 pj1 kjcc))
  146.               (setq pxk (polar pt0 pj4 ch1))
  147.               (setq pxl (polar pxk pj4 bb))
  148.               (setq last1 (polar pt0 pj4 cc))
  149.               (setq begin (polar pt0 pj4 dd))
  150. ;              (if (<= pj22 90) (progn
  151.                                (setq ccx1 (polar begin aangy 1.5))
  152.                                (setq ccx2 (polar begin (+ aangy pi) 1.5))
  153. ;                               ))
  154. ;              (if (> pj22 90) (progn
  155. ;                               (setq ccx1 (polar begin 1.5708 1.5))
  156. ;                               (setq ccx2 (polar begin -1.5708 1.5))
  157. ;                               ))
  158.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  159.               (command "layer" "s" "3" "")
  160.               (command "line" pxj pxk "")
  161.               (command "layer" "s" "1" "")
  162.               (command "circle" pxl pxk "text" "m" pxl "4" "0" zxy)
  163. ;              (if (<= pj22 90) (progn
  164.                                (setq ccx1 (polar last1 aangy 1.5))
  165.                                (setq ccx2 (polar last1 (+ aangy pi) 1.5))
  166. ;                               ))
  167. ;              (if (> pj22 90) (progn
  168. ;                               (setq ccx1 (polar last1 1.5708 1.5))
  169. ;                               (setq ccx2 (polar last1 -1.5708 1.5))
  170. ;                               ))
  171.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  172.               (setq pxi (polar pt0 pj2 di))
  173.               (setq pxj (polar pxi pj1 kjcc))
  174.               (setq pxk (polar pxi pj4 ch1))
  175.               (setq pxl (polar pxk pj4 bb))
  176.               (setq last2 (polar pxi pj4 cc))
  177.               (command "layer" "s" "3" "")
  178.               (command "line" pxj pxk "")
  179.               (command "layer" "s" "1" "")
  180.               (setq ass (+ ass 1))(setq zxy (chr ass))
  181.               (command "circle" pxl pxk "text" "m" pxl "4" "0" zxy)
  182.               (command "line" last1 last2 "")
  183.               (setq jx1 (car last1) jy1 (cadr last1))
  184.               (setq jx2 (car last2) jy2 (cadr last2))
  185.               (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  186.               (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  187.               (setq last1 last2)
  188.               (if (<= pj22 90) (progn
  189.                               (setq ttx (+ jx1 disx1) ttx (- ttx 2))
  190.                               (setq ccx1 (polar last1 aangy 1.5))
  191.                               (setq ccx2 (polar last1 (+ aangy pi) 1.5))
  192.                               ))
  193.               (if (> pj22 90)  (progn
  194.                               (setq ttx (+ jx1 disx1) ttx (+ ttx 2))
  195.                               (setq ccx1 (polar last1 aangy 1.5))
  196.                               (setq ccx2 (polar last1 (+ aangy pi) 1.5))
  197.                               ))
  198.               (setq tty (+ jy1 disy1))
  199.               (setq p0 (list ttx tty))
  200.               (command "text" "c" p0 "3" pj22 ji)
  201.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  202.               ))
  203.   (if (/= m 1) (progn
  204.               (setq ass(+ ass 1))
  205.               (setq zxy (chr ass))
  206.               (setq pxi (polar pxi pj2 di))
  207.               (setq pxj (polar pxi pj1 kjcc))
  208.               (setq pxk (polar pxi pj4 ch1))
  209.               (setq pxl (polar pxk pj4 bb))
  210.               (setq last2 (polar pxi pj4 cc))
  211.               (command "layer" "s" "3" "")
  212.               (command "line" pxj pxk "")
  213.               (command "layer" "s" "1" "")
  214.               (command "circle" pxl pxk "text" "m" pxl "4" "0" zxy)
  215.               (command "line" last1 last2 "")
  216.               (setq jx1 (car last1) jy1 (cadr last1))
  217.               (setq jx2 (car last2) jy2 (cadr last2))
  218.               (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  219.               (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  220.               (setq last1 last2)
  221.               (if (<= pj22 90) (progn
  222.                               (setq ttx (+ jx1 disx1) ttx (- ttx 2))  
  223.                               (setq ccx1 (polar last1 aangy 1.5))
  224.                               (setq ccx2 (polar last1 (+ aangy pi) 1.5))
  225.                               ))
  226.               (if (> pj22 90)  (progn
  227.                               (setq ttx (+ jx1 disx1) ttx (+ ttx 2))
  228.                               (setq ccx1 (polar last1 aangy 1.5))
  229.                               (setq ccx2 (polar last1 (+ aangy pi) 1.5))
  230.                               ))
  231.               (setq tty (+ jy1 disy1))
  232.               (setq p0 (list ttx tty))
  233.               (command "text" "c" p0 "3" pj22 ji)
  234.               (setq last1 last2)
  235.               (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  236.               (if (= m j) (progn
  237.                           (setq end (polar pxi pj4 dd))
  238.                           (command "line" begin end "")
  239.                           (setq jx1 (car begin) jy1 (cadr begin))
  240.                           (setq jx2 (car end) jy2 (cadr end))
  241.                           (setq disx1 (- jx2 jx1) disy1 (- jy2 jy1))
  242.                           (setq disx1 (/ disx1 2) disy1 (/ disy1 2))
  243.                           (if (<= pj22 90) (progn
  244.                               (setq ttx (+ jx1 disx1) ttx (- ttx 2))
  245.                               (setq ccx1 (polar end aangy 1.5))
  246.                               (setq ccx2 (polar end (+ aangy pi) 1.5))
  247.                               ))
  248.                           (if (> pj22 90) (progn
  249.                               (setq ttx (+ jx1 disx1) ttx (+ ttx 2))
  250.                               (setq ccx1 (polar end aangy 1.5))   
  251.                               (setq ccx2 (polar end (+ aangy pi) 1.5))
  252.                               ))
  253.                           (setq tty (+ jy1 disy1))
  254.                           (setq p0 (list ttx tty))
  255.                           (command "text" "c" p0 "3" pj22 jszc1)
  256.                           (command "pline" ccx1 "w" "0.4" "0.4" ccx2 "")
  257.                           ))
  258.               ))
  259.   (setq m (+ m 1))
  260.   )
  261. (close f2)
  262. (command "osnap" "int,mid,nea,cen,per,tan")
  263. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-12-3 09:09:11 | 显示全部楼层
建议安装天正5.0时选择全部安装,然后其安装目录下的LISP目录中的LISP源代码为明码,你可以参考相关程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-11-6 01:14:00 | 显示全部楼层
谢谢,netbee!天正是明码 但关键的函数没有?另外你们轴线绘制源码的链接连不上了,轻netbee改改!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 14:39 , Processed in 0.262485 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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