1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Проблема создания плагина

Тема в разделе "MAXScript", создана пользователем Gerebecc, 21 окт 2009.

Модераторы: Savin Denis
  1. Gerebecc

    Gerebecc Пользователь сайта

    С нами с:
    20.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    2
    Существует такой скрипт


    plugin simpleObject AntiStar

    name:"AntiStar"

    category:"HowTo"

    classID:#(0xe855567c, 0xbcd73b8b)

    (

    parameters main rollout:params

    (

    NACH_X type:#integer ui:NACH_X default:0

    NACH_Y type:#float ui:NACH_Y default:0

    Konec_X type:#float ui:Konec_X default:0

    Konec_Y type:#float ui:Konec_Y default:0

    )
    parameters main rollout:params1

    (

    Vosota type:#float ui:Vosota default:0

    )

    rollout params "AntiStar"

    (

    spinner NACH_X "X Начала" range:[-10000,10000,10]

    spinner NACH_Y "Y Начала" range:[-10000,10000,10]

    spinner Konec_X "X Конца" range:[-10000,10000,10]

    spinner Konec_Y "Y Конца" range:[-10000,10000,10]

    )


    rollout params1 "ssssssr"

    (

    spinner Vosota "Высота" range:[0,100,10]
    )


    on buildMesh do

    (

    fn poll perv vtor =
    (
    local array1= #()

    v1 = perv
    v2 = [vtor.x,perv.y,perv.z]
    v3 = vtor
    v4 = [perv.x,vtor.y,vtor.z]
    v5 = [150,50,0]

    mm = mesh numverts:5 numfaces:3

    append array1 v1
    append array1 v2
    append array1 v3
    append array1 v4
    append array1 v5

    for i = 1 to 5 do
    meshop.setvert mm i array1

    meshop.createPolygon mm #(1,2,3,4,5)

    )

    v6 = [Konec_X ,Konec_Y ,Vosota]
    v7 = [0,0,0]

    poll v6 v7

    )--end buildMesh

    tool create

    (

    on mousePoint click do

    (

    case click of

    (

    1: coordsys grid (nodeTM.translation = gridPoint)

    )

    )

    on mouseMove click do

    (

    case click of

    (

    2: (
    Konec_X = gridDist.x
    Konec_Y = gridDist.y
    )
    3: (
    Vosota = gridDist.x
    )

    4: (#stop)

    )

    )

    )--end create

    )--end plugin

    Не работает пишет "-- Type error: Call needs function or class, got: TriMesh", но если скомпелировать отдельно функцию poll() то всё работает правильно. Кто нибудь подскажите с чем это связано и как решить данную проблему.
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Событие BuildMesh должно возвращать локальную переменную mesh в которой и нужно определить геометрию. Смотри как делается в оригинальном примере.
     
  3. Gerebecc

    Gerebecc Пользователь сайта

    С нами с:
    20.12.2007
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    2
    Всё понятно но проблема в том, что необходимо создать не TriMesh c 3 точками полигон, а как минимум 4 или 5 точек. Так чтобы при выделении в EditMesh выделялось сразу несколько фейсов. То есть чтобы структура была Meshop, как это сделать??????
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Базовый класс у них одинаковый Trimesh. Методы Meshop с ним работают.
    просто создай setmesh mesh с нужным массивом точек и можешь точно также с ним работать.
     
Модераторы: Savin Denis

Поделиться этой страницей