VS:SetSegPt1/ja

From Vectorworks Developer
Jump to navigation Jump to search

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

ハンドルで指定した直線や壁の始点の座標を、指定した座標に変更します。

PROCEDURE SetSegPt1(
h :HANDLE;
p :REAL);
def vs.SetSegPt1(h, p):
    return None

Parameters

h HANDLE 図形のハンドル
p REAL 始点の座標

Example

PROCEDURE ExtendLine;
CONST
   kEXTENSION = 250mm;

PROCEDURE ProcessLine(lineHdl :HANDLE);
VAR
   size :REAL;
   lineVec :VECTOR;
   arrow1,arrow2 :BOOLEAN;
   style,angle :INTEGER;
   p1X,p1Y,p2X,p2Y,lineLen :REAL;
BEGIN
   GetSegPt1(lineHdl, p1X, p1Y);
   GetSegPt2(lineHdl, p2X, p2Y);
   GetObjArrow(lineHdl, style, size, angle, arrow1, arrow2);
   IF arrow1 THEN BEGIN
      lineVec[1] := p1X - p2X;
      lineVec[2] := p1Y - p2Y;
      lineLen := Norm(lineVec);
      lineVec := (lineLen + kEXTENSION) * UnitVec(lineVec);
      p1X := p2X + lineVec[1];
      p1Y := p2Y + lineVec[2];
      SetSegPt1(lineHdl, p1X, p1Y);
   END ELSE BEGIN
      lineVec[1] := p2X - p1X;
      lineVec[2] := p2Y - p1Y;
      lineLen := Norm(lineVec);
      lineVec := (lineLen + kEXTENSION) * UnitVec(lineVec);
      p2X := p1X + lineVec[1];
      p2Y := p1Y + lineVec[2];
      SetSegPt2(lineHdl, p2X, p2Y);
   END;
END;

BEGIN
   ForEachObject(ProcessLine, (((C='LineClass') & (T=LINE))));
END;
RUN(ExtendLine);

Version

利用可能バージョン: MiniCAD

See Also

関連関数:

VS:SetSegPt2

関連関数: [[VS:SetSegPt2]]