VS:ConvertToArcPolyline: Difference between revisions
Jump to navigation
Jump to search
(add examples, comment, fails on rad vertex) |
(fix, expand) |
||
Line 36: | Line 36: | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<remark> | <remark> | ||
([[User:CBM-c-|_c_]], 2022.02.02) This routine must be updated, it still doesn't | ([[User:CBM-c-|_c_]], 2022.02.02) This routine must be updated, it still doesn't recognize Radius vertexes. | ||
As of VW 2022 the routine behaves on vertexes as such: | |||
* corner: preserved | * corner: preserved | ||
* arc: preserved only on dFuzz = 0, otherwise | * arc: preserved only on dFuzz = 0, otherwise they turn into corner, which is truly strange, since the purpose IS to create arc vertexes | ||
* radius: ignored, turn into corner | * radius: ignored, turn into corner | ||
* cubic: turn into arc | * cubic: turn into arc |
Revision as of 03:48, 3 February 2022
.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix
Description
Convert, within a tolerance, the input polyline into an polyline that uses arcs for the curves.
FUNCTION ConvertToArcPolyline(
hPolygon :HANDLE;
dFuzz :REAL) : HANDLE;
def vs.ConvertToArcPolyline(hPolygon, dFuzz): return HANDLE
Parameters
hPolygon HANDLE dFuzz REAL
Remarks
(_c_, 2022.02.02) This routine must be updated, it still doesn't recognize Radius vertexes.
As of VW 2022 the routine behaves on vertexes as such:
- corner: preserved
- arc: preserved only on dFuzz = 0, otherwise they turn into corner, which is truly strange, since the purpose IS to create arc vertexes
- radius: ignored, turn into corner
- cubic: turn into arc
- bezier: turn into arc
Example
VectorScript
PROCEDURE Test; VAR polyObj, newPolyObj : HANDLE; BEGIN { select a polyline } polyObj := FSActLayer; IF polyObj <> NIL THEN BEGIN newPolyObj := ConvertToArcPolyline(polyObj, 0); SetDSelect(polyObj); END; END; Run(Test);
Python
# select a polyline polyObj = vs.FSActLayer() if polyObj != vs.Handle( 0 ): newPolyObj = vs.ConvertToArcPolyline(polyObj, 0) vs.SetDSelect(polyObj)
Version
Availability: from Vectorworks 2014