3DCoatScripting  4.8.31Ξ²
Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптинга ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ возмоТностями ΠšΠΎΡƒΡ‚Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».
πŸŒ€ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ мСшСй

Если Ρ‚Ρ‹ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅ΡˆΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мСши, Ρ‚ΠΎ здСсь Π½Π°ΡƒΡ‡ΠΈΡˆΡΡ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ….

БСйчас скриптинг позволяСт Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² созданный мСш Ρ‚Ρ€ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ:

  1. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡŽ мСша
  2. ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚
  3. ΠœΠ°ΡΡˆΡ‚Π°Π±

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для измСнСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΡƒΠΆΠ΅ созданного мСша:

void main() {
// ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ сцСну
SculptRoom room;
room.clear().toSurface();
// строим капсулу
Builder builder;
Mesh mesh = builder.capsule()
.startPosition( Vec3( 0 ) )
.endPosition( Vec3( 40, 50, 60 ) )
.startRadius( 30 )
.endRadius( 50 )
.details( 0.1 )
.build();
// мСняСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ капсулы
mesh.tools().transform()
.position( Vec3( 100, 50, 200 ) )
.run();
// Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ капсулу Π½Π° сцСнС
room += mesh;
}

Для трансформаций мСша ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс ToolsMeshTransform.

ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ, пропустим Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ создаём мСш.

// ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ капсулу
mesh.tools().transform()
.rotation( Angles( 30, 90, 200 ) )
.run();

ΠœΠ°ΡΡˆΡ‚Π°Π±

// ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ капсулу
mesh.tools().transform()
.scale( Vec3( 2, 1.5, 0.7 ) )
.run();

ВмСстС

Благодаря fluent-интСрфСйсу скриптинга, Ρ‚Ρ‹ моТСшь ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НапримСр, всС прСобразования Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

// мСняСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ капсулу
mesh.tools().transform()
.position( Vec3( 100, 50, 200 ) )
.rotation( Angles( 30, 90, 200 ) )
.scale( Vec3( 2, 1.5, 0.7 ) )
.run();
Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅
πŸŒ€ Π‘ΡƒΠ»Π΅Π²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ мСшами
πŸŒ€ ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° для 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ