Получение координат точки в макросе

 
  • Стандартный инструмент Measure вполне универсальный. особенно хорошо что можно привязываться к различному типу объектов.

    Я хочу получать точку с привязками (как у Mesure) внутри своего макроса. чтото вроде "введите точку": пользователь кликает в 3DView а дальше продолжает выполняться макрос зная эту точку. Там что то с объектом EDGCNTRL и EDGPACKET но наскоком понять не удалось.

    Приведите пожалуйста кусочек кода с коментариями - что нужно инициализировать и откуда потом выдирать координаты.

    и есть ли руководство по подобным стандартным объектам?
  • Пример описания кнопочек в основной форме
    button .app1  at 40 1 'Continue  from: >  ' callback '!this.app1()'
    button .mtbMeasure 'Measure' tooltip 'Measure' pixmap width 16 height 16 callback '!this.HEIG()'
    Добавление иконки
    !this.mtbMeasure.addPixmap(!!pml.getPathName('measure' & 16 & '.png'))
    Описание метода измерения
    define method .HEIG()
    !!comGadgetMeasure(|!!comPropCntrl.data[10].setGadget(|, !this.dstlength,|| ,|| )
    endmethod
    Результат измерения заносится в !this.dstlength
  • Есть два варианта получения точки - простой через id@ и через одно место (edgpacket).
    Простой примечателен тем, что вызывается одной строчкой и описан в Design Reference Manual Part1. Второй нигде не описан нужно примеры из програм смотреть, будет время - найду. Зато можно указывать любые точки, а не только origin  и пи-точки как в простом случае.
  • ykr,
    ïèøó
    !!comGadgetMeasure(|!!comPropCntrl.data[10].setGadget(|, !!gphViews.views[1],|| ,|| )÷òî-òî ñðàáàòûâàåò - òî÷êà çàïðàøèâàåòñÿ êàê â èçìåðÿëêå æìó â 3DView ïèøåòñÿ start âñ¸ êàê íàäî, íî íå ïîéìó ãäå ðåçóëüòàò õðàíèòñÿ. è åù¸ ïðîäîëæàåò çàïðàøèâàòüñÿ òî÷êà êàê áû âòîðàÿ. òîåñòü íå âûõîäèò èç ðåæèìà çàïðîñà òî÷êè è åñëè íà ÷òî íèòü åù¸ òêíóòü íà÷èíàåò ðóãàòüñÿ.
    !this.dstlength â appdesmain íåò òàêîãî ÷ëåíà.

    èñòèíà ãäå òî ðÿäîì :)
  • Сей метод дает расстояние - нужно показать 2 точки. (Как в Measure!!). Результат будет в выделенном
    !!comGadgetMeasure(|!!comPropCntrl.data[10].setGadget(|, !this.dstlength,|| ,|| )
  • !this.dstlength Это у меня было в программе! Напиши сюда что-нибудь и получишь там расстояние.
    Основную задачу посмотрю завтра на работе.