乐筑天下

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

[编程交流] 如何在l周围创建间隙

[复制链接]
pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:14:31 | 显示全部楼层
 
好主意GP\U
回复

使用道具 举报

2

主题

16

帖子

14

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:20:42 | 显示全部楼层
GP。。。。这很有效。还需要什么代码来包括leader或qleader。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:25:59 | 显示全部楼层
 
完成错误处理。
自然,它与直线引线一起工作。
真正的挑战是将反应堆(用于清除)连接到mleader,但这是大师的工作,而不是我的工作。
 
 
  1. (defun c:demo (/ s s1 ss space pntlst pntlst1 w pntlst zv
  2.                 s_name TempL TempL1 TempL2 Lv L1v L2v )
  3.    (vl-load-com)
  4.    (setq space (vlax-get
  5.                (vla-get-ActiveLayout
  6.                  (vla-get-activedocument
  7.                    (vlax-get-acad-object)
  8.                  )
  9.                )
  10.                'Block
  11.              )
  12. )
  13. (if (and
  14.          (princ "\nSelect Leader or MLeader")
  15.          (setq s (ssget "_+.:S:L" '((0 . "*LEADER"))))
  16.          (setq s (vlax-ename->vla-object (setq s1 (ssname s 0))))
  17.          (setq s_name (vlax-get s 'ObjectName))
  18.          (setq width (cond
  19. ((getdist (strcat "\nEnter width "
  20.   (if width (strcat " <" (rtos width) ">: ") ": ")
  21.              )))(width))
  22. )
  23.           (setq w (* 0.5 width))
  24.      )
  25.      (progn
  26.          (cond
  27.              (
  28.                (eq s_name "AcDbMLeader" )
  29.                (setq pntlst (vlax-invoke
  30.                                s 'GetLeaderLineVertices  0
  31.                                )
  32.                     ;zv     (nth 2 pntlst)
  33.                )
  34.                (setq pntlst1 nil)
  35.                (repeat (/ (length pntlst) 3)
  36.                    (setq pntlst1 (cons (list (car pntlst) (cadr pntlst)) pntlst1))
  37.                    (setq pntlst (cdddr pntlst))
  38.                )
  39.                (setq pntlst pntlst1)
  40.              )
  41.              (
  42.                (eq s_name "AcDbLeader" )              
  43.                (mapcar '(lambda (x)
  44.                            (if (eq (car x) 10)
  45.                                (setq pntlst (cons (list (cadr x) (caddr x)) pntlst))
  46.                            )
  47.                         )
  48.                        (entget s1)
  49.                )
  50.              )
  51.          )
  52.          (setq TempL
  53.                   (vlax-ename->vla-object
  54.                       (entmakex
  55.                           (append
  56.                               (list
  57.                                   (cons 0 "LWPOLYLINE")
  58.                                   (cons 100 "AcDbEntity")
  59.                                   (cons 100 "AcDbPolyline")
  60.                                   (cons 90 (length pntlst))
  61.                               )
  62.                               (mapcar '(lambda (x) (cons 10 x)) pntlst)
  63.                           )
  64.                        )
  65.                   )
  66.          )
  67.          (vlax-invoke TempL 'offset (- (* 0.5 width)))
  68.          (setq TempL1 (entlast))
  69.          (vlax-invoke TempL 'offset (* 0.5 width))
  70.          (setq TempL2 (entlast))
  71.          (setq
  72.              Lv1 (coo TempL1)
  73.              Lv2 (coo TempL2)
  74.              Lv (append Lv1 (reverse Lv2))
  75.           )
  76.          (setq os (getvar 'osmode))
  77.          (setvar 'osmode 0)
  78.          (command "_.wipeout")
  79.          (apply 'command Lv)
  80.          (command "")
  81.          (setvar 'osmode os)
  82.          (command "_.draworder" s1 "" "_F")
  83.          (vla-delete TempL)
  84.          (entdel TempL1)
  85.          (entdel TempL2)
  86.      )
  87. )      
  88. )
  89. (defun Coo ( a / coor)              
  90.    (mapcar '(lambda (x)
  91.                 (if (eq (car x) 10)
  92.                     (setq coor (cons (list (cadr x) (caddr x)) coor))
  93.                 )
  94.             )
  95.             (entget a)
  96.     )
  97.    coor
  98. )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:26:18 | 显示全部楼层
你好Tharwat,我尝试了你的代码,效果很好。但它只能在线路上工作。你认为它有可能在圆、样条曲线、圆弧等上面工作吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:29 , Processed in 0.420756 second(s), 59 queries .

© 2020-2025 乐筑天下

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