zoukankan      html  css  js  c++  java
  • AutoLISP反应器vlrobjectreactor函数应用

    AutoLISP反应器vlr-object-reactor函数应用,代码如下。

    (defun c:tt (/ line line_handle txt txt_line txt_line_reactor)
        (Setq txt (Vlax-Ename->Vla-Object (car (entsel))))
        (Setq line (Vlax-Ename->Vla-Object (car (entsel))))
        (setq line_handle (Vlax-Get line 'Handle))
        (if    (not txt_line_reactor)
        (setq txt_line_reactor
             (vlr-object-reactor
                 (list txt)
                 (list line_handle)
                 '((:vlr-modified . Txt_Line))
             )
        )
        )
        (vlr-pers txt_line_reactor)
    )
    (defun Txt_Line    (a b c / line line_pa long pa pb pta ptb txt)
        (setq txt a)
        (setq line (Vlax-Invoke-Method
               (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument)
               'HandleToObject
               (car (vlr-data b))
               )
        )
        (Vlax-Invoke-Method txt 'GetBoundingBox 'pa 'pb)
        (setq pta (vlax-safearray->list pa))
        (setq ptb (vlax-safearray->list pb))
        (setq long (- (car ptb) (car pta)))
        (setq line_pa (Vlax-Get line 'StartPoint))
        (Vlax-Put-Property
        line
        'EndPoint
        (Vlax-3d-Point (list (+ long (car line_pa)) (cadr line_pa)))
        )
        (princ)
    )

    代码完。

    Vlax-3d-Point不是画线命令,从新设置endpoint点用startpoint来计算出其坐标,用vlax-put-property重新设置endpoint点,更新直线。

    Vlax-Invoke-Method调用ActiveX方法。

    作者:codee
    文章千古事,得失寸心知。


  • 相关阅读:
    C++的开源跨平台日志库glog学习研究(一)
    C++实现的字符串模糊匹配
    Git&GitHub学习日志
    UTF-8和GBK等中文字符编码格式介绍及相互转换
    HDU
    340. 通信线路(分层图最短路)
    ACwing 你能回答这些问题吗(线段树求最大连续字段和)
    Laptop(线段树+离散化)
    Infinite Inversions(树状数组+离散化)
    HDU-4417-Super Mario(主席树解法)
  • 原文地址:https://www.cnblogs.com/bimgoo/p/2503084.html
Copyright © 2011-2022 走看看