|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.11.2006, 13:03 | #1 | |
Как создать "масштабную" кнопку?
архитектор
Беларусь
Регистрация: 02.04.2006
Сообщений: 348
|
||
Просмотров: 12503
|
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Не, Pilot, это не то. Здесь макрос настраивается так, чтобы команда Scale могла изменять габатиты объекта (ов) на заданную величину. Допустим, надо уменьшить много слишком крупных кружков с цифрами, обозначающих оси на плане этажа. Тогда, введя вместо Х например, 0.7 можно очень быстро отщелкать все. На каждый кружок 2 щелчка (рамка или 2 одиночных) и щелчок на базовую точку. Archeo спрашивает о другом. Как сделать так, чтобы, предварительно один раз нажав кнопку , на которой например, нарисована цифра 100, далее брать команды, которые автоматом смасштабируют высоту текста, размер внемасштабного блока, детали размера (стрелочки-зазоры) Ширину полилинии, масштаб прерывистых линий, и т. д. Когда перешел к другому фрагменту чертежа, который будет выводится в масштабе пусть 1:50, сначала надо нажать масштабную кнопку 50 а затем командные кнопки. Само собой, получается новый набор самодельных кнопок, которыми надо заменить некоторые стандартные. Ту-же кнопку Dtext , Размерный тулбар. Происходит это так. Нажатие на кнопку с определенным масштабом переводит системную переменную Useri1 в значение, пусть 100. Надо, пусть, вставить блок, который отрисован не в натуральную величину (из-за его малости) а как условное обозначение. Символ отметки-треугольник. В библиотеке, где этот блок хранится, он должен быть нарисован всего один раз для масштаба 1:1. Но если его вставляют в план этажа, который выйдет в масштабе 1:100, то этот треугольник следует увеличить в 100 раз. Создается кнопка, с которой символ отметки вставляется в чертеж командой Insert. Но когда автокад запросит масштаб по осям, макрос этой кнопки подставит ему значение Useri1. То есть макрос это минипрограмма. В книге все подробно описано. И даже больше того. Судя по получаемым мной отзывам (до сих пор, хотя книга издана 2 года назад) некоторые не дочитывают до конца, так как, увлекшись программированием, переходят от макросов к лиспу. Спросите KPBLC. Он начинал с этой книги, ни сном ни духом не ведая, что станет программировать и пишет теперь лиспы на коленках, да так быстро, что опережает всех остальных программеров. А про существование лиспа узнал из книги, где дано самое начало, введение в лисп. И он становится совсем не страшным. Там-же и про DIESEL, и про SCRIPT. Здесь http://www.cad.dp.ua/stats/content.p...nt=diesel.html отрывок из книги, можно "пощупать" насколько понятно написано.
Серега-Bilder> в принципе, наверное, можно создать и такой макрос, а лучше лисп, чтобы он тут-же уменьшал длину только-что нарисованного отрезка. Но ни один программист в здравом уме не будет это делать. Говорят, машиностроители так работают. Но все наши с Profan-ом попытки расколоть их не привели к успеху. Только пара из них активно защищают масштабирование как способ черчения. Остальные либо чертят в натуральную величину, либо помалкивают |
|||
|
||||
проектирование гидротехнических сооружений Регистрация: 20.02.2006
Москва
Сообщений: 5,022
|
Мой вопрос вызван тем, что волей-неволей приходится чертить не 1:1 а в масштабе :cry:
Боролся долго и упорно с коллегами на работе по поводу того что и как чертить (в 1:1 или в масштабе). В результате пришлось смириться, т.к. основная масса наших чертёжников - это бывшие "кульманщики" плохо знающие автокад. Поэтому у них своё понятие о черчении. Сам делаю так: 1. Если черчу с самого начала что-то - то 1:1. Далее, если 100% уверен что либо работать дальше с этим файлом буду только я, либо выполненная мною работа - конечный продукт и дальше с ним никто не будет извращаться - оформляю всё сделанное на Layout через Viewport-ы в нужных масштабах, и всё. Если мой файл кому-то передавать нужно для дальнейшей работы - приходится всё в модели масштабировать и собирать на листы, ну и соответственно образмеривать и прочий геморой. 2. Чаще получается что мне дают чьи-то корявые проработки с которыми нужно дальше что-то делать. Само-собой всё начерчено в масштабе, ну и самому приходится тоже в масштабе дальше чертить... Вот и получается, чтобы ввести размер чего-то на клавиатуре приходится посчитать на калькуляторе Поэтому и интересен какой-нибудь макрос, который автоматом введёное значение в командной строке умножает на заданный масштабный коэффициент - в результате получается на чертеже сразу нужного масштаба элемент. |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
Сделал для примера кнопку с макросом ^C^CUserr1;20. Это оно или нет? Если да, то что же написать в макросах кнопок для создания примитивов, размеров, текста??? Как их экспортировать на другой комп? Хватит ли количества этих переменных (User...) на все масштабы (узлы, планы, генпланы)? Чем будет отличаться макрос для масштаба уменьшения от макроса для масштаба увеличения?
С уважением. |
|||
|
||||
архитектор Регистрация: 02.04.2006
Беларусь
Сообщений: 348
|
Всем привет! Книгу "Язык макрокоманд и создание кнопок..." заказал по интернету. Но пока ещё она придёт, пока я разберусь... А облегчить людям жизнь хотелось бы чем раньше, тем лучше. Тем более, что впереди 5 дней без интернета. Заодно подкидываю ещё проблемку из другой своей темы: в мультитексте перестали вставляться спецсимволы из раздела "Другое". Как бы это пролечить?
PS. Второй день подряд во время написания ответа в форум Касперский отражает сетевую атаку Intrusion.Win.MSSQL.worm.Helkern (атака по протоколу UDP, IP-адреса разные). Что бы это значило? Базы - сегодняшние, расширенные. С уважением. |
|||
|
||||
проектирование гидротехнических сооружений Регистрация: 20.02.2006
Москва
Сообщений: 5,022
|
Цитата:
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Делаешь несколько кнопок, по одной на каждый масштаб типа: ^C^CUserr1;10 ^C^CUserr1;20 ^C^CUserr1;50 и т.д. Запихиваешь это все в сплывающий тулбар. Тогда кнопка для текста: Код:
Код:
Можно сделать кнопку которая будет масштабировать любой примитив после его отрисовки. Код:
С размерами... Читай книжку. Vova там намудрил, что в двух словах не объяснить. У меня такой вопрос: а почему бы для масштаба не использовать переменную Dimscale? Тогда просто решается вопрос масштабирования размеров и кнопок дополнительных лепить не надо - выбрал размерный стиль и работай. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Что-то вот с этим
Код:
Код:
Проще же Код:
Код:
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Profan
Если б это касалось одного текста, то так она наверно было бы проще. Но нам надо отмасштабировать и текст, и блоки, и размеры, и все остальные проги и макросы которые должны зависеть от масштаба. Поэтому делаются кнопки именно для масштаба. Если ты сейчас работаешь в масштабе 1:10 жмешь кнопку Код:
Код:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
К посту №5. Можно сделать не так Рисовать в 1:1, а потом в листе через настройку ВЭ и команду chspace перетащить все в лист. Новый ВЭ, новый масштаб для него, опять chspace - и все в масштабе Гиморно, но иногда приходилось и так изващаться...
К посту №10 - помимо dimscale есть еще несколько перемнных, тоже оказывающих свое влияние на отображение элементов: hpscale, hpspace, celtscale (хотя не факт, что все они используются). Кроме того, при работе в модели dimscale <>1, к примеру, а при работе на листе - в 1 обязательно и без вариантов. Бывает и такое... В общем, User* в этом отношении самое удобное (ИМХО), хотя и небезопасное. К посту №11: А почему б тогда modemacro не прикрутить? И там отображать текущее значение масштаба?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Цитата:
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Для масшатаба вставки блока (dsc) использую следующее: Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
А ты не блокируешь ВЭ? А то ведь вставили, а потом поменяли масштаб... Или как-то обходишь более хитро?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 23.11.2006
California
Сообщений: 4,750
|
>Archeo
Если речь о том чтобы не пользоваться paper space, то у нас применялись вот такие масштабные кнопки: Например на масштаб 1:12 (все в дюймах,устанавливается техт стиль Simpalt - только как пример): ^C^CMenuecho;2;Scale;all;;0,0;r;$M=$(Getvar,dimscale);12;Dimscale;12;Ltscale;12;zoom;e;-style;Simpalt;simpalt.shx;0;0.9;;;;_-style;D2K;simpalt.shx;1.125;0.9;;;;_-dimstyle;a;all;;Menuecho;0; Рамка вносится в модель, все чертится в модели,все работает от текущего значения dimscale,Черчение ведется 1:1(рамка в этот момент увеличена соответственно масштабу), в конце работы надо кликнуть на масштабную кнопку "бумажный размер" - рамка приводится в натуральную величину, все что внутри рамки - в соответствующем масштабе. Более подробно здесь: http://www.autocad.ru/cgi-bin/f1/board.cgi?t=28243uH PL (2006-07-06 19:37:42) Но, честно говоря, надо бы сначала людям обьяснить простые вещи-работу с листами |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Изменил масштаб - сам виноват. Поведение при вставке блока будет такое же как и у размеров. Если пользуешся размерами, то и здесь проблем не должно быть. ЯТД Думаешь надо программно блокировать экраны? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Если честно, пока не знаю. Не все ж пользователи знают про блокировку ВЭ. Пока в раздумьях.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||