明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1848|回复: 4

[函数] vla-AddMLeader函数用法

[复制链接]
发表于 2014-10-8 18:23 | 显示全部楼层 |阅读模式
Lisp在创建多重引线时,有个函数vla-AddMLeader,但不知道怎么用,没有函数说明吗, 求助大家,谢谢!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-10-8 21:23 | 显示全部楼层
AutoCAD帮助 ->开发人员文档 -> ActiveX and VBA Reference ->Methods -> AddMLeader Method
 楼主| 发表于 2014-10-9 10:50 | 显示全部楼层
本帖最后由 xgr 于 2014-10-9 10:51 编辑
  1. (defun c:test()
  2. ;;; 这个范例在模型空间中建立一个具有关联注释的Leader 对象
  3. ;;; 接着使用ArrowheadType属性来改变
  4. ;;; 箭头的可见外观(造型)
  5.   (VL-LOAD-COM)
  6.   (setq AcadObject(vlax-get-acad-object)
  7.         AcadDocument(vla-get-ActiveDocument Acadobject)
  8.         mSpace(vla-get-ModelSpace Acaddocument)
  9.   )
  10. ;;; 定义新的 MText 对象
  11.   (setq textString "嗨,你好。")
  12.   (setq insertionPnt(vlax-make-safearray vlax-vbDouble '(0 . 2)))
  13.   (vlax-safearray-fill insertionPnt '(50 50 0))
  14.   (setq width 20)
  15. ;;; 在模型空间中建立 MText 对象
  16.   (setq MTextObj(vla-AddMText mSpace insertionPnt width textString))
  17. ;;; 引线的数据
  18.   (setq pnts(vlax-make-safearray vlax-vbDouble '(0 . 5)))
  19.   (vlax-safearray-fill pnts '(0 0 0 40 40 0))
  20.   (setq leaderType acLineWithArrow)
  21. ;;; 在模型空间中建立 MLeader 对象,接着将MText对象设成Leader的注释,
  22. ;;; 以使用新的MText对象和MLeader建立关联
  23.   (setq annotationObject MTextObj)
  24.   ;;(setq leaderObj(vla-AddLeader mSpace pnts annotationObject leaderType))
  25. (setq MleaderObj(vla-AddMLeader <FONT color=red>pnts </FONT>annotationObject leaderType))
  26.   (vla-ZoomExtents AcadObject)
  27. ;;; 读取并显示当前的箭头类型
  28.   (princ "这个对象的箭头类型是:")
  29.   (princ (vla-get-ArrowheadType MleaderObj))(princ "\n")
  30. ;;; 改变这个对象的箭头类型
  31.   (vla-put-ArrowheadType MleaderObj acArrowBoxBlank)
  32.   (vla-ZoomExtents AcadObject)
  33. ;;; 读取并显示当前的箭头类型
  34.   (princ "这个对象的箭头类型现在设定为:")
  35.   (princ (vla-get-ArrowheadType MleaderObj))(princ "\n")
  36.   (princ)
  37. )
简单修改例子,出现错误,
参数类型错误: VLA-OBJECT #<safearray...>; 出错后退出
这个点数组类型需要什么参数类型。
发表于 2014-10-9 11:36 | 显示全部楼层
给你参考:
(defun c:mlte (/) (c:MLeaderToExistingtext))
(defun c:MLeaderToExistingtext (/)
(vl-load-com)
  (cond
    ;;Select the text/mtext objects
    ((or
       (null (setq ss1 (ssget ":S" '((0 . "text,mtext")))))
       (= 0 (setq ssl (sslength ss1)))
     )
     nil                                ;nothing selected
    )
    (T
     (setq
       Textobj        (vlax-ename->vla-object (ssname ss1 0))
       ActSpace        (if (= 0 (getvar "cvport"))
                  (vla-get-paperspace
                    (vla-get-activedocument (vlax-get-acad-object))
                  )
                  (vla-get-modelspace
                    (vla-get-activedocument (vlax-get-acad-object))
                  )
                )
       StartPt        (getpoint "\nPick location for point of arrow head: ")
       txt        (vla-get-TextString Textobj)

       TextPt
                (vla-get-insertionpoint textobj)
       TextPt
                (vlax-variant-value TextPt)
       TextPt
                (vlax-safearray->list TextPt)
       ptlist
                (vlax-make-safearray
                  vlax-vbdouble
                  '(0 . 5)
                )
       ptlist
                (vlax-safearray-fill ptlist (append StartPt TextPt))
       MLObj
                (vla-addmleader
                  ActSpace
                  ptlist
                  'LeaderIndex
                )
     )
     (vla-put-textstring mlobj txt)
     (vla-delete Textobj)

    )
  )
)

评分

参与人数 1明经币 +1 收起 理由
xgr + 1 赞一个!

查看全部评分

 楼主| 发表于 2014-10-9 11:41 | 显示全部楼层
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-19 01:40 , Processed in 0.316169 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表