VS:SetPenFore: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
m (1 revision)
 
(reduce older remarks)
(3 intermediate revisions by the same user not shown)
Line 10: Line 10:
<def>
<def>
<funcDef lang="vs">
<funcDef lang="vs">
PROCEDURE SetPenFore(h:HANDLE; color:LONGINT);
PROCEDURE SetPenFore(h:HANDLE; color : LONGINT);
</funcDef>
</funcDef>
<funcDef lang="py">
<funcDef lang="py">
Line 36: Line 36:
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
<remark>
<remark>
This Procedure will also accept a single INTEGER Color Palette Index value for the COLOR parameter. See similar comment for SetFillBack.
([[User:Orso.b.schmid|Orso]] 2015.05.18): This Vectorscript routine responds to multiple types of notations:


SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it (up to VW 13).
Vectorscript:
* Singular [[VS:RGBToColorIndex| color index]]:
*: <code>colorIndex := RGBToColorIndex(65535, 0, 0);</code>
*: <code>SetPenFore(FSActLayer, colorIndex);</code>
* Three RGB longints:
*: <code>SetPenFore(FSActLayer, 65535, 0, 0);</code>
Python:
* Singular color index:
*: <code>vs.SetPenFore(vs.FSActLayer(), vs.RGBToColorIndex(65535, 0, 0)) </code>
* Three longints in a tuple:
*: <code>vs.SetPenFore(vs.FSActLayer(), (65535, 0, 0)) </code>
* Three hex numbers in a tuple:
*: <code>vs.SetPenFore(vs.FSActLayer(), (0xFFFF, 0, 0)) </code>


Joel Sciamma 2006.08.14: To have no pen drawn, use SetLW to set the line weight to zero.
On Vectorlab there is a list of all color routines accepting multiple variable type, see: [http://www.vectorlab.info/index.php?title=Index_pitfalls#Colors Color Index].
; Warning: SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it.
 
 
(Joel Sciamma 2006.08.14): To have no pen drawn, use SetLW to set the line weight to zero.
</remark>
</remark>



Revision as of 04:29, 19 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): This Vectorscript routine responds to multiple types of notations:

Vectorscript:

  • Singular color index:
    colorIndex := RGBToColorIndex(65535, 0, 0);
    SetPenFore(FSActLayer, colorIndex);
  • Three RGB longints:
    SetPenFore(FSActLayer, 65535, 0, 0);

Python:

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

On Vectorlab there is a list of all color routines accepting multiple variable type, see: Color Index.

Warning
SetPenBack, SetPenFore will remove the "ByClass" attribute of the FILL as well. Remember to parse for it and restore it.


(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]]