乐筑天下

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

[编程交流] 对齐引线lisp

[复制链接]

4

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 15:26:51 | 显示全部楼层 |阅读模式
我的Lisp程序。
但这个Lisp程序只适用于3点引线。
这个lisp能同时适用于2点引线和3点引线吗??
请帮帮我。
 
 
  1. ;;; aligns the landings of selected 3 point leaders to a picked point or selection of leader
  2. ;;; and makes landing horizontal (if not already)
  3. ;;; [url]https://www.theswamp.org/[/url]
  4. (defun c:DD (/ c# crds doc e ins newpt obj ss txt x y sel)
  5. (vl-load-com)
  6. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  7. (initget 0 "Leader PickPoint")
  8. (if (= (cond ((getkword
  9.                  (strcat "\n Align by [Leader/PickPoint] <Leader>: ")
  10.                )
  11.               )
  12.               ("Leader")
  13.         )
  14.         "Leader"
  15.      )
  16.    (and (setq e (car (entsel "\nSelect leader for alignment: ")))
  17.         (setq x (cadr (assoc 10 (reverse (entget e)))))
  18.    )
  19.    (setq x (car (getpoint "\nSelect point for alignment: ")))
  20. )
  21. (if (and x (setq ss (ssget '((0 . "leader")))))
  22.    (progn (vla-endundomark doc)
  23.           (vla-startundomark doc)
  24.           (foreach l (vl-remove e
  25.                                 (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  26.                      )
  27.             (setq obj  (vlax-ename->vla-object l)
  28.                   crds (vlax-get obj 'coordinates)
  29.                   c#   (length crds)
  30.             )
  31.             (if (and (= c# 9) ;if leader has 3 points and /= x coord
  32.                      (not (equal x (nth (- c# 3) crds) 0.0001))
  33.                 )
  34.               (progn (setq y     (nth (- c# 5) crds) ;new y coord to ensure flat landing
  35.                            newpt (list x y (nth (1- c#) crds))
  36.                      )
  37.                      (vlax-put obj
  38.                                'coordinates
  39.                                (append (reverse (cdddr (reverse crds))) newpt)
  40.                      )
  41.                      (vla-update obj)
  42.                      (and (setq txt (vl-catch-all-apply ;has text attached to leader
  43.                                       'vlax-ename->vla-object
  44.                                       (list (cdr (assoc 340 (entget l))))
  45.                                     )
  46.                           )
  47.                           (not (vl-catch-all-error-p txt)) ;check for invalid ename
  48.                           (setq ins (vlax-get txt 'insertionpoint))
  49.                           (vlax-put txt
  50.                                     'insertionpoint
  51.                                     (polar (list x (cadr ins) (caddr ins))
  52.                                            (if (> x (nth (- c# 3) crds))
  53.                                              0.
  54.                                              pi
  55.                                            )
  56.                                            (if (zerop (getvar 'tilemode))
  57.                                              (vla-get-textgap obj)
  58.                                              (* (getvar 'dimscale) (vla-get-textgap obj))
  59.                                            )
  60.                                     )
  61.                           )
  62.                           (vla-update txt)
  63.                      )
  64.               )
  65.             )
  66.           )
  67.           (vla-endundomark doc)
  68.    )
  69. )
  70. (princ)
  71. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 15:55:58 | 显示全部楼层
请阅读代码发布指南代码需要包含在代码标签中。[NOPARSE]
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here

 
这次我给你修好了。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:18:45 | 显示全部楼层
您知道MLEADERALIGN命令吗?
回复

使用道具 举报

3

主题

18

帖子

24

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-5 16:39:30 | 显示全部楼层
您好,您有什么方法可以对齐相同角度的引线,因为我的工作需要对齐300多个引线作为绘图的相同角度
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:06 , Processed in 0.807412 second(s), 60 queries .

© 2020-2025 乐筑天下

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