Автокад не работает смещение
Даже не знаю, может надо было сразу в в программирование, но тем не менее - может не так всё мрачно окажется.
Суть проблемы такая. В блоке присутствуют многострочные атрибуты. И они время от времени произвольно смещаюся. Причем, как показало изучение атрибутов через объектную модель, смещение происходит именно в самом описании блока (т.е. в семействе блоков), а не во вхождении. Но в том то и дело, что сам блок не редактировался!
Прикладываю файлы (формат 2007): в одном блок - как он должен быть, во втором произошло смещение (ещё раз подчеркну - редактирование блока ни коим образом не применялось).
Вот лисп, которым я смотрел интересующие меня свойства многострочных атрибутов в данном блоке:
Лисп показал, что у атрибута "ПРОЕКНАЯ_ФИРМА" изменились свойства InsertionPoint и TextAlignmentPoint. Вот так вот сами по себе взяли и изменились.
Вопрос как всегда: кто виноват и что делать?
ЗЫ Автокад 2008 - SP1 русский
Вот это очень странно.
Описываемый Вами глюк, в моем английском Acade 2008 вылечился установкой SP1.
И ещё немного мыслей вслух:
1. Смещение во вхождении блока происходило, когда созданный мной рисунок пересохранияли в AutoCAD MEP. Может такое происходило не всегда, но определённая зависимость прослеживается.
2. Смещение в описании блока происходит при сохранении моего рисунка на другой машине с такой же конфигурацией, как у меня - Автокад 2008 (SP1 русский). Опять же - это может происходить не всегда (скажу так, при распечатке подшивки, состоящей из 86 листов, 18 листов распечатались со смещёнными атрибутами). Или же наоборот (хотя не так уверен), когда я сохранию чужой рисунок: например в подшивке делаю "сохранить все листы".
ЗЫ Если нужна какая либо дополнительная информация, то с удовольствием её предоставлю. Спрашивайте.
Добавлено:
Кстати, Автокад конкретно вот такой:
Долгое время следил за данной ситуацией. Статистика показала следующее.
Дано: 5 компов, на которых производилась работа с файлами, содержащими данный блок. На всех 5-ти машинах одинаковый Автокад 2008 SP1 русский.
На 3-х ЭВМ (включая мою) всё происходит нормально - ничего никуда не смещается.
На 2-х компьютерах происходит смещение многострочного атрибута "ПРОЕКНАЯ_ФИРМА" в описании блока. Этот атрибут смещается сразу после открытия файла. Закономерность смещения не выявлена, т.е. смещается куда ни попадя. Остальные многострочные атрибуты ведут себя нормально.
Этот атрибут "ПРОЕКНАЯ_ФИРМА" содержит значение по-умолчанию %%, т.е. поле, ссылающееся на дополнительное свойство подшивки "Проектная фирма". Может в этом какая-то загвоздка?
Я подшивками не пользуюсь, а проблема возникает периодически. Как вариант просто создаю блок заново и все
Djonikbishkek, у меня, если можно 2 вопроса:
1. У тебя установлен SP на Автокад?
2. Вот создал ты новый блок с нуля. И как он ведёт себя в дальнейшем? Смещения со временем не происходит?
PS Кстати, я пока сделал такое шаманство:
У всех пользователей при открытии файлов автоматически запускается такой лисп:
Ничего нового по этому вопросу пока не придумал.
В будущем, если проблема останется, я уже решил, что вместо блока с атрибутами будут просто линии с многострочными текстами. НО пока этого делать не хочется, ведь 3 из 5-ти компов работают корректно. Так что я ещё надеюсь, что проблему можно решить.
PPS Конечно напрашивается переустановка Автокада на 2-х машинах. Но пока этого делать не хочется, да и времени нет, работы много. Если всё же Автокад будет переустановлен, то о результатах обязательно напишу.
Djonikbishkek, у меня, если можно 2 вопроса:
1. У тебя установлен SP на Автокад?
2. Вот создал ты новый блок с нуля. И как он ведёт себя в дальнейшем? Смещения со временем не происходит?
Сервис пак стоит. А насчет создания блоков никак не могу понять закономерность. просто 50/50 одни блоки ведут себя нормально, а у других атрибуты съезжают. По этому перед распечаткой в обязательном порядке синхронизирую атрибуты
Ничего подобного, поискав в похожих темах, решил, что дело в формате. Перевел - та же самая котовасия: открываю редактор блоков - атрибут опять не на месте.
Автокад 2015, не правильно работает команда "сместить" , выбирается деталь для того чтобы сместить, но не возможно задать расстояние на которую должна быть смещена деталь (Рядом с курсором нет строки для написания расстояния). Ввод расстояния в командную строку также не помогает. В чём может быть проблема?
Ознакомьтесь со справочником команд и справочником "Системные переменные".
Шаг смещения заложен в системной переменной, а она может показываться не всегда. а когда надо.
Русские имена команд мало о чем говорят и могут меняться от версии к версии.
Есть нормальная команда
_MOVE (ПЕРЕМЕСТИТЬ или ПЕРЕНЕСТИ) с указанием начальной и конечной точки переноса. Передвигает весь объект как есть, целиком
Есть команда
_OFFSET (сместить все части на небольшое расстояние, образуя дополнительно второй объект, с контуром, параллельно-подобным исходному контуру)
Шаг смещения заложен в системной переменной, а она может показываться не всегда. а когда надо.
В русской версии можно употреблять оригинальные английские команды и опции со знаком подчеркивания.
Кажется догадалась. Команда _OFFSET может не работать для трехмерных твердотельных моделей.
Почти во всех случаях она давала бы ненужные и геометрически неисправимые самопересечения, она не имеет смысла и потому, что большое смещение задать нельзя из пересечений. а малое смещение дает деталь почти совпадающую на том же месте, то есть занятие объема двумя телами
Но должна работать команда трехмерного масштабирования. Это я говорю о трехмерных телах.
Если всё-таки _OFFSET применять, то только для плоских линий, при подготовке вспомогательных линий для простых тел вращения и выдавливания, которые соединяются потом в сложную деталь.
Возможно, должна существовать команда _3DOFFSET или что-то вроде для трехмерного смещения трехмерных поверхностей, но не тел.
В Autodesk Inventor 11 (приблизительно 2008 г) были возможности смещения, то есть параллельного дублирования кусков плоских поверхностей, поверхностей вращения, выдавливания..
Но, подчеркиваю, что твердотельное и поверхностное моделирование разные вещи.
Кроме того в Автокаде могут быть установлены дополнительные пакет вроде Express, в которых сосредоточены команды редактирования для особо сложных случаев
Создаю сплайн с неким радиусом. Потом немного перемещаю одну из точек в пространстве. Пытаюссь создать сдвиг, но получаю ошибку "Сдвиг выбранного объекта невозможен". Пример того что пытаюсь сделать в приложении.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Впринципе задачу я решил другим способом, но почему проблема возникла? =\
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Ну просто при перемещении в каких то плоскостях все создается без проблем, а в каких то нет. Не нашел зависимость.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Пользуюсь только английскими версиями Autocad
CIRCLE (круг, окружность), REGION (как переводится, не знаю)
В прикрепленном файле (пост 1) приличествует сплайн (путь выдавливания) и REGION (объект выдавливания)
Vombat командой выдавливание я сделал, но имелось ввиду почему этого не хочет делать комманда сдвиг..
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Да, в определенных плоскостях работает, а в каких то нет. Мне просто надо было соеденить две конкретных точки. см. приложение. Там черные - кабели, вот с ними и возникла возня.
Заодно вопрос по файлу, почему так много весит, или это нормально?
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Zets, нормально, но можно слегка уменьшить.
1. отключить запись истории создания тел переменную solidhist обнулить
2. стереть историю создания всех тел командой _brep
Хмурый: на сто килобайт помогло, спс!
Offtop: Вопрос оффтопом: как определить точку пересечения прямой и плоскости? Этот вопрос вытек из необходимости найти общую точку для линий находящихся в разных плоскостях.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
используй геометрический калькулятор. функция ILP (p1,p2,p3,p4,p5)
p1, p2 - точки на линии
p3, p4, p5 - точки, принадлежащие плоскости.
макрос
Offtop: Спасибо Хмурый! Хоть способ не самый простой, но задачу решить можно. А как быть с линиями из моего примера, ill для них не работает? =/
Сейчас случайно столкнулся с проблемой, ни сдвиг ни выдавливание не может по траектории выдавить фигуру. проблема в приложении.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
линии в твоём примере не имеют точек пересечения
траектория в твоём примере имеет слишком крутой изгиб. всему есть предел.
вот я построил подобные линии на расстоянии 1/2 ширины прямоугольника, видишь что получилось? тело будет самопересекаться.
файл формата 2010
Offtop: Ок, понял, спс. Я вот линии сделал пересекающими, но команда ill все равно не работает. Мне нужно найти точку на одной или другой линии в которой они бы пересекались если бы лежали в одной плоскости. Наверно я не правильно команду понимаю.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Zets, ну где линии в третьем примере пересекаются? они скрещиваются, но не пересекаются.
если тебе нужно найти точку кажущегося пересечения на определённом виде, то используй команду _extend с настройкой "по виду"
Создаю сплайн с неким радиусом. Потом немного перемещаю одну из точек в пространстве. Пытаюссь создать сдвиг, но получаю ошибку "Сдвиг выбранного объекта невозможен". Пример того что пытаюсь сделать в приложении.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Впринципе задачу я решил другим способом, но почему проблема возникла? =\
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Ну просто при перемещении в каких то плоскостях все создается без проблем, а в каких то нет. Не нашел зависимость.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Пользуюсь только английскими версиями Autocad
CIRCLE (круг, окружность), REGION (как переводится, не знаю)
В прикрепленном файле (пост 1) приличествует сплайн (путь выдавливания) и REGION (объект выдавливания)
Vombat командой выдавливание я сделал, но имелось ввиду почему этого не хочет делать комманда сдвиг..
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Да, в определенных плоскостях работает, а в каких то нет. Мне просто надо было соеденить две конкретных точки. см. приложение. Там черные - кабели, вот с ними и возникла возня.
Заодно вопрос по файлу, почему так много весит, или это нормально?
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Zets, нормально, но можно слегка уменьшить.
1. отключить запись истории создания тел переменную solidhist обнулить
2. стереть историю создания всех тел командой _brep
Хмурый: на сто килобайт помогло, спс!
Offtop: Вопрос оффтопом: как определить точку пересечения прямой и плоскости? Этот вопрос вытек из необходимости найти общую точку для линий находящихся в разных плоскостях.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
используй геометрический калькулятор. функция ILP (p1,p2,p3,p4,p5)
p1, p2 - точки на линии
p3, p4, p5 - точки, принадлежащие плоскости.
макрос
Offtop: Спасибо Хмурый! Хоть способ не самый простой, но задачу решить можно. А как быть с линиями из моего примера, ill для них не работает? =/
Сейчас случайно столкнулся с проблемой, ни сдвиг ни выдавливание не может по траектории выдавить фигуру. проблема в приложении.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
линии в твоём примере не имеют точек пересечения
траектория в твоём примере имеет слишком крутой изгиб. всему есть предел.
вот я построил подобные линии на расстоянии 1/2 ширины прямоугольника, видишь что получилось? тело будет самопересекаться.
файл формата 2010
Offtop: Ок, понял, спс. Я вот линии сделал пересекающими, но команда ill все равно не работает. Мне нужно найти точку на одной или другой линии в которой они бы пересекались если бы лежали в одной плоскости. Наверно я не правильно команду понимаю.
__________________
_____
If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?)
Zets, ну где линии в третьем примере пересекаются? они скрещиваются, но не пересекаются.
если тебе нужно найти точку кажущегося пересечения на определённом виде, то используй команду _extend с настройкой "по виду"
Команда AutoCAD «СДВИГ» позволяет создавать трехмерные поверхности или тела за счет сдвига профиля вдоль траектории. Удлинение формы профиля вдоль указанной траектории помогает создавать 3d-модели AutoCAD различной формы и сложности.
В AutoCAD СДВИГ выполняется следующим образом:
- 2D-профиль перемещается по траектории и выравнивается перпендикулярно этой кривой.
- режим выравнивания можно задать вручную.
- если в качестве профиля выступает разомкнутый объект, то получится поверхность, а если замкнутый – то твердотельная модель.
При необходимости можно выбрать режим, при котором даже замкнутый профиль будет образовывать объект-поверхность (читать подробнее про типы объектов AutoCAD).
Чтобы сразу стало ясно, о чем идет речь, посмотрим на рис.
3д моделирование Автокад с помощью команды «СДВИГ»
Алгоритм выполнения команды СДВИГ:
1. Используя 2D примитивы, начертите траекторию и профиль сдвига (см. пример).
2. На вкладке «Главная» на панели «Моделирование» выбираем команду СДВИГ.
3. Поэтапно выполняем запросы командной строки, выбирая при необходимости нужный параметр команды.
Результат может выглядеть следующим образом:
Теперь Вы знаете, как в Автокаде сделать 3д на основе плоских примитивов с помощью команд ВЫДАВИТЬ, ВРАЩАТЬ, ЛОФТ и СДВИГ. Мой самоучитель AutoCAD 3d и 2d постоянно пополняется новым полезным материалом. Также вы можете скачать прямо сейчас бесплатный базовый курс, который содержит видеоуроки 3d AutoCAD.
Читайте также: