|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.04.2013, 18:01 | #1 | |
Опять о координате Z. Программа перебирающая все примитивы с Z<>0.
проектант
Регистрация: 12.12.2012
Сообщений: 126
|
||
Просмотров: 16295
|
|
||||
похоже, либо вы не до конца понимаете задачу, либо не очень верно ее формулируете...
Для линий: Если линия находится на некоторой высоте, то обнуление высоты автоматом опустит ее на плоскость XY Линия не может быть отрисована в системе координат, отличной от мировой, те. может, но при обнулении высоты в панели свойств, концы линии опускаются в мировой системе. Для полилиний, например lwpolyline: Линия нарисована на плоскости, т.е пара сегментов не лежащих на одной линии уже определяют эту плоскость. Плоскость отрисовки полилинии задается вектором нормали (вектор, перпендикулярный плоскости полилинии) и этот вектор может не совпадать с плоскостью XY мировой системы координат. Если полилиния лежит на плоскости параллельной XY, то смена высоты опустит ее так, как вам необходимо. Если же полилиния лежит в не параллельной XY плоскости, то опускаться она будет по вектору нормали, т.е на виде сверху, полилиния уедет в сторону. Программы сплющивания полилиний пересчитывают все сегменты на предмет опускания их вдоль вектора Z мировой системы координат. Другими словами получается не перемещение полилинии а именно проекция на плоскость. Если в полилинии присутствуют дуговые сегменты, то на не параллельной проекции должны появиться эллипсы. Но описание полилинии не поддерживает эллипсы как сегменты, т.е получается разбитие полилиний на линии и эллипсы. Если вектор проекции не перпендикулярен, даже в 16 знаке после запятой, то дуги должны быть преобразованы в эллипсы! ps. но это только в теории, на практике все программы делались под определенные задачи и совсем не обязательно, что они предусматривают ваш вариант. Будьте более снисходительны к программистам и программам. Надеюсь, мое пояснение поможет вам найти наиболее оптимальный для вас вариант...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
Цитата:
Для удаления смещения по Z я делаю следующее, например для линий (с полилиниями я может и погорячился): 1. при помощи "Quick Select" выбираю линии, где delta Z не равна 0, затем в выбранных линиях в свойствах меняю Start Z, End Z на 0. 2. аналогично п. 1 только для start Z > 0 3. аналогично п. 1 только для start Z < 0 Вот и хотелось бы автоматизировать этот процесс, для начала только для линий, окружностей (центр и м.б нормаль), а потом перенести и на полилинии. Несмотря, та то что м.б. и затратно по времени, зато надежно и просто. Вот такая у меня идея. может кто знает как реализовать? |
|||
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,604
|
|
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
Елпанов Евгений
Цитата:
|
|||
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,604
|
Sysvju, скрипт написан (и работает) для нанокада.
Теоретически, без особых танцев, должен запуститься и под автокадом, но у меня он не установлен и проверить возможности нет. Вам нужен кто-то с автокадом, кто разбирается в VBA, кто мог бы проверить и при необходимости, "допилить". |
|||
|
||||
Цитата:
Код:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
Мне тоже было бы интересно услышать стороннее мнение, но к сожалению у нас, строго запрещено передавать информацию третьим лицам.
Посути дела на чертеже есть объекты экспортированные из advance steel в механикал может быть в этом проблема. Но не в этом суть, главное, что нужен лисп, работающий по примитивному алгоритму см. #3, может есть умельцы? Пока на обед ходил, уже лисп написали. СПАСИБО, сейчас проверю. |
|||
|
||||
Цитата:
С точки зрения результата, никакой разницы!
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
При программировании Вы правы, но если выделять ручками при помощи "Quick Select" то нужен аттрибут одинаковый для всех линий, который я не вижу.
Программа работает супер, то что и хотелось (подвисает всего на 5-7 секунд, что по сравнению с другими методами ооочень быстро). Поэтому Вам большое человеческое СПАСИБО! Не сочтите за наглость, можете ли дополнить программу, что бы она нереносила еще и координату блоков (Position Z) и окружностей (Center Z) в ноль. И возможно ли сделать так, что бы и линии, находящиеся в блоках тоже перемещались по Z в ноль. Получается так, что нужно войти в редактор блока и в нем запустить программу. Последний раз редактировалось Sysvju, 22.04.2013 в 16:42. |
|||
|
||||
Этот атрибут называется тип объектов...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
|
|||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
Цитата:
Ну и естественно линии в блоках остаются со смещением по Z! Тут наверное как раз и нужен ЛИСП? Последний раз редактировалось Sysvju, 22.04.2013 в 17:03. Причина: дополнение |
|||
|
||||
да, здесь лисп поможет, но стоит сразу напомнить - внутри блоков линии опустятся на нулевую высоту внутри блока, а как эта плоскость расположена относительно мировой системы координат, это уже дело проектировщика...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
проектант Регистрация: 12.12.2012
Сообщений: 126
|
В чертежах, с которыми я работаю, блоки, а соответственно и линии в них параллельны XY. Если какая-либо второстепенная линия и будет неправильно спроецированна, на мою работу это никак не повлияет. К тому же удобство ЛИСПа - запустил комманду и пошел попил чаю, пришел, а уже все сделано как надо. Заранее спасибо!
|
|||
|
||||
Код:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ Последний раз редактировалось Елпанов Евгений, 22.04.2013 в 18:06. Причина: добавил комментарии |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Фундамент с динамическими нагрузками в Scad | Tlelaxu | SCAD | 9 | 31.08.2007 10:44 |