Primitive
[Desktop Automation]
This object contains a primitive generator of the type that was specified during its generation from a primitivelist
object.
Properties
Property | Read/write | Type | Description |
---|---|---|---|
settingcount | read-only | Number | Number of settings of this primitive generator |
(setting name) | read/write | Number or String | Read and write any setting, or parameter, by the specified name. The list of available settings depends on the primitive generator. |
Methods
Name | Syntax | Description |
---|---|---|
generatemesh | primitive:generatemesh() | Generates and returns a mesh object. |
getsettingname | primitive:getsettingname(index:number) | Get setting name at given index. Returns a string. |
getsettingvalue | primitive:getsettingvalue(index:number) | Get value of setting at given index. Return type depends on the type of the setting. |
setsettingvalue | primitive:setsettingvalue(index:number; value:number or string) | Set value of setting at given index. Type of value must match the type of the setting. |
setsettingvaluebyname | Primitive:setsettingvaluebyname(key: string; value:number or string) | Set the value of a setting with the given name. Type of value must match the type of the setting. key is case-sensitive. |
Examples
List available primitive generators and their parameters
This example generates a text file containing a list of primitive generators with their respective parameters and default values.
myprimlist = system:createprimitivelist()
mytext = system:createtextfile()
for i=0, myprimlist.count-1, 1 do
local mylistitem = myprimlist:getname(i)
mytext:writeline(mylistitem)
local myprim = myprimlist:createprimitivebyindex(i)
for j=0, myprim.settingcount-1, 1 do
local mysettingitem = myprim:getsettingname(j)
local mysettingvalue = myprim:getsettingvalue(j)
mytext:writeline("- " .. mysettingitem .. " " .. mysettingvalue)
end
mytext:writeline("")
end
mytext:savetofile("C:\\primlist.txt")
Excerpt:
box
- name Box
- color 8421504
- sizex 100
- sizey 100
- sizez 100
- boxtype 0
- wallthickness 10
- trianglelength 50
Use a primitive generator to put a new part on the platform
myprimlist = system:createprimitivelist() -- always required
mytextprim = myprimlist:createprimitive('text')
mytextprim:setsettingvaluebyname('font','Century')
mymesh = mytextprim:generatemesh()
tray.root:addmesh(mymesh)