Vla-get-textalignmentpoint

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-get-textalignmentpoint vla-object)


機能
文字と属性の位置合わせ点を取得する。


引数
  • vla-object … VLAオブジェクト(Attribute、AttributeReference、Text)


戻り値
オブジェクトの位置合わせ点を表す 3D WCS 座標


  • MEMO : Text: Alignment プロパティが acAlignmentLeft に設定されている場合、このプロパティは 0, 0, 0 にリセットされ、読み込み専用になる。位置合わせが、左、両端合わせ、フィットの文字の位置を決めるには、InsertionPoint プロパティを使う。


サンプル
(vl-load-com)
(defun c:Example_TextAlignmentPoint()
    ;; 文字を作成して、位置合わせ点と水平位置を変更するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 文字の定義
    (setq insertionPoint (vlax-3d-point 3 3 0)  
          textString "Hello, World."
          height 0.5)
    
    ;; 文字を作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq textObj (vla-AddText modelSpace textString insertionPoint height))  
    (vla-ZoomAll acadObj)

    (setq alignmentPoint (vlax-variant-value (vla-get-TextAlignmentPoint textObj)))
    (alert (strcat "現在の位置合わせ点は " 
                   (rtos (vlax-safearray-get-element alignmentPoint 0) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 1) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 2) 2)))
    
    ;; 変更
    ;; note : HorizontalAlignmentプロパティを先に変更する必要がある。
    (setq alignmentPoint (vlax-3d-point 5 3 0))
    (vla-put-Alignment textObj acHorizontalAlignmentFit)
    (vla-put-TextAlignmentPoint textObj alignmentPoint)
    (vla-ZoomAll acadObj)

    (setq alignmentPoint (vlax-variant-value (vla-get-TextAlignmentPoint textObj)))
    (alert (strcat "位置合わせ点を次にセット " 
                   (rtos (vlax-safearray-get-element alignmentPoint 0) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 1) 2) ", "
                   (rtos (vlax-safearray-get-element alignmentPoint 2) 2)))
)

関連事項