VS:SetPenFore: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
(comment VS<>Py)
(the declaration should fit the explanation, but I won't change this, file a report)
Line 36: Line 36:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark>
<remark>
([[User:Orso.b.schmid|Orso]] 2015.05.18): Historically this Vectorscript procedure responded to both notations:
([[User:Orso.b.schmid|Orso]] 2015.05.18): Color stays here for ColorIndex, which can be retrieved using [[VS:RGBToColorIndex]] passing the three colors Red, Green and Blue as LONGINT parameters. Historically this Vectorscript procedure responded to two types of notations:
* with a singular color index: <code>SetPenFore(FSActLayer, colorIndex);</code>
* with three longints: <code>SetPenFore(FSActLayer, 65535, 0, 0);</code>


The corresponding Python function on the other side will only respond to the colorIndex notation:
Vectorscript:
* with a singular [[VS:RGBToColorIndex| color index]]: <code>SetPenFore(FSActLayer, colorIndex);</code>
* with three RGB longints: <code>SetPenFore(FSActLayer, 65535, 0, 0);</code>
 
colorIndex := RGBToColorIndex(65535, 0, 0);
SetPenFore(FSActLayer, colorIndex); { longer using a variable }
SetPenFore(FSActLayer, RGBToColorIndex(65535, 0, 0)); { the same as above but shorter }
Python:
* with a singular color index: <code>vs.SetPenFore(vs.FSActLayer(), vs.RGBToColorIndex(65535, 0, 0)) </code>
* with a singular color index: <code>vs.SetPenFore(vs.FSActLayer(), vs.RGBToColorIndex(65535, 0, 0)) </code>
See similar comment for SetFillBack.
* with three longints in a tuple: <code>vs.SetPenFore(vs.FSActLayer(), (65535, 0, 0)) </code>
* with three hex numbers in a tuple: <code>vs.SetPenFore(vs.FSActLayer(), (0xFFFF, 0, 0)) </code>
See similar comment for [[VS:SetFillBack]].


SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it (up to VW 13).
SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it (up to VW 13).




Joel Sciamma 2006.08.14: To have no pen drawn, use SetLW to set the line weight to zero.
(Joel Sciamma 2006.08.14): To have no pen drawn, use SetLW to set the line weight to zero.
</remark>
</remark>



Revision as of 18:48, 18 May 2015

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

Description

Procedure SetPenFore sets the pen foreground color of the referenced object. RGB values are in the range of 0~65535.

PROCEDURE SetPenFore(
h :HANDLE;
color  : LONGINT);
def vs.SetPenFore(h, color):
    return None

Parameters

h HANDLE Handle to object.
color LONGINT RGB color value.

Remarks

(Orso 2015.05.18): Color stays here for ColorIndex, which can be retrieved using VS:RGBToColorIndex passing the three colors Red, Green and Blue as LONGINT parameters. Historically this Vectorscript procedure responded to two types of notations:

Vectorscript:

  • with a singular color index: SetPenFore(FSActLayer, colorIndex);
  • with three RGB longints: SetPenFore(FSActLayer, 65535, 0, 0);
colorIndex := RGBToColorIndex(65535, 0, 0);
SetPenFore(FSActLayer, colorIndex); { longer using a variable }
SetPenFore(FSActLayer, RGBToColorIndex(65535, 0, 0)); { the same as above but shorter }

Python:

  • with a singular color index: vs.SetPenFore(vs.FSActLayer(), vs.RGBToColorIndex(65535, 0, 0))
  • with three longints in a tuple: vs.SetPenFore(vs.FSActLayer(), (65535, 0, 0))
  • with three hex numbers in a tuple: vs.SetPenFore(vs.FSActLayer(), (0xFFFF, 0, 0))

See similar comment for VS:SetFillBack.

SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it (up to VW 13).


(Joel Sciamma 2006.08.14): To have no pen drawn, use SetLW to set the line weight to zero.

Example

VectorScript

PROCEDURE Example;
VAR
red, green, blue, color :LONGINT;
criteria :STRING;
BEGIN
red := 65535;
green := 0;
blue := 0;
RGBToColorIndex(red, green, blue, color);
Rect(0, 0, 1, 1);
SetPenFore(LNewObj, color);
DSelectAll;
criteria := Concat('(INSYMBOL & INVIEWPORT & (PF=', color, '))');
SelectObj(criteria);
Message(criteria);
DeleteObjs;
END;
RUN(Example);

Python

def Example():
	red = 65535
	green = 0
	blue = 0
	color = vs.RGBToColorIndex(red, green, blue)
	vs.Rect(0, 0, 1, 1)
	vs.SetPenFore(vs.LNewObj(), color)
	vs.DSelectAll()
	criteria = vs.Concat('(INSYMBOL & INVIEWPORT & (PF=', color, '))')
	vs.SelectObj(criteria)
	vs.Message(criteria)
	vs.DeleteObjs()
Example()

Version

Availability: from All Versions

See Also

VS Functions:

VS:RGBToColorIndex | VS:ColorIndexToRGB

VS Functions:

[[VS:RGBToColorIndex]]

| [[VS:ColorIndexToRGB]]