乐筑天下

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

[编程交流] 引线起点

[复制链接]

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 11:32:21 | 显示全部楼层 |阅读模式
你好
 
大家好,
 
有没有一条路径可以让引线从文本上的点开始,最后是箭头,因为我在拥挤的文本排列上需要它,如果最后一个点是箭头,很容易排列引线,
 
非常感谢
回复

使用道具 举报

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 11:43:11 | 显示全部楼层
大家好,
 
我附加了一个图像,将由lsp完成,我需要的是
引线将反转起点命令,是否可以设置,
 
非常感谢
123224rsf2fwfo2bow8kf5.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:52:36 | 显示全部楼层
像这样的?
 
  1. (defun c:Backwards_Leader (/ *error* GetPoints ENT OBJ PTLST UFLAG)
  2. (vl-load-com)
  3. ;; Lee Mac  ~  05.03.10
  4. (setq *doc (cond (*doc) ((vla-get-ActiveDocument
  5.                             (vlax-get-acad-object)))))
  6. (defun *error* (msg)
  7.    (and uFlag (vla-EndUndoMark *doc))
  8.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  9.        (princ (strcat "\n** Error: " msg " **")))
  10.    (redraw) (princ))
  11. (defun GetPoints (/ lst pt)
  12.    (if (car (setq lst (list (getpoint "\nPick First Point: "))))
  13.      (while (setq pt (getpoint "\nPick Next Point: " (car lst)))
  14.        (mapcar
  15.          (function
  16.            (lambda (from to)
  17.              (grdraw from to 40 1)))
  18.          (cdr (reverse (setq lst (cons pt lst))))
  19.          (reverse (cdr lst)))))
  20.    
  21.     lst)
  22. (while
  23.    (progn
  24.      (setq ent (car (entsel "\nSelect Text for Leader: ")))
  25.      (cond (  (eq 'ENAME (type ent))
  26.               (if (eq (vla-get-ObjectName
  27.                         (setq obj (vlax-ename->vla-object ent))) "AcDbMText")
  28.                 (if (setq ptLst (GetPoints))
  29.                   (progn
  30.                     (setq uFlag (not (vla-StartUndoMark *doc)))
  31.                     (vla-AddLeader
  32.                      
  33.                       (if (eq AcPaperSpace (vla-get-ActiveSpace *doc))
  34.                         (if (eq :vlax-true (vla-get-MSpace *doc))
  35.                           (vla-get-ModelSpace *doc)
  36.                           (vla-get-PaperSpace *doc))
  37.                         (vla-get-ModelSpace *doc))
  38.                      
  39.                       (variant
  40.                         (vlax-safearray-fill
  41.                           (safearray vlax-vbDouble
  42.                             (cons 0 (1- (* 3 (length ptLst)))))                           
  43.                           (apply (function append) ptLst)))
  44.                      
  45.                       obj acLineWithArrow)
  46.                     (setq uFlag (vla-EndUndoMark *doc))))
  47.                 (princ "\n** Object Must be MText **"))))))
  48. (redraw) (princ))
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 11:57:43 | 显示全部楼层
嗨,李,麦克
请你开导一下,好吗
 
你为什么用它?
 
(setq*doc(cond(*doc)((vla get ActiveDocument
(vlax get acad object 1000;Ϩ)Ϩ)
 
 
而不是一个简单的
 
(setq*doc(vla get ActiveDocument(vlax get acad object)))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:04:02 | 显示全部楼层
因此,*doc可以保持全局性,我不必多次调用vlax get acad对象加载。
回复

使用道具 举报

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 12:13:50 | 显示全部楼层
非常感谢李,
 
工作正常:)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:23:21 | 显示全部楼层
不客气,维斯塔克,写得很有趣
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 12:28:54 | 显示全部楼层
嗨,李
我写了这段代码,但没有成功
  1. (defun c:drleader()
  2. (setq MS (vla-get-ModelSpace (vla-get-activeDocument (vlax-get-acad-object)) ))
  3. (setq p1 (getpoint "\n Getpoint p1 :"))
  4. (setq p2 (getpoint p1 "\n Getpoint p2 :"))
  5. (setq lst (append p1 p2))
  6. (setq vri (vlax-make-variant
  7.       (vlax-safearray-fill
  8.   (vlax-make-safearray vlax-VBDouble
  9.           (cons 1 (length lst))
  10.   )
  11.          lst)
  12.   )
  13. )
  14. (vla-addleader MS vri nil acLineNoArrow)
  15. (princ)
  16. )

命令:drleader
获取点p1:
获取点p2:;错误:ActiveX服务器返回错误:参数不是可选的
 
请告诉我修复此代码
非常感谢你。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:34:22 | 显示全部楼层
vla addleader方法的文档有一个小问题,即无法指定空的多行文字参数。您需要指定多行文字对象,然后将其删除。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-3 19:25 , Processed in 0.748431 second(s), 83 queries .

© 2020-2025 乐筑天下

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