乐筑天下

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

[编程交流] 使用“引线”替换“LWPOLL”

[复制链接]

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:39:30 | 显示全部楼层 |阅读模式
你好,朋友们
 
这是一个简单的引线尺寸,使用“LWPOLYLINE”。
可以用“leader”这样做吗?2点创建引线并使用grread。
 
 
  1. (defun c:test (/ *error* dd dimtxt gr kd mode name1 name2 name3 p1 pt1 pt2 pt3 tbl txt ty val)
  2. (defun *error* (msg)
  3.         (entdel name1)
  4.         (entdel name2)
  5.         (if name3 (entdel name3))
  6.         (princ "error: ")
  7.         (princ msg)
  8. )
  9. (setq ty (getvar "TEXTSTYLE"))
  10. (setq txt "t=")
  11. (setq val (getdist "\nSpecify the thickness: "))
  12. (setq dimtxt (strcat txt (vl-princ-to-string val)))
  13. (setq tbl (caadr (textbox (list '(0 . "text")(cons 1 dimtxt)(cons 40 2.5)(cons 41 0.7)(cons 7 ty)))))
  14. ;;(setq pt1 (cadr (entsel "\nPick the obj:")))
  15. ;;(setq pt1 (getpoint "\nEnter the base point:"))
  16. (if (not (setq pt1 (cadr (entsel "\nPick the obj:"))))
  17.         (setq pt1 (cadr (grread t 15 0)))
  18. )
  19. (setq dd t)
  20. (while dd
  21.         (setq gr (grread t 4 1)
  22.                 mode (car gr)
  23.                 pt2 (cadr gr)
  24.         )
  25.         (setq kd (+ tbl 2))
  26.         (if (and (listp pt2) (>= (car pt2) (car pt1)))
  27.                 (progn
  28.                         (setq pt3 (polar pt2 0 kd))
  29.                         (setq p1 (polar pt2 0 (/ (- kd tbl) 2)) p1 (polar p1 (angtof "90") 1))
  30.                 )
  31.         )
  32.         (if (and (listp pt2) (< (car pt2) (car pt1)))
  33.                 (progn
  34.                         (setq pt3 (polar pt2 pi kd))
  35.                         (setq p1 (polar pt3 0 (/ (- kd tbl) 2)) p1 (polar p1 (angtof "90") 1))
  36.                 )
  37.         )
  38.         (if (= mode 5)
  39.                 (progn
  40.                         (if name1 (entdel name1))
  41.                         (entmake
  42.                                 (list
  43.                                         '(0 . "LWPOLYLINE")
  44.                                         '(100 . "AcDbEntity")
  45.                                         '(100 . "AcDbPolyline")
  46.                                         '(90 . 3)
  47.                                         (cons 10 pt1)
  48.                                         (cons 10 pt2)
  49.                                         (cons 10 pt3)
  50.                                 )
  51.                         )
  52.                         (setq name1 (entlast))
  53.                         (if name2 (entdel name2))
  54.                         (entmake
  55.                                 (list
  56.                                         '(0 . "text")
  57.                                         (cons 1 dimtxt)
  58.                                         (cons 40 2.5)
  59.                                         (cons 41 0.7)
  60.                                         (cons 10 p1)
  61.                                         (cons 7 ty)
  62.                                 )
  63.                         )
  64.                         (setq name2 (entlast))
  65.                         (if name3 (entdel name3))
  66.                 );_end_progn
  67.         );_end_if
  68.         (if (= mode 3)
  69.                 (setq dd nil)
  70.         )
  71.         (if (or (= mode 2) (= mode 25))
  72.                 (progn
  73.                         (setq dd nil)
  74.                         (entdel name1)
  75.                         (entdel name2)
  76.                         (if name3 (entdel name3))
  77.                 )
  78.         )
  79. );_end_while
  80. (princ)
  81. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:55 , Processed in 0.433613 second(s), 54 queries .

© 2020-2025 乐筑天下

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