VS:ConvertToArcPolyline: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (fix) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<desc> | <desc> | ||
Convert, within a tolerance, the input polyline into an polyline that uses arcs for the curves.</desc> | |||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
Line 35: | Line 35: | ||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<remark></remark> | <remark> | ||
([[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 | |||
* 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 | |||
</remark> | |||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ||
<sample></sample> | <sample> | ||
==== VectorScript ==== | |||
<code lang="pas"> | |||
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); | |||
</code> | |||
==== Python ==== | |||
<code lang="py"> | |||
# select a polyline | |||
polyObj = vs.FSActLayer() | |||
if polyObj != vs.Handle( 0 ): | |||
newPolyObj = vs.ConvertToArcPolyline(polyObj, 0) | |||
vs.SetDSelect(polyObj) | |||
</code> | |||
</sample> | |||
----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
Latest revision as of 06:30, 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