|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Ошибка при переносе примитивов
Регистрация: 09.08.2010
Сообщений: 26
|
||
Просмотров: 6834
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Советую заняться поиском - тема поднималась не раз.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
пищевая технология Регистрация: 02.06.2009
Киев
Сообщений: 283
![]() |
http://forum.dwg.ru/showthread.php?t=58723.
Внимательно пост №2 |
|||
![]() |
|
||||
Какой Автокад, и чему равна QAFLAGS?
|
||||
![]() |
|
||||
Регистрация: 09.08.2010
Сообщений: 26
|
Спасибо что откликнулись!
Автокады 2004, 2006, 2007 QAFLAGS = 0 поставил 1 не помогает. Самое смешное в том, что я работаю в Каде более 10 лет (ну конечно не профессионально а по мере необходимости) и такого раньше не было.... это точно, и я прекрасно понимаю отличие секрамки от рамки. Начилось все в этом году когда я стал получать чертежи из проектного института. Это полный мрак: в одном файле намешано все что только можно намешать по 50 -100 чертежей + все их черновики. Объясню проблему поточней: Хочу перенести часть чертежа в сторону, чтобы не захватить секрамкой лишнего приближаю изображение и указываю первую точку, затем перемещаюсь в другое место и приближаясь указываю вторую точку. Затем удаляюсь чтобы увидеть все что я выбирал и вижу, что подсвечены как выбранные только те объекты которые в последний раз попали в область экрана, а все остальное то что по моему мнению должно быть выбрано т.к. я работал секрамкой не выбрано. А можно узнать за что отвечает переменная QAFLAGS Последний раз редактировалось mpn, 21.11.2012 в 23:05. |
|||
![]() |
|
||||
Я работаю в AutoCAD > 20 лет и "это" было всегда.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 09.08.2010
Сообщений: 26
|
Цитата:
Цитата:
Последний раз редактировалось mpn, 21.11.2012 в 23:14. |
|||
![]() |
|
||||
Я работаю в Автокаде всего 8 лет и этот эффект проявляется иногда. Причем, нечасто.
Вот прямо сейчас в 2012 выделил в файле на 3 мБ довольно большой фрагмент (141 элемент с длинными полилиниями), задвинул все содержимое файла за границы экрана, вызвал сначала копирование, потом сделал то же с переносом - все 141 элементов скопировлись или передвинулось, хотя и находились совсем за границами экрана. |
||||
![]() |
|
||||
Регистрация: 15.09.2010
Сообщений: 1,287
|
А если в фрагменте должно быть более 5000-10000 различных штуковин? Выделить их "Прямо сейчас" будет значительно более дольше чем хотелось бы. Замучился "с этими выделениями"(прямо какой-то сифилис)... В первом файле одну колонку таблички слоёв за раз выделить не получится. А во втором файле - можно (пришлось табличку немного видоизменить). Дать вид спереди - любая вертикальная колонка на одном пятачке, дать вид справа - самая-самая предлиннющая горизонтальная колонка тоже спокойно влезает даже в самый маленький экран. Конечно, это не панацея, но от многочасовых многосерийных клацаний иногда слегка помогает.
|
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 15.09.2010
Сообщений: 1,287
|
Чёрт его знает, какое там критичное количество, я до него пока, слава богу, ещё не добирался. Можно, конечно, попытаться довести до идиотизма: вбухать в файл 150 триллионов примитивов в одну шеренгу, дать вид сбоку, попробовать выделить и посмотреть что получится. Пробовать не хочу: у меня компьютер старенький, купил в 2005 году, ему, бедному, и так не сладко приходится. Табличка слоёв в модели и кнопка "изоляция слоя" - конечно, тупиковое решение, но пока здорово помогает. Только файл нужно тщательно выстраивать и причёсывать. А если это ещё и чужой файл - то ох! Что ж я маленьким не сдох.
Да и слои иногда начинают беситься, когда их >1000. Иерархия слоёв сразу же куда-то реактивно смывается. Странно: говорят, что в войсках у Чингизханов-Батыев-Мамаев-Тохтамышей и всяких прочих Тимуров каждый рядовой боец якобы знал своё место в своей десятке, место своей десятки в сотне, место своей сотни в тысяче, место своей тысячи в тумене. И таких дисциплинированных туменов у этих Тамерланов-Ксерксов-Дариев-Наполеонов было (говорят учёные орденоносные дятлы) побольше чем у меня тараканов на кухне. А тут не знаешь куда 1001 слой смылся. Безобразие! Последний раз редактировалось kulvazab, 22.11.2012 в 04:03. |
|||
![]() |
|
||||
Цитата:
2. Тысячи две с гаком прокси - еще почти на 0.5 мБ. 3. Возможно, что многие логически цельные фрагменты чертежа стоило бы хранить по отдельным файлам. 4. Вот зачем в файле болтаются в непонятных местах три OLE? Весят, кстати, еще полных 0.5 мБ. 4. "Прямо сейчас" выделил все в файле мышкой - все на 7 мБ, все 48490 элементов, задвинул за границы экрана, вызвал перенос, и все передвинулось... Последний раз редактировалось АлексЮстасу, 22.11.2012 в 04:25. |
||||
![]() |
|
||||
Регистрация: 15.09.2010
Сообщений: 1,287
|
Да мышкой выделить, а потом передвинуть (не видя) - это одно, а выделить длинную линию объектов на экране, чтобы не "задеть" объекты из другого ряда - это другое. Поставьте у себя табличку 5000*5000 маленьких примитивов столбиками и рядами и попробуйте выделить только один из них. Для этого надо иметь экран размером с футбольное поле. И ездить по этому полю на велосипеде полчаса. И радиомышку придётся на голове закрепить, как у пилотов истребительной авиации (говорят, у них шлемы за взглядом следят как-то).
|
|||
![]() |
|
||||
Цитата:
Если же нужно выделить что-то логически цельное, но огромное, то это нечто (допустим, "табличку 5000*5000 маленьких примитивов столбиками") можно было бы сделать либо блоком, либо в отдельном файле, подруженном как внешняя ссылка. Тогда будет достаточно выделить любой элемент этого нечто, чтобы и выделилось все нужное, и передвинулось целиком. Пока что тривиальная гипотеза, что этот эффект наблюдается, когда Автокад засир...ет память - как это он всегда любил делать. Другая - что все-таки значения каких-то переменных влияют. |
||||
![]() |
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,379
|
АлексЮстасу, нет. Стремятся выделить объекты след. образом. Активируют сек. рамку, не отпуская её зажимают колесо мыши и панорамируют чертёж, так, чтобы начальная точка активации рамки скрылась за границей экрана. Захватывают рамкой нужные объекты на панорамированном экране и... имеют то, что имеют.
До появления колеса на мышке нельзя было панорамировать чертёж при активации рамки, и не было таких проблем 20 лет назад. Способ действия: выделил, то что на экране, спанорамировал, добавил объекты в набор выделения, спанорамировал и т. д. С зуммированием происходит тоже самое |
|||
![]() |
|
||||
Регистрация: 09.08.2010
Сообщений: 26
|
Пробовал по всякому.... выход только один....(тут кто-то посоветовал) выбирать по частям, чтобы каждый выбор секрамкой приходился на область экрана...потом перемещаться и снова выбор в пределах экрана и так пока все не выберешь..... не удобно , но перенос работает корректно.
в Общем наверно надо сделать как-то так: написать в лиспе такой прибамбас: перенеси.... запрос укажите первую точку .... укажите вторую точку.....потом показывается рамка на весь экран того что получилось и выбирается ........... затем запрос на Базовую точка ..... и новая точка вставки. Сам не пишу........ может кто сляпает по быстрому? Последний раз редактировалось mpn, 22.11.2012 в 13:27. |
|||
![]() |
|
||||
Цитата:
Получается, что эта "секрамка" связана с границами экрана - строится от границ экрана, если ее первая точка оказалась за границей. Может, есть переменные, которые "секрамкой" управляют? |
||||
![]() |
|
||||
Можно было. Прозрачные команды '_PAN и '_ZOOM. Но сути это не меняет.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 29.10.2004
СПб
Сообщений: 16,379
|
Александр Ривилис, нет. Эти команды- совсем не то. Тебе надо было рамку "закрывать", а потом выполнять '_PAN или '_ZOOM. Вспомни.
И рамкой ты мог пользоваться только в пределах экрана. При пане и зуме колесом первый угол рамки может "уехать" за границы экрана и выделение на том участке рамки- пропадёт |
|||
![]() |
|
||||
Неа. :-) Эти прозрачные команды можно было запустить при запросе любой точки (в том числе и второй точки рамки) и пока эти команды не завершались рамка не "закрывалась".
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Цитата:
1. Первое нажатие - начало рамки. 2. Из меню (пункт меню или иконка) выбираешь '_PAN, указываешь две точки для панорамирования. 3. Теперь указываешь вторую точку рамки. Другое дело что это как и 20 лет назад приводило к тому, что не все примитивы попавшие в рамку оказывались выбранными, а только те, которые в момент указания второй точки рамки были на экране. Я лишь хотел подчеркнуть, что изменить вид во время выполнения команды можно было и во времена двухкнопочной мыши. P.S.: Кстати не забываем еще и про прозрачную команду '_-PAN (она несколько отличается от '_PAN)
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка Последний раз редактировалось Александр Ривилис, 22.11.2012 в 17:06. |
||||
![]() |
|
||||
Регистрация: 09.08.2010
Сообщений: 26
|
Ребята спасибо всем, я поднял этот вопрос и при его обсуждении, вы натолкнули меня на мысль написать прибамбас.
Попросил одного знакомого и он написал следующее: Вроде работает нормально меня устраивает. ;;================================================================ (defun c:move_new () (setvar "cmdecho" 0) ;_______________________________________________________ (setq p1 nil) (setq p2 nil) ;_______________________________________________________ (progn (print "\nУкажите рамку\n") (command "_rectang" PAUSE ) (setq p1 (getvar "lastpoint")) (command PAUSE) (setq p2 (getvar "lastpoint")) (setq kontur (entget (entlast))) (command "_erase" (entlast) "") (Command "_zoom" "_e") (command "_move" "w" p1 p2 ) )) ;;================================================================ Кто не силен в Каде поясню. это должно быть внутри файла ЛИСП....например MOVE_2.LSP (фай надо положить в SUPPORT) Затем в файле автозагрузки надо прописать: (load "move_2") Затем в меню сделать кнопку и на ней написать: ^C^Cmove_new в последней строчке написано (command "_move" "w" p1 p2 ) где "w" - выбор через рамку Если не понравится напишите (command "_move" "c" p1 p2 ) где "c" - выбор через секрамку Последний раз редактировалось mpn, 22.11.2012 в 22:49. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В 90% случаев этот "лисп" будет срабатывать с ошибкой. А то и не с одной.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 09.08.2010
Сообщений: 26
|
Цитата:
Если у кого-то будет срабатывать с ошибкой, ну подправит человек ошибку, а может вообще никто такое решение для себя не выберет, а может это кроме меня вообще никому и не надо......... так что я не вижу никаких проблем. ВСЕМ спасибо до свидания! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При переносе расчетной схемы из AutoCAD в SCAD возникла ошибка | Александр К | SCAD | 2 | 12.07.2013 10:52 |
Обращение в семейству групп меню и последующий вызов диалога _CUI приводят к ошибке. | Makswell | Программирование | 8 | 06.08.2010 08:08 |
Несоответствие результатов в Лире | s.vas | Лира / Лира-САПР | 19 | 11.11.2009 07:31 |
Помощь по Лире | Серега М | Лира / Лира-САПР | 52 | 28.05.2007 02:47 |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |