VS:SetPenFore: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
(the declaration should fit the explanation, but I won't change this, file a report)
(add example)
Line 45: Line 45:
  SetPenFore(FSActLayer, colorIndex); { longer using a variable }
  SetPenFore(FSActLayer, colorIndex); { longer using a variable }
  SetPenFore(FSActLayer, RGBToColorIndex(65535, 0, 0)); { the same as above but shorter }
  SetPenFore(FSActLayer, RGBToColorIndex(65535, 0, 0)); { the same as above but shorter }
SetPenFore(FSActLayer, 65535, 0, 0); { the same as above even shorter }
   
   
Python:
Python:

Revision as of 18:49, 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 }
SetPenFore(FSActLayer, 65535, 0, 0); { the same as above even 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]]