|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Инструменты поддержки CAD Cтандарта предприятия
Екатеринбург
Регистрация: 24.05.2009
Сообщений: 86
|
||
Просмотров: 9117
|
|
||||
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460
|
Offtop: Недавно, что-то слово-в-слово уже читал. Галлюцинации или назойливая муха?
__________________
Я дарю не рыбу, а удочку и море. www.zodchii.ws, Библиотеки электронных книг Download |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Offtop: Было в "Корпоративных стандартах".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Мало ли, что у вас прописано. У нас, например, точки фактически не используются (проектирование объектов здравохранения), разве только при использовании команд "Поделить" да "Разметить". И ни в какой СТП нет нужды вводить подобное требование. Поэтому и надо эту тему попросту переименовать.
А если попробовать функцию (entnext) применительно к блокам? Последний раз редактировалось Profan, 05.10.2009 в 14:54. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
А нельзя-ли просто поменять стиль точки на такой, которой не видно? (вторая в окне стилей). И вообще странно, что у вас массовое применение точек, а пользователь не умеет привести точку к невидимой. Вероятно вашему Cad manager попался чертеж с огромными крестами.
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Плохо ваши авторы CAD Стандарта Предприятия знают AutoCAD. Отображение точки в AutoCAD'е определяется переменной PDMODE, а размер отображения - переменной PDSIZE. Обе эти переменные сохраняются в чертеже и поэтому совершенно неважно, как отображается точка в чертежах ДРУГИХ организаций.
|
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
>>>VVA
Спасибо! Поклон до земли! Нашел в чем причина надо заменить *kpblc-activedoc* на (vla-get-activedocument (vlax-get-acad-object)) Программа работает! Ура! Макрос на кнопку: Удалить все точки ^C^C^P(if (null mip:del-ObjectbyName)(load "del-ObjectbyName"));^P(mip:del-ObjectbyName "AcDbPoint"); Последний раз редактировалось kheylan, 07.10.2009 в 06:42. |
|||
![]() |
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Ну Profan же и говорит, что они будут отображаться в зависимости от настроенного в том чертеже стиля точек. Если в исходном были крестики, а в приемном настроено на квадратики, значит будут квадратики.
__________________
Делай хорошо, плохо само получится. |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Продолжим тему инструменты CAD Стандарта, который на основе AutoCAD 2009. Что делать с чужим чертежом, который необходим тебе для работы?!
После прихода чертежа со стороны, он сначала проходит обработку в два этапа Первая кнопка (1), назовем ее - Выбрать все в буфер обмена, ее функции - Очистка чертежа от мусора, копирование его в буфер обмена, открытие нового чертежа для вставки его в среду CAD Стандарта ^C^C^P(if(not(member "explodeproxy2007.arx" (arx)))(arxload "explodeproxy2007.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_Y;_AUDIT;_Y;_LAYERP;_LAYERP;_-Purge;_All;;_N;_.convert;;; _ai_selall;_Copyclip;_Qnew; Часть команд взято отсюда http://forum.dwg.ru/showthread.php?t=14455 , большое спасибо автору. Т.е. сохраняем оригинал и получаем содержимое модели в буфере обмена Вторая кнопка (2), назовем ее - Вставить из буфера обмена, ее функции - Вставить все из буфер обмена в новый чертеж и показать все в пределах чертежа ^C^C_pasteorig;'_.zoom _e Т.е. получаем содержимое модели в нашем шаблоне Третий этап делаем вручную, с помощью Центра Управления перетаскиваем листы Вопрос: Реально все это объединить в одну команду или как это происходит у Вас!? |
|||
![]() |
|
||||
Цитата:
Автор отправляет чертеж с точками, настроенными на "невидимость" PDMODE=1. Тамошние проектировщики копируют часть чертежа себе в файл, с настройками PDMODE=100. Получаются козюльки и автору темы объявляют выговор. Вот поэтому точки и удаляют
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
kheylan, а зачем так геморройно? Можно (примерно) так:
Код:
P.S. Тему все же переименуй
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 06.10.2009 в 11:08. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для wetr.
С какой стати они будут объявлять выговор? Точка ("Point") - стандартный объект AutoCAD'а. Этак можно по куче позиций надавать выговоров тем, у кого берешь чертеж и который не соответствует твоим понятиям о "правильности" чертежа. Точка может использоваться, например, как уникальный объект для привязки. Но ты можешь про себя изрыгать сколько угодно проклятий, но не имеешь права мне объявлять выговор. Не нравится точка или не умеешь поменять ее отображение - воспользуйся приведенной здесь программой. А вот ко мне пришли чертежи, сделанные в CorelDRAW. Я пойду и объявлю авторам анафему. |
|||
![]() |
|
||||
Цитата:
Зачем вы так? Вы ведь даже не знаете этих "авторов CAD Стандарта Предприятия". Не знаете ситуации, в которой они находятся и что именно их побудило заняться удалением точек. Пример привел лишь для того, чтоб вы не были так категоричны. Повторюсь: ситуации бывают разные.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
wetr, ты пойми, автор темы делает СТП для себя, для своей организации. Но он не может насаждать свои правила другим организациям. У себя он может удалить точки, но ведь в другой организации точки все равно останутся. Он не может удалить точки "как класс". И не надо думать за чужую контору, они сами сообразят, надо им точки удалять или не надо.
А по поводу СТП вообще - скажу так: сама идея подобных СТП ущербна, поскольку не имеет под собой законодательной базы. А сами точки ("Point") могут использоваться, например, при создании высотных отметок, по которым потом строятся горизонтали. Я раньше применял точки в 3D-построениях для удобной привязки "УЗЕЛ" ("NODE"). |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Кулик Алексей aka kpblc , насчет кода осмелюсь так сказать (if (<= cadver 2007) вместо (if (<= cadver 2010) и со строки(repeat 3 (vla-purgeall adoc)) программа работает некорректно, т.е. не выполняет нормально AUDIT и PURGE А так класс! Да хорошо бы пристегнуть переменную DEMANDLOAD! А насчет темы, точки - это частности! Главное инструменты, помогающие жить, неважно как их назовешь. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Код в #18 подправил. Немного.
Насчет if и прочего: код вообще-то сделан для конкретной ситуации (например, explodeproxy2007.arx находится в путях поддержки AutoCAD), универсальный будет намного длиннее. В 2010 версии команда removeallproxy имеет немного другой формат, поэтому я там и сделал подобную проверку. Вот еще вариант (уже более гибкий, т.к. будет работать во всех версиях, где возможна подгрузка explodeproxy.arx); сам файл explode*.arx может находиться в любом уровне вложенности путей поддержки: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Кулик Алексей aka kpblc
Насчет вот этого не понял, поправите, если не так Цитата:
так что будет уместней (<= cadver 2007) А так за основу взял код из поста №24 и макрос на первую кнопку из поста №16 будет такой ^C^C^P(if(not clear-dwg)(load"clear-dwg"));^P(clear-dwg);_ai_selall;_copyclip;_qnew; переменную DEMANDLOAD наверно скриптом прикрутить к ярлыку запуска AutoCAD? А как объединить 1 со 2 кнопкой из поста №16 + листы? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В 2008:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
В 2009 по крайней мере
Команда: removeallproxy Очистить список масштабов? [Да/Нет] <Да>: Но это первая чистка масштабов, основной инструмент - это приведение списка масштаба согласно ГОСТу, спасибо автору VVA http://forum.dwg.ru/showpost.php?p=302360&postcount=75 вот файл SetScale.LSP, где внесены эти масштабы |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
kheylan, у меня 2009 нет. Значит, в проверке надо либо устанавливать (<= cadver 2009), либо вообще отказываться от этой штукенции и пытаться выполнить удаление прокси-объектов самостоятельно (весьма неблагодарное дело на самом деле)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Кулик Алексей aka kpblc извини за назойливость. но я всегда понимал, что (if <текст-выражение> <выражение-тогда> [<выражение-иначе>]) (if (<= cadver 2007) (command "removeallproxy") (command "removeallproxy" "_y") ) ;_ end of if выражение будет выполняться для 2007,2006 и тд истина <выражение-тогда> а 2008, 2009, 2010, если ложь <выражение-иначе> |
|||
![]() |
|
||||
Я использовал в случах, когда надо что-то моделировать и передавать в стороннюю программу, которая требует именно точки.
Ещё у геодезистов разных специализаций (топосъемка, гоеметрия объекта) многим вспомогательным программам (или LISP'ам) надо скармливать точечные массивы. И которые отдают данные тоже в точках. В обычной работы вместо точки, как правило, просто рисуешь (п)линию нулевой длины :) P.s. Боярин, попроси автора перименовать-таки тему. Я думал, тут что-то вкусненькое, а тут какое-то уныние.
__________________
Reshaping the STEM field |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Александр Бауск, его уже 2 раза просили. Третья просьба будет уже более "жесткой": или переименовывается тема, или она закрывается через 12 часов.
kheylan, в 2008 версии запроса на восстановление списка масштабов нет. Учитывая, что в 2009 теоретически загружается такая же версия arx, что и в 2007-2008, там ожидать запроса бесполезно. Поэтому если версия AutoCAD до 2009 включительно, то выполнять explodeproxy. Если выше - с подтверждением очистки списка масштабов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Более продуктивно было-бы рассказать как, например, нажатие на кнопку Линейный размер (не штатную кнопку, а самодельную) приводит к созданию стиля, пригодного для данного масштаба, слоя, в который размер устанавливается, оба становятся текущими и следует запрос, мол, давай, размерь. Потом восстанавливаются текущими то, что было до взятия команды. Как это сделать на макросах описано в книге Язык макрокоманд и создание кнопок. Но с тех пор много воды утекло. Появились аннотации. Хорошо-бы сделать подобное под них, да на лиспе. Алексей как модератор может закрыть тему, но как программист мог-бы ее и развить, в этом-ли направлении, или в подобном. Да и стоит-ли закрывать? Появится, возможно, другой автор и продолжит тему. Да и топикстартер не сказал последнего слова. Пусть считает мой пост направлением для размышления. Точки это действительно мелко для такого броского названия
|
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Да, точки - это, конечно мелко, но это было нужно на тот момент. Но в шапке темы было написано: Предлагаю собрать здесь ссылки на команды, макросы и т.д., которые необходимы для поддержки стандарта.
Я думал народ поделится или посоветует что-нибудь! Примерно, вот в таком стиле: С 2008 появилась переменная SETBYLAYERMODE с помощью которой можно легко задать всем объектам свойства ПоСлою и варьировать ею задавая отдельные свойства ПоСлою. У нас свойства ПоСлою - один из постулатов стандарта. Свойства ПоСлою Нажмите кнопку. Свойства всех объектов будут ПоСлою ^C^C^P(setvar "setbylayermode" 127);_ai_selall;_setbylayer;;; Цвет ПоСлою Выберите объекты, чтобы задать Цвет ПоСлою выбранным объектам ^C^C^P(setvar "setbylayermode" 97);_select;\_setbylayer;_previous^M;;; ТипЛинии ПоСлою Выберите объекты, чтобы задать ТипЛинии ПоСлою выбранным объектам ^C^C^P(setvar "setbylayermode" 98);_select;\_setbylayer;_previous^M;;; Вес ПоСлою Выберите объекты, чтобы задать Вес ПоСлою, выбранным объектам ^C^C^P(setvar "setbylayermode" 100);_select;\_setbylayer;_previous^M;;; Последний раз редактировалось kheylan, 06.10.2009 в 21:41. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
kheylan, почти убедил. Но именно "почти". Самое главное: через месяц найти что-либо полезное в этой теме не сможет никто (если тема будет развиваться). И прежде всего саму эту тему никто не найдет.
В правилах, конечно, не прописано "один вопрос - одна тема", но это не зря рекомендуют. Одно дело - сносить объекты точек; другое - устанавливать параметры объектам; третье - создавать стили и т.п. Мешать все в одну кучу не есть гуд.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Vova, а зачем вообще создавать отдельный стиль под каждый масштаб? Dim scale overall исчерпывает эту проблему.
![]()
__________________
Reshaping the STEM field |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Привожу пример из доаннотейского периода. Пусть есть несколько ВЭ с разными масштабами. Соответствующие куски модели надо заполнять внемасштабными элементами, в том числе и размерами. У нас делается так: сначала надо нажать кнопку масштаба. Скажем, 1:50. Затем все, что рисуется с кнопок нашего меню, исходит из мышки нужной величины. В том числе размеры. В проставляемый размер программа вкладывает нужный overall, при этом образуется стиль, в имя которого входит цифра 50. Образуется также слой, в имя которого входит 50. Только что образованным стилем в только что созданном слое (без всяких шаблонов и стандартов предприятия) проставляется первый и последующие размеры данного масштаба. При нажатии масштабной кнопки, допустим, 1:100 при нажатии затем разных кнопок вставки внемасштабного блока, текста, размеров, штриховок, типов линии все повторяется, образуются, если надо, новые стили и слои.
Ты предлагаешь вместо разных стилей для размеров иметь один, но много раз Style Overrides. Слои все равно надо плодить, иначе не получится отключить ненужное, если один и тот-же кусок попадает в разномасштабные ВЭ. Так тоже можно. программа при этом не упростится, количество стилей уменьшится до одного, но пользователям стремно видеть Style overrides. Все хотят с ним бороться, не понимая сути. Много стилей не напрягают, в отличие от Style Overrides Последний раз редактировалось Vova, 07.10.2009 в 04:38. |
|||
![]() |
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
Наверно тему нужно было начинать с основных пунктов проверки чертежа - это текстовые и размерные стили.
Начнем с текстовых стилей и приведение их к единому. Здесь у нас основной инструмент, хвала автору VVA http://forum.dwg.ru/attachment.php?a...9&d=1228383759 , на базе которого создан макрос ISO Сначала выбираем ISO, потом выбираем стили которые будем приводить в соответствие со стилем ISO (Совет- выбрать все) ^C^C_AUDIT;_Yes;^C^C_-style;ISO;isocpeur;0;0.8;0;_N;_N;^C^C^P(if (null C:CTS)(load "ChangeTextStyles"));CTS;(cts:layer-status-save);(ru-textstyle-update "*");TSUP;TEXTSTYLE;ISO;^H ISO - это наш стиль, ваш стиль может быть, который вашему сердцу мил. Жизнь нас заставила использовать этот инструмент, когда к нам стали приходить такие чертежи как "Невидимый текст" |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
kheylan, тебе достаточно было снять использование BigFont в описаниях стилей, а потом выполнить регенерацию. Это так, в качестве альтернативного решения.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |