Jump to content

Lion007

Клуб разработчиков
  • Posts

    853
  • Joined

  • Last visited

  • Days Won

    105

Everything posted by Lion007

  1. передал. даже специально не стал смотреть кому - просто подбросил в воздух "кто сделал - молодец"
  2. вообще-то можно сделать финт ушами. перебирать весь чертеж - это может быть грустно, даже на плюсах, не говоря уже о vba и прочих лиспах. да и вообще унизительно. а если при этом надо еще что-то посчитать (вроде попадания в область) так и вовсе. соответственно, первое что приходит в голову (ну, по крайней мере мне) - это сузить область поиска. ну и запросто : берем и запускаем обычную crossing-селекцию ректом. рект, естественно, задаем такой, чтобы в него как раз вписался тот самый нужный радиус. отрабатывает совершенно штатная механика выбора, которая работает по пространственному индексу. то, что она реализована на уровне потрохов - это ладно, главный прикол именно в индексе - в результате там получается (среднепотолочно) примерно логарифмическая сложность. на всякий случай - это когда на чертеже из миллиарда объектов (фиг кто нарисует, но на то и теория) выборка отработает в 30 раз медленнее, чем на чертеже из одного объекта. в 30, а не в 1000000000. ну а дальше - мы получили список потенциальных кандидатов (который, вероятно, будет составлять незначительную часть от общего количества объектов) - ну и их уже перебираем руками, как понравится... прожевать десяток-другой объектов - с этим вполне справится и лисп, и vba! такая вот хистория...
  3. нано - тупой. он тупо делает, что заказано. не всегда правильно, и не всегда хорошо. даже успешно не всегда. но сценарий, который плодит sortents-table - под наной мне неизвестен. а коль скоро они пришли (я без понятия, откудова вы их взяли!) - то это *ваши* данные - и *мы* не беремся за вас судить, нужны они вам или нет. приехало - будем носить. как-то так...
  4. я - программер. мне может быть жалко юзверей - бывает такая слабость. и я (лично-персонально) иногда иду им навстречу - и могу чем-то озаботиться и что-то наколбасить. но в мою должностную инструкцию - это нифига не входит. поэтому возможностей саботировать то, что я считаю неинтересным и вообще вредным - у меня достаточно. цветы своей селезенки - я тратить не обязан. делать то, что мне представляется неправильным - да еще и в свободное время... а вы бы стали? upd : на самом деле я ругался вообще на другое гребаные сортентсы - как-то надо чистить... фигня в том, что непонятно, откуда берутся! и мой следующий пост - примерно о том же...
  5. не хочу. и не буду, пока не получу прямого приказа от начальства мне так просто не нравится! я - вообще никакого. я так делать просто не стану, т.к. никакого смысла в этом не вижу. а вот это уже не ко мне вопрос как по мне - так это дремучая ересь и есть. точно такая же, как настройка ENTER-а в общем, ругаться мы можем долго - и ни к чему позитивному не придем. никакое частное решение моей поддержки не получит, так что извините, но помочь ничем не могу - придется подобные хотелки пробивать по официальным каналам и - вот ей-ей, есть куча проблем посерьезнее, они меня заботят гораздо сильнее...
  6. да все очень просто - когда мы жмем что-то на клавиатуре - то нам важно что нажали. а когда мы топаем мышкой - нам важно не только что, но и где. причем, зачастую, это самое где - важнее. разница преимущественно в этом. а правая гайка... правая гайка как "ввод" - это, если я правильно помню наследие еще глубоко досовских времен, когда она никакого особенного сакрального смысла не имела. с тех пор история стала легендой, легенда превратилась в миф - а там и в анекдот. а правая гайка довольно прочно получила смысл "меню контекстных действий". что характерно - набор этих самых действий совершенно разный для поля чертежа, для ярлычков на вкладках, для статус-бара, панелек, истории комстроки, самой комстроки и бог весть чего еще - на то он и контекстный. швырнуть "ввод" - технически вообще не фокус. а вот адекватность подобного действия - вызывает баальшие сомнения... ну и само собой, при этом никакой правокнопочной менюшки не останется. так что "локальная" доработка типа "а вот хочу симулировать ENTER по ПКМ" - выглядит крайне сомнительным усовершенствованием. в условиях достаточно полной виртуализации всего пользовательского ввода - возможно, тут каждый сам себе злобный буратина, как настроит - так оно у него и будет. а что должно происходить (с моей точки зрения) по ПКМ? так это сильно зависит от того, в каком месте ее нажали... в комстроке - примерно то же самое, что в любом строчном редакторе (всякие copy\paste), в хистори - очистка и запись в файл, в поле чертежа - должен вылезать список кейвордов... и так далее - менюшка с действиями должна вылезать! а если уж я набрал команду с клавиатуры - то запустить ее проще пробелом, чем за мышкой тянуться. это моя имха такая, а кто не согласен - тот не прав! такая вот хистория...
  7. есть два варианта... (кстати, 22 это решает тоже со скрипом - но хоть как... это моя личная имха) вариант раз : вы канифолите мОзги официальным путем... вероятно, вам достанется приблуда, которая сможет это почистить. в виде исходников, что честно. вариант два : вы ноете *громко* - и мне дают добро на неофициальное вмешательство... я матюгаюсь сутки, собираю микро-фикс под вашу версию, вы его запускаете - и все. добавлено через 6 минут это будет насквозь неофициальная приблуда, ни разу не рекомендованая к применению (один раз в жизни, в слаборазвитых странах - примечание автора) - но может сработать. чтобы не разочаровываться сильно - мне нужен пример. секретные сведения мне не интересны, из файла можно удалить вообще все. если я правильно понимаю, то он должен остаться тяжелым. зы : а все-таки, интересно откуда берется такое? мы (вроде как) такой фигни продуцировать не должны!
  8. Денис, эту песню не задушишь, не убьешь. Объясняю на пальцах Пользователи - видят всю фигню снаружи, причем (как правило) крайне локально - налетают на очередной косяк, который им мешает *сейчас* - и ругаются. Программеры - видят всю фигню изнутри, причем (зачастую) тоже локально - они правят очередной косяк, не сильно задумываясь о его месте в общем мироздании. По сабжу : (имхо) ПКМ == ввод - возможно, когда-нибудь случится. но вот лично я (повторюсь, это имха такая) - категорически против. прокидывание ввода в комстроку - должно делаться с клавиатуры. я прошу меня простить, но мнение пользователя меня в данном случае не интересует - его научили *плохому*. придется переучивать. ПКМ - это действие совершенно другого класса (я готов до посинения объяснять почему, хотя это элементарно). Вот как полностью механику *всего* пользовательского ввода виртуализируем - будет вам пкм... Платить придется - и (на мой взгляд) дорого - я уже говорил, это совершенно разные *классы* пользовательских воздействий. зы : пробелом, пробелом! клава - это клава, а мышь - это мышь. не надо путать теплое с мягким, как бы это ни казалось удобным на первый взгляд!
  9. Теоретически - нет. Но чтобы под какую-то версию что-то собрать - мне нужны от нее всякие технологические штуки вроде библиотечек и проч. Ясное дело, в дистрибутиве этого нет, так что приходится строить заново.
  10. нету в этом файле ничего особо интересного... а тяжелый он просто потому, что в нем 235008 sortents-table болтается, при том, что ни одного блока в нем не видать. вычистить их не сильно сложно (программно, ясное дело). вот бы понять еще, кто и как их ухитряется в таком количестве наплодить мы уже сильно не в первый раз на такие файлы натыкаемся, но откуда они берутся - так и непонятно... накатать приблуду, которая будет такое чистить под старую версию - тоже, в общем, не фокус, там главная сложность - ее (старую версию) строить придется, у меня диск-то не резиновый, я старых версий не храню
  11. на самом деле - все просто на экране рисуются всегда точки-линии-треугольники. то есть любой объект чертежа перед рисованием превращается в пачку точек-линий-треугольников. причем превращается в своем нормальном пространстве - где еще ничего не испорчено ну а дальше уже все это рисуется... а точки-линии-треугольники - штука, как известно, довольно прочная, и деформации пространства выдерживают с легкостью. вот и получается картинка, которую нормальными объектами наны не больно-то нарисуешь... а раз не нарисуешь - то и побить такой деформированный объект можно только на точки-линии-треугольники... это я немножко утрирую, конечно - но принцип такой.
  12. такс... кто-то тут вызывал Ктулху - так я за него собственно, в чем вообще весь прикол - есть такая присказка : видит око, да зуб неймет. очень хорошо к ситуации подходит... дело в том, что блок - вот просто как конструкция - позволяет извращения. просто разноскейлица - это такая себе штука... сама адекватность преобразования, скажем, окружности в эллипс - тоже под вопросом. не потому, что эллипс неправильный, а потому что это смена типа объекта. но прикол в том, что разноскейловые блоки позволяют нарисовать такое, чему в нормальном мире (нанокада) вообще аналогов не имеется! например, берем, и рисуем окружность... да, я ее специально под углом нарисовал... задаем ей выдавливание - а чо, имею право... да, это окружность засовываем в блок - визуально ничего не меняется. а потом ставим этому блоку разноскейлицу... (я поставил по Y скейл 5) и это (вы не поверите!) - просто окружность внимание, вопрос - во что я ее должен превратить при эксплоде? вот вы просто попробуйте нарисовать такой объект - живьем. ну просто ради смеха! почему оно так получается - я расскажу, если интересно...
  13. выключить IMAGEFRAME - и рамкам сильно полегчает. но вообще да, жесть жестокая 7000+ растров - это негуманно...
  14. проконсультировался с главным по PDF-ам... он, возможно, в подробностях распишет, а если кратко... то там так и есть! в PDF насовано куча мелких растриков, так и импортируется. но мысль "склеить с криком а пофигу" - мы уловили. даже придумали уже дерево критериев - что и как клеить. но - это как всегда опция "склеивать растры" с кучей настроек. извините, ребята - это уже не импорт, это постобработка... и кому какая нужна - бог весть!
  15. ну так я и не говорю, что это прям правильно а почему оно так получается... фиг его знает, если честно! вариантов может быть несколько, но если меняются какие-то апликационные состояния (а они-таки запросто могут меняться - те же списки форматов пишется в регистри) - то транзакция ни разу не поможет, транзакция-то на датабэйз! а логика происходящего... ну, примерно как в случае неаккуратного пересоздания файла. навроде bool recreateFileXXX(filename) { erase(filename); // удаляем старый, все OK return createNewXXX(filename); // а тут не получилось, хорошо если не упало } и получится, что старый файл удалили, а новый не создался, т.е. оно выполнилось наполовину так и тут - сеттинги есть, но настроились только частично. ну и от себя могу добавить, что этот самый плотсеттингвалидатор - штука дюже гнилая и непонятная... утверждать, что там все как надо - я ни разу не пытаюсь. исключительно рассказал откуда ошибка и как побороть!
  16. а дело просто в том, что там делается много-много всего. а эксцепшен вылетает уже в самом конце, при попытке что-то там в этом плотсеттинге датабэйзно-специфическое донастроить.
  17. не надо, я из первого поста взял в общем, посмотрел я, в чем засада... null ни при чем, это я зря его заподозрил. а дело в том, что надо иногда смотреть на сообщения об ошибках (это я в основном себе, но и прочим может пригодиться) честно было написано - прилетел эксцепшен eNoDatabase. и прилетел он совершенно, в общем-то, законно - у плот-сеттингов, которым пытаются сделать SetPlotConfigurationName датабэйзу взяться неоткуда - он же new! самое смешное, что единственный честный способ с этим бороться - это добавить эти плот-сеттинги в нужный датабэйз. то есть пишем что-то примерно такое using (PlotSettings settings = new PlotSettings(true)) { db.AddDBObject(settings); // временно добавляем - чтобы былО // blah-blah settings.Erase(); // удаляем - оно нам там на самом деле не нужно } насколько правомочно требование, чтобы плот-сеттинги для SetPlotConfigurationName были в добавлены в чертеж - бог весть. Судя по коду, который при этом выполняется - то этот самый датабэйз там на самом деле нужен, и ругается оно совершенно законно. Так что это, в общем, не баг - это разница в поведении. вообще, уже было неоднократно отмечено, что нанокадские АПИ зачастую более "жестки" в требованиях - АС некоторые вещи (пусть даже и не очень правильные) прощает, а NC - нет... но это уж так сложилось исторически. зы : что характерно, в плюсовом коде никаких эксцепшенов не летит, а возвращается честный эррор-код eNoDatabase. ну а за подарочки в виде эксцепшенов - надо благодарить того придурка, который эти эксцепшены придумал. ну и заодно тех его последователей, которые их норовят повсюду применить. такая вот хистория...
  18. а что если попробовать вместо psv.SetPlotConfigurationName(settings, plotterDevice, null); написать psv.SetPlotConfigurationName(settings, plotterDevice, ""); в смысле, вместо null подсунуть пустую строку. а то там какой-то сомнительный каст в коде...
  19. несвезло... пример в студию - без анализа трудно сказать в чем именно дело.
  20. скажу по секрету... листы (ну, если не пустые) - они по определению не быстрее (скорее - тормознее, могу на пальцах объяснить почему), чем модель. возмущение понятно, но модель все равно быстрее. а чтобы было не так грустно - можно поиграться с LayerStates- для быстрого переключения между состояниями слоев.
  21. есть такая буква... не дали мне это безобразие отфиксить
  22. непосредственно скопировать - вроде бы нельзя. мысль, отчасти, интересная - но в голову никому не приходила (хотя, тут могу и ошибаться). но зато можно соорудить темплэйт, в котором будут все нужные UCS-ы, и новые файлы создавать на нем.
×
×
  • Create New...