乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 59|回复: 0

[编程交流] 点对点距离lsp需要he

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:23:26 | 显示全部楼层 |阅读模式
我使用该lsp放置管道尺寸和从拾取点到拾取点的距离。我知道它写得很差,需要一些帮助才能把它整理好。看一看,看看你是否有任何改进的想法。
  1. (defun c:sst (/ midl dis psz pipe ppp)
  2. (setq OLDOS (getvar "OSMODE" ))
  3. (setq olay (getvar "clayer" ))
  4. (setvar "dimzin" 1 )
  5. (setvar "attdia" 0 )
  6. (setvar "attreq" 1 )
  7. (while                  
  8. (setvar "OSMODE" 69 )
  9. (princ (strcat "\n Pipe Size:< ")) (princ ppp)
  10. (INITGET 6)  
  11. (setq psz (GETSTRING " >: "))
  12. (if (= PSZ "")(setq PSZ pipe))
  13. (cond
  14. ((= psz "1" )(setq pipe "1" ) (setq ppp "1"" ))
  15. ((= psz "1~" )(setq pipe "1~" )(setq ppp "1-1/4"" ))
  16. ((= psz "1`" )(setq pipe "1`" )(setq ppp "1-1/2"" ))
  17. ((= psz "2" )(setq pipe "2" )(setq ppp "2"" ))
  18. ((= psz "2`" )(setq pipe "2`" )(setq ppp "2-1/2"" ))
  19. ((= psz "3" )(setq pipe "3" )(setq ppp "3"" ))
  20. ((= psz "4" )(setq pipe "4" )(setq ppp "4"" ))
  21. ((= psz "6" )(setq pipe "6" )(setq ppp "6"" ))
  22. ((= psz "8" )(setq pipe "8" )(setq ppp "8"" ))
  23. ((= psz "10" )(setq pipe "10" )(setq ppp "10"" ))
  24. )
  25.                      (if (setq pt1 (getpoint "\nFirst point: "))
  26.                         (= pt1 "")(setq pt1 pt3))               
  27.   (setq pt2 (getpoint "\nSecond point: "))
  28. (if (= pt2 nill )(setvar "clayer" olay )
  29. (SETVAR "OSMODE" OLDOS )  )           
  30.   (setq MX (/ (+ (car PT1) (car PT2)) 2)
  31.           MY (/ (+ (cadr PT1) (cadr PT2)) 2)
  32.             MIDL (list MX MY 0))
  33.     (setq dis (distance pt1 pt2 ))
  34.   (setq ang (angle pt1 pt2 ))
  35.        (if (>= ang 0)
  36.          (setq ang1 ang)
  37.        )
  38.        (if (> ang 1.5708);same as 90°
  39.          (setq ang1 (+ 3.14159 ang));add 180°
  40.        )
  41.        (if (>= ang 4.71413);same as 270.1°
  42.          (setq ang1 ang)
  43.        )
  44.   (setq angd (rtd ang1 ))
  45.   (setq dis (rtos dis 4 0 ))
  46.                        (setvar "OSMODE" 0 )
  47.                        (command "-layer" "m" "PTAG" "c" "7" "" "")
  48.   (command "insert" "P_TAG" midl binssc binssc angd dis pSZ "")
  49.                (setq pt3 pt2)
  50.                (setq attent (entget (entlast)))
  51.         (setq atttag (cdr (assoc 2 attent )))
  52.                (setq entn (entget (entnext (cdr (car attent)))))
  53. (setq attnam (cdr (assoc 2 entn )))
  54.         (setq atttag (cdr (assoc 2 entn )))
  55.                                (if (= attnam atttag)
  56.    (progn
  57.    (setq str (cdr (assoc 1 entn )))
  58.    (setq strl (strlen str ))
  59.     (cond   ((= (wcmatch str "#\.") T ) (setq stal 2 ))
  60.                                                ((= (wcmatch str "##\.") T ) (setq stal 3 ))
  61.                                                ((= (wcmatch str "#.-#\.") T ) (setq stal 4 ))
  62.      ((= (wcmatch str "#.-##\.") T ) (setq stal 5 ))
  63.      ((= (wcmatch str "##.-#\.") T ) (setq stal 6 ))
  64.      ((= (wcmatch str "##.-##\.") T ) (setq stal 7 ))
  65.      ((= (wcmatch str "###.-#\.") T ) (setq stal 8 ))
  66.      ((= (wcmatch str "###.-##\.") T ) (setq stal 9 ))
  67.     )
  68.    (setq stnum (substr str 1 stal ))
  69.    (setq rstal (+ stal 1 ))
  70.    (setq strest (substr str rstal strl ))
  71.    (setq stnuml (strlen stnum ))
  72.     (cond  ((= stnuml 2 )
  73.      (setq p1 "0-" )
  74.      (setq p2 (substr stnum 1 1 ))
  75.      )
  76.                                                ((= stnuml 3 )
  77.      (setq p1 "0-" )
  78.      (setq p2 (substr stnum 1 2 ))
  79.      )
  80.                                                ((= stnuml 4 )
  81.      (setq p1 (substr stnum 1 1 ))
  82.      (setq p2 (substr stnum 4 4 ))
  83.      )
  84.      ((= stnuml 5 )
  85.      (setq p1 (substr stnum 1 1 ))
  86.      (setq p2 (substr stnum 4 5 ))
  87.      )
  88.      ((= stnuml 6 )
  89.      (setq p1 (substr stnum 1 2 ))
  90.      (setq p2 (substr stnum 5 5 ))
  91.      )
  92.      ((= stnuml 7 )
  93.      (setq p1 (substr stnum 1 2 ))
  94.      (setq p2 (substr stnum 5 6 ))
  95.      )
  96.      ((= stnuml 8 )
  97.      (setq p1 (substr stnum 1 3 ))
  98.      (setq p2 (substr stnum 6 6 ))
  99.      )
  100.      ((= stnuml 9 )
  101.      (setq p1 (substr stnum 1 3 ))
  102.      (setq p2 (substr stnum 6 7 ))
  103.      )
  104.     )
  105.                                (setq P1I (atoi P1 ))
  106.                                (setq P2I (atoi P2 ))
  107.                                (setq PP1 (itoa P1I))
  108.                                (setq PP2 (itoa P2I))
  109.    (setq NN1 (strcat PP1 "-" PP2 ))
  110.    (setq newatt NN1 )
  111.    (setq entn (subst (cons 1 newatt ) (assoc 1 entn ) entn ))
  112.    (entmod entn )
  113.                                (entupd (entlast))
  114.    );progn
  115.    );if
  116. );while
  117. (setvar "clayer" olay )
  118. (SETVAR "OSMODE" OLDOS )   
  119. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 05:34 , Processed in 0.728954 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表