几何创建 Geometry Creation
创建基本几何体替代当前形状,常用于规则的起始或分支。
| 函数/操作 | 签名 | 状态 |
| primitiveCube [示例] | primitiveCube(w, h, d) | 完成 |
| primitiveSphere [示例] | primitiveSphere(radius, subdivisions) | 完成 |
| primitiveCylinder [示例] | primitiveCylinder(sides, radius, height) | 完成 |
| primitiveCone [示例] | primitiveCone(sides, radius, height) | 完成 |
| primitiveDisk [示例] | primitiveDisk(sides, radius) | 完成 |
| primitiveQuad [示例] | primitiveQuad(w, h) | 完成 |
| primitivePyramid [示例] | primitivePyramid() | 完成 |
| shapeL [示例] | shapeL(frontWidth, leftWidth) | 完成 |
| shapeU [示例] | shapeU(frontWidth, rightWidth, leftWidth) | 完成 |
| shapeO [示例] | shapeO(frontW, rightW, backW, leftW) | 完成 |
几何细分 Geometry Subdivision
将当前形状沿某一轴或周长细分为多个子形状。
| 函数/操作 | 签名 | 状态 |
| split [示例] | split(axis) { size1:... | size2:... } [*] | 完成 |
| splitArea | splitArea(axis) { area1:... } [*] | 完成 |
| setback [示例] | setback(distance) { front:... | side:... | remainder:... } | 部分完成 |
| splitAndSetbackPerimeter [示例] | splitAndSetbackPerimeter(splitOffset [, firstEdgeIndex, selectedEdgesMask]) { length:depth:ops | ... } [*] { remainder:ops } | 完成 |
| innerRectangle [示例] | innerRectangle() | 完成 |
几何操作 Geometry Operations
修改、查询或重塑当前形状的几何结构。
| 函数/操作 | 签名 | 状态 |
| extrude [示例] | extrude(distance) | 完成 |
| comp [示例] | comp(f) { front:... | side:... | top:... | bottom:... | all:... } | 完成 |
| roofHip [示例] | roofHip(height) | 完成 |
| roofGable [示例] | roofGable(height) | 完成 |
| roofPyramid [示例] | roofPyramid(height) | 完成 |
| roofRidge [示例] | roofRidge(height) | 完成 |
| roofShed [示例] | roofShed(height, index) | 完成 |
| offset [示例] | offset(distance) | 完成 |
| taper [示例] | taper(height) | 完成 |
| envelope [示例] | envelope(height, frontAngle, sideAngle) | 部分完成 |
| center | center(axes) | 完成 |
| mirror [示例] | mirror(xFlip, yFlip, zFlip) | 完成 |
| mirrorScope | mirrorScope(xFlip, yFlip, zFlip) | 完成 |
| reverseNormals | reverseNormals() | 完成 |
| setNormals [示例] | setNormals(mode) | 完成 |
| softenNormals [示例] | softenNormals(angle) | 完成 |
| cleanupGeometry [示例] | cleanupGeometry(tolerance) | 完成 |
| deleteHoles [示例] | deleteHoles() | 完成 |
| convexify [示例] | convexify() | 完成 |
| resetGeometry [示例] | resetGeometry() | 完成 |
| reduceGeometry [示例] | reduceGeometry(tolerance) | 完成 |
| rectify [示例] | rectify(angle) | 完成 |
| footprint [示例] | footprint() | 完成 |
| trim | trim() | 完成 |
| modify | modify(component) { ... } | 未完成 |
规则内联和3D布尔 Rule Inlining & 3D Boolean
内联其他规则文件或执行布尔操作。
| 函数/操作 | 签名 | 状态 |
| insert / i | insert(filePath) / i(filePath) | 未完成 |
| insertAlongUV | insertAlongUV(uvSet, filePath, height) | 未完成 |
| union [示例] | union { A | B } | 完成 |
| subtract [示例] | subtract { A | B } | 完成 |
| intersect [示例] | intersect { A | B } | 完成 |
| scatter [示例] | scatter(domain, count) | 完成 |
纹理 Textures
设置颜色、材质和纹理映射。
| 函数/操作 | 签名 | 状态 |
| color [示例] | color("#RRGGBB") / color(r, g, b) | 完成 |
| texture [示例] | texture(url) | 完成 |
| setMaterial [示例] | setMaterial("key", "val", ...) | 完成 |
| resetMaterial [示例] | resetMaterial() | 完成 |
| setupProjection [示例] | setupProjection(uvSet, axes, texW, texH) | 完成 |
| projectUV [示例] | projectUV(uvSet) | 完成 |
| translateUV [示例] | translateUV(uvSet, uOffset, vOffset) | 完成 |
| scaleUV [示例] | scaleUV(uvSet, uFactor, vFactor) | 完成 |
| rotateUV [示例] | rotateUV(uvSet, angle) | 完成 |
| tileUV [示例] | tileUV(uvSet, texW, texH) | 完成 |
| normalizeUV [示例] | normalizeUV(uvSet) | 完成 |
| deleteUV [示例] | deleteUV(uvSet) | 完成 |
| copyUV [示例] | copyUV(src, dst) | 完成 |
范围 Scope
对齐、修改或设置当前形状的 Scope 坐标系。
| 函数/操作 | 签名 | 状态 |
| alignScopeToAxes [示例] | alignScopeToAxes() | 完成 |
| alignScopeToGeometry [示例] | alignScopeToGeometry(faceIndex) | 完成 |
| alignScopeToGeometryBBox [示例] | alignScopeToGeometryBBox(axes) | 完成 |
| setPivot | setPivot(ix, iy, iz) | 完成 |
流程控制 Flow Control
控制规则执行的流程与分支。
| 函数/操作 | 签名 | 状态 |
| NIL | NIL | 完成 |
| p [示例] | p(probability) | 完成 |
| Conditional | case condition : operation | 完成 |
| else | else : operation | 完成 |
| Stop | stop | 完成 |
属性 Attributes
声明可配置的全局或局部属性。
| 语法 | 说明 | 状态 |
| attr | attr name = defaultValue | 完成 |
| const | const name = value | 完成 |
| @Group | 属性分组显示 | 完成 |
| @Hidden | 隐藏属性不显示 | 完成 |
| @Order | 属性排序 | 完成 |
| @Description | 属性描述文本 | 完成 |
形状属性 Shape Attributes
在规则执行过程中访问当前形状的几何与范围信息。
geometry.*
| 属性 | 说明 | 状态 |
| geometry.area | 当前面面积 | 完成 |
| geometry.volume | 当前体体积 | 完成 |
| geometry.height | 当前形状高度 (y 范围) | 完成 |
| geometry.boundaryLength | 边界总长度 | 完成 |
| geometry.nFaces | 面数 | 完成 |
| geometry.nEdges | 边数 | 完成 |
| geometry.nVertices | 顶点数 | 完成 |
| geometry.nHoles | 孔洞数 | 完成 |
| geometry.isPlanar | 是否为平面 | 完成 |
| geometry.isRectangular | 是否为矩形 | 完成 |
| geometry.isConcave | 是否为凹形 | 完成 |
| geometry.isClosedSurface | 是否为闭合表面 | 完成 |
| geometry.isOriented | 是否已定向 | 完成 |
| geometry.isInstanced | 是否为实例 | 未完成 |
| geometry.hasTags | 是否有标签 | 完成 |
| geometry.hasUVs | 是否有 UV | 完成 |
| geometry.angle | 面法线与世界坐标夹角 | 完成 |
| geometry.du / geometry.dv | UV 方向上的导数 | 完成 |
| geometry.groups | 几何分组信息 | 未完成 |
| geometry.materials | 材质列表 | 未完成 |
| geometry.tags | 标签列表 | 未完成 |
| geometry.uMin / uMax / vMin / vMax | UV 边界 | 完成 |
scope.*
| 属性 | 说明 | 状态 |
| scope.sx / sy / sz | Scope 尺寸 | 完成 |
| scope.tx / ty / tz | Scope 平移 | 完成 |
| scope.rx / ry / rz | Scope 旋转 (欧拉角) | 完成 |
| scope.eulerRotation.x / y / z | Scope 欧拉旋转 | 完成 |
| scope.eulerRotation.pivot | 旋转轴心 | 完成 |
initialShape.*
| 属性 | 说明 | 状态 |
| initialShape.origin | 初始形状原点 | 完成 |
| initialShape.geometry | 初始几何信息 | 部分完成 |
内置函数 Built-in Functions
数学函数 Math
| 函数 | 签名 | 状态 |
| abs [示例] | abs(x) | 完成 |
| acos | acos(x) | 完成 |
| asin | asin(x) | 完成 |
| atan | atan(x) | 完成 |
| atan2 | atan2(y, x) | 完成 |
| ceil | ceil(x) | 完成 |
| clamp [示例] | clamp(v, min, max) | 完成 |
| cos | cos(deg) | 完成 |
| exp | exp(x) | 完成 |
| floor | floor(x) | 完成 |
| isinf | isinf(x) | 完成 |
| isnan | isnan(x) | 完成 |
| ln | ln(x) | 完成 |
| log10 | log10(x) | 完成 |
| max [示例] | max(a, b, ...) | 完成 |
| min | min(a, b, ...) | 完成 |
| pow | pow(x, y) | 完成 |
| rint | rint(x) | 完成 |
| sin [示例] | sin(deg) | 完成 |
| sqrt [示例] | sqrt(x) | 完成 |
| sum | sum(array) | 完成 |
| tan | tan(deg) | 完成 |
| sign | sign(x) | 完成 |
| frac | frac(x) | 完成 |
| trunc | trunc(x) | 完成 |
| hypot | hypot(a, b) | 完成 |
| normalize | normalize(x, y, z) | 完成 |
| dot | dot(x1,y1,z1, x2,y2,z2) | 完成 |
| cross | cross(x1,y1,z1, x2,y2,z2) | 完成 |
字符串函数 String
| 函数 | 签名 | 状态 |
| len [示例] | len(str) | 完成 |
| count | count(str, match) | 完成 |
| find | find(str, match, n) | 完成 |
| splitString | splitString(str, delim) | 完成 |
| substring | substring(str, start, end) | 完成 |
| strreplace | strreplace(str, old, new) | 完成 |
| replace | replace(str, pattern, replacement) | 完成 |
| toupper [示例] | toupper(str) | 完成 |
| tolower | tolower(str) | 完成 |
| findLast | findLast(str, pattern) | 完成 |
| getPrefix | getPrefix(str, sep) | 完成 |
| getSuffix | getSuffix(str, sep) | 完成 |
| getRange | getRange(str, start, end) | 完成 |
| trim | trim(str) | 完成 |
| startsWith | startsWith(str, prefix) | 完成 |
| endsWith | endsWith(str, suffix) | 完成 |
| includes | includes(str, substr) | 完成 |
| format | format(fmt, ...args) | 完成 |
数组函数 Array
| 函数 | 签名 | 状态 |
| size | size(array) | 完成 |
| nRows | nRows(array) | 完成 |
| nColumns | nColumns(array) | 完成 |
| transpose | transpose(array) | 完成 |
| findFirst | findFirst(array, value, eps) | 完成 |
| findAll | findAll(array, value, eps) | 完成 |
| setElems | setElems(array, indices, values) | 完成 |
| sortIndices [示例] | sortIndices(array) | 完成 |
| sortRowIndices | sortRowIndices(array, col) | 完成 |
| reverse | reverse(array) | 完成 |
| append | append(array, item) | 完成 |
| pop | pop(array) | 完成 |
| slice | slice(array, start, end) | 完成 |
| mean | mean(array) | 完成 |
| median | median(array) | 完成 |
| std | std(array) | 完成 |
颜色函数 Color
| 函数 | 签名 | 状态 |
| colorHSVToHex | colorHSVToHex(h, s, v) | 完成 |
| colorRGBToHex [示例] | colorRGBToHex(r, g, b) | 完成 |
| colorHexToR | colorHexToR(hex) | 完成 |
| colorHexToG | colorHexToG(hex) | 完成 |
| colorHexToB | colorHexToB(hex) | 完成 |
| colorRamp [示例] | colorRamp(t, c1, c2, ...) | 完成 |
| colorHSVOToHex | colorHSVOToHex(h, s, v, o) | 完成 |
| colorRGBOToHex | colorRGBOToHex(r, g, b, o) | 完成 |
| colorHexToH | colorHexToH(hex) | 完成 |
| colorHexToS | colorHexToS(hex) | 完成 |
| colorHexToV | colorHexToV(hex) | 完成 |
概率与随机 Probability
| 函数 | 签名 | 状态 |
| p [示例] | p(probability) | 完成 |
| rand [示例] | rand() / rand(max) / rand(min, max) | 完成 |
| rand.int | rand.int(min, max) | 完成 |
| rand.gaussian | rand.gaussian(mean, stddev) | 完成 |
文件函数 File
| 函数 | 签名 | 状态 |
| fileBasename [示例] | fileBasename(path) | 完成 |
| fileDirectory | fileDirectory(path) | 完成 |
| fileExtension [示例] | fileExtension(path) | 完成 |
| fileName | fileName(path) | 完成 |
| fileRandom | fileRandom(path) | 完成 |
| fileExists | fileExists(path) | 完成 |
| fileSearch | fileSearch(pattern) | 完成 |
| filesSearch | filesSearch(pattern) | 完成 |
| readFloatTable | readFloatTable(content) | 完成 |
| readStringTable | readStringTable(content) | 完成 |
| readTextFile | readTextFile(content) | 完成 |
资产函数 Asset
| 函数 | 签名 | 状态 |
| assetInfo | assetInfo(path, attr) | 部分完成 |
| assetMetadata | assetMetadata(path, key) | 部分完成 |
| assetNamingInfo | assetNamingInfo(path, key) | 部分完成 |
| assetNamingInfos | assetNamingInfos(paths, key) | 部分完成 |
| assetsSortRatio | assetsSortRatio(paths, ...) | 部分完成 |
| assetsSortSize | assetsSortSize(paths, ...) | 部分完成 |
| imageInfo | imageInfo(path, attr) | 部分完成 |
| imagesSortRatio | imagesSortRatio(paths, ...) | 部分完成 |
| assetApproxRatio | assetApproxRatio(paths, ...) | 部分完成 |
| assetApproxSize | assetApproxSize(paths, ...) | 部分完成 |
| assetBestRatio | assetBestRatio(paths, ...) | 部分完成 |
| assetBestSize | assetBestSize(paths, ...) | 部分完成 |
| assetFitSize | assetFitSize(paths, ...) | 部分完成 |
| imageApproxRatio | imageApproxRatio(paths, ...) | 部分完成 |
| imageBestRatio | imageBestRatio(paths, ...) | 部分完成 |
上下文函数 Context
| 函数 | 签名 | 状态 |
| inside | inside() / inside(target, label) | 部分完成 |
| overlaps | overlaps() / overlaps(target, label) | 未完成 |
| touches | touches() / touches(target, label) | 未完成 |
| minimumDistance | minimumDistance(target, label) | 未完成 |
| contextCompare | contextCompare(target, label, type) | 未完成 |
| contextCount | contextCount(target, label) | 未完成 |
边属性函数 Edge Attributes
| 函数 | 签名 | 状态 |
| edgeAttr.getBool | edgeAttr.getBool(name) | 未完成 |
| edgeAttr.getFloat | edgeAttr.getFloat(name) | 未完成 |
| edgeAttr.getString | edgeAttr.getString(name) | 未完成 |
CGA 实用工具函数 CGA Utility Functions
调试、转换和其他辅助功能。
| 函数/操作 | 签名 | 状态 |
| print | print(value) | 完成 |
| convert | convert(...) | 完成 |
| getTreeKey | getTreeKey() | 完成 |