乐筑天下

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

[编程交流] 在特定位置绘制的引线lisp

[复制链接]

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:59:27 | 显示全部楼层 |阅读模式
我刚开始一份新工作,我的老板希望所有的领导者要么是直的,要么是直的,要么是以15度角向右或15度角向左绘制,这取决于文本在哪一边。因此,我要么复制以前绘制的其他引线,并修改它们以用于特定注释,要么使用捕捉角度然后使用透明捕捉,以在有角度的引线上获得直接返回(这两个选项都不理想且耗时:哎哟:)。我不擅长编写lisp例程,但我想也许有人写了一个我可以用的例程?我附上一张autocad 2007图纸来说明我在说什么。
 
谢谢
杰夫:D
领导者。图纸
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:20:18 | 显示全部楼层
这是我刚刚为你写的,我希望它能满足你的需要。
 
您的图形应具有Dim样式Dims-96,以使例程按需工作,否则例程将考虑当前活动的Dim样式。
 
试试看。。。
 
  1. (defun c:Test (/ *error* acdoc p1 dir str p2 p3 e)
  2. ;; == Tharwat 29. 08. 2011 == ;;
  3. (vl-load-com)
  4. (defun *error* (msg)
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **"))
  7.    )
  8.    (princ)
  9. )
  10. (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  11. (if
  12.    (and
  13.      (setq p1 (getpoint "\n Specify Ledaer start Point :"))
  14.      (progn (initget 1 "Right Left")
  15.             (setq dir (getkword "\n Specify the direction <Right/Left> :"))
  16.      )
  17.      (setq str (getstring T "\n Enter Your Text :"))
  18.    )
  19.     (progn
  20.       (vla-StartUndoMark acdoc)
  21.       (cond
  22.         ((eq dir "Right")
  23.          (progn (setq p2 (list (+ (car p1) 34.5) (+ (cadr p1) 128.7) 0.))
  24.                 (setq p3 (polar p2 0. 165.)
  25.          )
  26.         )
  27.         ((eq dir "Left")
  28.          (progn (setq p2 (list (- (car p1) 34.5) (+ (cadr p1) 128.7) 0.))
  29.                 (setq p3 (polar p2 pi 165.)
  30.          )
  31.         )
  32.       )
  33.       (if str
  34.         (setq e (entmakex (list '(0 . "TEXT")
  35.                                 '(100 . "AcDbEntity")
  36.                                 '(100 . "AcDbText")
  37.                                 '(410 . "Model")
  38.                                 (cons 10 (trans p3 1 0))
  39.                                 '(40 . 10.5)
  40.                                 (cons 1 str)
  41.                                 '(50 . 0.)
  42.                                 '(210 0.0 0.0 1.0)
  43.                           )
  44.                 )
  45.         )
  46.       )
  47.       (entmakex (list '(0 . "LEADER")
  48.                       '(100 . "AcDbEntity")
  49.                       '(100 . "AcDbLeader")
  50.                       '(410 . "Model")
  51.                       '(8 . "ANNO-TEXT")
  52.                       '(3 . "Dims-96")
  53.                       (cons 10 (trans p1 1 0))
  54.                       (cons 10 (trans p2 1 0))
  55.                       (cons 10 (trans p3 1 0))
  56.                       '(71 . 1)
  57.                       '(72 . 0)
  58.                       '(73 . 0)
  59.                       '(74 . 0)
  60.                       '(75 . 0)
  61.                       '(40 . 10.5)
  62.                       '(41 . 7.6)
  63.                       '(76 . 3)
  64.                       (cons 340 e)
  65.                 )
  66.       )
  67.     )
  68.     (princ)
  69. )
  70. (vla-EndUndoMark acdoc)
  71. (princ)
  72. )
Tharwat
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:36:41 | 显示全部楼层
使用多重引线。
 
此选项已可用于在样式中设置:
 
095930vqh9q9g8zzphvhk6.png
回复

使用道具 举报

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:50:03 | 显示全部楼层
感谢您的回复,
 
李,我以前试过Mleaders,但没有得到我想要的结果,但我会继续努力。
 
Tharwat,谢谢你的lisp例程,它非常接近我想要的,除了有没有办法为领头羊选择第一秒和第三点,而不是每次都选择相同的大小?我只是好奇你花了多长时间写Lisp程序,非常感谢你的时间!
 
谢谢
杰夫:)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:10:42 | 显示全部楼层
 
杰夫-很值得坚持。我相信其他人会同意,MLeader比旧的Leader/QLeader实体强大得多。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 06:25 , Processed in 0.536792 second(s), 64 queries .

© 2020-2025 乐筑天下

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