VS:OverlapLineArc: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
No edit summary
 
m (1 revision)
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<desc>
<desc>
Finds the overlap of a line and an arc. Returns the overlapping segment if it exists. Returns FALSE IF there is no overlap.
Finds the overlap of a line and an arc. Returns the overlapping segment if it exists.</desc>
</desc>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<def>
<def>
<funcDef lang="vs">
<funcDef lang="vs">
FUNCTION OverlapLineArc(begPtX, begPtY, begPtZ :REAL; endptX, endptY, endptZ :REAL; cenPtX, cenPtY, cenPtZ :REAL; radius :REAL; startAng :REAL; sweepAng :REAL; VAR lapPt1X, lapPt1Y, lapPt1Z :REAL; VAR lapPt2X, lapPt2Y, lapPt2Z :REAL; tolerance :REAL) :BO
FUNCTION OverlapLineArc(begPt:VECTOR; endpt:VECTOR; cenPt:VECTOR; radius:REAL; startAng:REAL; sweepAng:REAL; VAR lapPt1:VECTOR; VAR lapPt2:VECTOR; tolerance:REAL) : BOOLEAN;
</funcDef>
</funcDef>
<funcDef lang="py">
<funcDef lang="py">
Line 23: Line 22:
<lineList ident=1>
<lineList ident=1>
<line>
<line>
begPtX, begPtY, begPtZ
begPt
REAL
VECTOR


</line>
</line>
<line>
<line>
endptX, endptY, endptZ
endpt
REAL
VECTOR


</line>
</line>
<line>
<line>
cenPtX, cenPtY, cenPtZ
cenPt
REAL
VECTOR


</line>
</line>
Line 53: Line 52:
</line>
</line>
<line>
<line>
lapPt1X, lapPt1Y, lapPt1Z
lapPt1
REAL
VECTOR
Output parameter.
 
</line>
</line>
<line>
<line>
lapPt2X, lapPt2Y, lapPt2Z
lapPt2
REAL
VECTOR
Output parameter.
 
</line>
</line>
<line>
<line>
Line 69: Line 68:
</lineList>
</lineList>
</params>
</params>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<return>
<remark></remark>
</return>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark>
<sample></sample>
 
</remark>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<sample>
<seeAlso></seeAlso>
<code lang="pas">
PROCEDURE Example;
VAR
  beg_pt, END_pt :VECTOR;
  cen_pt :VECTOR;
  radius, startAng, sweepAng :REAL;
  lap_pt1, lap_pt2 :VECTOR;
 
PROCEDURE ArcInfo(h :HANDLE; VAR cen_pt :VECTOR; VAR startAng, sweepAng, Radius :REAL);
BEGIN
  Hcenter(h, cen_pt.x, cen_pt.y);
  GetArc (h, startAng, sweepAng);
  IF GetType(h) = 6 THEN Radius := HPerim(h) / Deg2Rad(sweepAng) ELSE
  IF GetType(h) = 89 THEN radius := GetObjectVariableReal(h, 571);
END;
 
BEGIN
  CallTool(-202);
  ArcInfo(FSActLayer, cen_pt, startAng, sweepAng, radius);
 
  CallTool(-201);
  GetSegPt1(FSActLayer, beg_pt.x, beg_pt.y);
  GetSegPt2(FSActLayer, END_pt.x, END_pt.y);
 
  IF OverlapLineArc( beg_pt, end_pt, cen_pt, radius, startAng, sweepAng,  lap_pt1, lap_pt2, 0.001) THEN BEGIN
      Locus(lap_pt1.x, lap_pt1.y);
      Locus(lap_pt2.x, lap_pt2.y);
  END;
END;
RUN(Example);</code>
 
</sample>


-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<version>
<version>
Availability: from All Versions
Availability: from Vectorworks 2014


This is drop-in function.
</version>
</version>
-----------------------------------------------------------------------------------------------------------
<seeAlso>
</seeAlso>


</vwDoc>
</vwDoc>

Latest revision as of 17:35, 18 September 2013

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

Description

Finds the overlap of a line and an arc. Returns the overlapping segment if it exists.

FUNCTION OverlapLineArc(
begPt :VECTOR;
endpt :VECTOR;
cenPt :VECTOR;
radius :REAL;
startAng :REAL;
sweepAng :REAL;
VAR lapPt1 :VECTOR;
VAR lapPt2 :VECTOR;
tolerance :REAL) : BOOLEAN;
def vs.OverlapLineArc(begPt, endpt, cenPt, radius, startAng, sweepAng, tolerance):
    return (BOOLEAN, lapPt1, lapPt2)

Parameters

begPt VECTOR
endpt VECTOR
cenPt VECTOR
radius REAL
startAng REAL
sweepAng REAL
lapPt1 VECTOR
lapPt2 VECTOR
tolerance REAL

Version

Availability: from Vectorworks 2014