明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1620|回复: 3

[源码] 焊缝标注【grread样式】

[复制链接]
发表于 2018-2-8 17:21 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2018-2-8 17:26 编辑

  1. ;;;;*************************焊缝【grread方式】***************************
  2. ;;;;----------------非现场相同焊缝----------------
  3. (defun C:fxth()
  4.   (hanf 1)
  5. )
  6. ;;;;----------------现场相同焊缝----------------
  7. (defun C:xth()
  8.   (hanf 2)
  9. )
  10. ;;;;---------------
  11. (defun hanf (k / p1 p2 gr grr %k z$  ennext)
  12.   (setq p1 (getpoint "\n焊缝位置 give the place point:"))  
  13.   (Setq z$ (getstring "\n焊缝高度6.0)"))
  14.   (if(= z$ "")(setq z$ "6"))
  15.   (setq %k t) ;循环条件  
  16.   (while %k
  17.     (setq grr (grread t 4 0);;取得鼠标操作及坐标
  18.       gr (car grr)       ;;鼠标操作
  19.       p2 (cadr grr)     ;;鼠标坐标
  20.       
  21.     )
  22.     (if (= gr 5) ;;移动时
  23.       (progn
  24.         (if (= k 1)
  25.           (progn
  26.             (command "LAYER" "S" "MM" "")         
  27.             (fxth-1 p1 p2 z$ 1);非现场相同焊缝|;           
  28.             (command "LAYER" "S" "0SX" "")
  29.           )
  30.         )        
  31.         (if (= k 2)
  32.           (progn
  33.             (command "LAYER" "S" "MM" "")         
  34.             (fxth-1 p1 p2 z$ 2);现场相同焊缝|;           
  35.             (command "LAYER" "S" "0SX" "")
  36.           )
  37.         )        
  38.       )
  39.     )
  40.     (if (= gr 3)
  41.       (setq %k nil)
  42.     );;3表示左键;结束循环
  43.     (if (= gr 2);;2表示空格
  44.       (setq %k nil)            
  45.     )
  46.   )
  47.   (print)
  48. )
  49. ;;;;---------------
  50. (defun fxth-1(p1 p2 z$ k$ / p n p3 p4 p5 p7 p8 ang p9 p11 p12 p13 p20 p21 p22 p23)  ;;;;--------非现场 (现场) 相同焊缝------
  51.   (if ennext
  52.     (progn
  53.       (setq p (sslength ennext))
  54.       (setq n 0)   
  55.       (while (< n p)
  56.         (entdel (ssname ennext n))
  57.         (setq n (+ 1 n))
  58.       )
  59.     )
  60.   )  
  61.   (if (> (car p2) (car p1))
  62.     (setq p3 (polar p2 0 20))
  63.     (setq p3 (polar p2 pi 20))
  64.   )
  65.   (if (> (car p2) (car p1))
  66.     (setq p4 (list (+ (car p2) 13) (+ (cadr p2) 3)))
  67.     (setq p4 (list (- (car p2) 8) (+ (cadr p2) 3)))
  68.   )
  69.   (setq p5 (list (car p4) (- (cadr p4) 3)))
  70.   (setq p7 (list (+ (car p5) 3) (cadr p5)))
  71.   (setq p8 (list (- (car p5) 8) (+ (cadr p2) 1.2)))
  72.   (setq ang (angle p1 p2))
  73.   (setq p9 (polar p1 ang 4))
  74.   (setq p11 (polar p2 (+ Pi ang) 2))
  75.   (if (> (car p2) (car p1))
  76.     (setq p12 (list (+ (car p2) 2) (cadr p2)))
  77.     (setq p12 (list (- (car p2) 2) (cadr p2)))
  78.   )
  79.   (if (> (cadr p2) (cadr p1))
  80.     (setq p13 (list (car p2) (+ (cadr p2) 2)))
  81.     (setq p13 (list (car p2) (- (cadr p2) 2)))
  82.   )
  83.   (if (= k$ 2)
  84.     (progn
  85.       (setq p20 (list (car p2) (+ (cadr p2) 10)))
  86.       (setq p21 (list (car p20) (- (cadr p20) 3)))
  87.       (setq p23 (list (+ (car p21) 5) (cadr p21)))
  88.       (setq p22 (polar p20 (angle p20 p23) 3))
  89.       (setq ennext (ssadd))
  90.       (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  91.                  '(90 . 5) (cons 10 p2) (cons 10 p20)
  92.                )
  93.       )      
  94.       (ssadd (entlast) ennext)
  95.       (entmakex (list (cons 0 "SOLID") (cons 100 "AcDbEntity")
  96.                   (cons 100  "AcDbTrace") (cons 10 p20)
  97.                   (cons 11 p21) (cons 12 p22) (cons 13 p23)
  98.                 )
  99.       )
  100.       (ssadd (entlast) ennext)
  101.     )
  102.   )
  103.   (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  104.              '(90 . 5) (cons 10 p1) (cons 10 p2) (cons 10 p3)
  105.            )
  106.   )
  107.   (if (= k$ 1)(setq ennext (ssadd)))
  108.   (ssadd (entlast) ennext)
  109.   (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  110.              '(90 . 5) (cons 10 p4) (cons 10 p5)
  111.            )
  112.   )
  113.   (ssadd (entlast) ennext)
  114.   (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  115.              '(90 . 5) (cons 10 p4) (cons 10 p7)
  116.            )
  117.   )
  118.   (ssadd (entlast) ennext)
  119.   (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
  120.              '(90 . 5) (cons 10 p1)'(40 . 0)'(41 . 0.8) (cons 10 p9) '(40 . 0.8)'(41 . 0.8)
  121.            )
  122.   )
  123.   (ssadd (entlast) ennext)
  124.   (command "arc" p11 p13 p12)
  125.   (ssadd (entlast) ennext)
  126.   (entmake (list '(0 . "text")
  127.              (cons 1 z$)
  128.              (cons 10 p8)
  129.              (cons 40 3)
  130.            )
  131.   )
  132.   (ssadd (entlast) ennext)
  133. )
  134. ;;;;*************************焊缝【grread方式】***************************




程序在输入焊缝高度前,要移动鼠标在第一点之外外,这点比较遗憾,希望大家能完善改写。




本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-3-9 10:54 | 显示全部楼层
不好用,真的不好用
发表于 2019-3-5 18:11 | 显示全部楼层
希望楼主能完善一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-24 04:04 , Processed in 0.309683 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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