Vla-put-alignment

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


機能
属性、属性参照、または文字の垂直位置合わせと水平位置合わせの両方を指定する。


引数
  • vla-object … VLAオブジェクト(Attribute、AttributeRef、Text)
  • point … acAlignment 列挙型
  • acAlignmentLeft
  • acAlignmentCenter
  • acAlignmentRight
  • acAlignmentAligned
  • acAlignmentMiddle
  • acAlignmentFit
  • acAlignmentTopLeft
  • acAlignmentTopCenter
  • acAlignmentTopRight
  • acAlignmentMiddleLeft
  • acAlignmentMiddleCenter
  • acAlignmentMiddleRight
  • acAlignmentBottomLeft
  • acAlignmentBottomCenter
  • acAlignmentBottomRight


戻り値
nil


  • MEMO : acAlignmentLeft で位置合わせされる文字は、InsertionPoint プロパティを使用して文字を位置付けする。
  • acAlignmentAligned または acAlignmentFit で位置合わせされる文字は、InsertPoint と TextAlignmentPoint の両方のプロパティを使用して文字を位置付けする。
  • これら以外の位置で位置合わせされる文字は、TextAlignmentPoint プロパティを使用して文字を位置付けする。


サンプル
(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)

    (alert (strcat "新しい文字位置合わせ設定は " (itoa (vla-get-Alignment textObj))))

    (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)))
)

関連事項