Jump to content

themaster

Пользователи
  • Posts

    37
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by themaster

  1. Nanocad 22.0.6068.3830 x64, сборка 6177 Windows. Суть проблемы: когда я нажимаю пункт "Выбр цвета...", хотя бы как на картинке выше - на экране появляется диалоговое окно "Выбор цвета": Обратите внимание: фокус ввода по умолчанию не на кнопке "ОК", и даже не в поле ввода номера цвета, а на кнопке "Справка". Это неудобно. Нажать кнопку - вбить цифру - нажать Enter уже не получится, надо смотреть, тыкать мышкой и так далее. Переставьте, пожалуйста, поле ввода по умолчанию хотя бы на "ОК"? Другая проблема: у меня есть блок с атрибутами, и мне надо исправить значение атрибута. Двойным щелчком по тексту я вывожу на экран окно "Редактор атрибутов блоков": У меня значение "MDR-20-12". Мне надо исправить на "MDR-20-24". Напрашивается комбинация клавиш: "End" -> "Backspace"-> "Backspace"->"2"->"4". Нажимаю, получаю: Значение стало "24MDR-20-12"! Почему? Выделенный текст в поле ввода я вижу в куче других Windows-программ (и не только Windows). Везде в этом случае по нажатию кнопки "End" выделение текста снимается, и курсор переставляется в КОНЕЦ текста. Здесь по нажатию этой кнопки выделение снимается, и курсор переставляется в НАЧАЛО текста! Чтобы всё работало, кнопку "End" надо не забыть нажать ДВА раза. Сделайте, пожалуйста, чтобы хватало одного нажатия, как и везде?
  2. Мне надо выполнить кое-какую обработку многострочного текста. Пишу самую простую процедуру выбора этого самого текста: Option Explicit Public app As Nanocad.Application 'NanoCAD application global var Public ThisDrawing As Nanocad.Document 'Active NanoCAD document global var Sub my_drawing() Dim MTxt As AcadMText Dim ChoosedObject As AcadObject Dim Point As Variant Dim i As Integer Set app = GetObject("", "nanoCAD.Application") 'Connect to running nanoCAD app.Visible = True 'Show NanoCAD window Set ThisDrawing = app.ActiveDocument 'Connect to nanoCAD doc ThisDrawing.Utility.GetEntity ChoosedObject, Point, "Choose MText" If ChoosedObject.EntityName <> "MText" Then i = MsgBox("Not an MText, vbCritical, "Wrong choose") Else MTxt = ChoosedObject ' Other code End If End Sub Не могу добиться работоспособности строчки ThisDrawing.Utility.GetEntity ChoosedObject, Point, "Choose MText". Окно Nanocad отображается на экране, появляется запрос на выбор объекта, я выбираю этот объект - а потом VBA мне сообщает: Invalid procedure call or argument. Продолжение работы через On Error Resume Next не помогает: в переменной ChoosedObject не записывается ничего. Макрос пишу в редакторе VBA Microsoft Excel 2007. Nanocad 8.5 Что тут можно сделать?
  3. Подниму тему. Работаю в Нанокад 8.5, проблема актуальна. В командной строке, если клацнуть по заголовку правой кнопкой, есть пункт "Скрыть": Button.bmp Вопрос: где ответная кнопка "Отобразить"? Единственный вариант, который я нашёл - сброс интерфейса с потерей всех настроек...
  4. Да, конечно. Я ж писал, затык был со скобками. Щас всё работает, как я и хотел.
  5. Ладно, повторю другими словами. Как я писал в первом сообщении, мне постоянно приходится двигать объекты/группы на фиксированные расстояния - 10 мм, 5 мм и так далее. Выбор объектов автоматизировать никак нельзя, по понятным причинам. Но вот объекты выбраны, а дальше - я нажимаю одну и ту же последовательность клавиш: п (перенести) Enter 10,0,0 (пока сейчас набирал это, несколько раз опечатался - рус/англ точка в разных местах, "э" вместо Enter'а, и так далее) Enter Тут меня просят ввести вторую точку, но я вместо этого нажимаю ещё раз Enter - "использовать первую точку в виде перемещения". Всё, конец алгоритма. Теперь я набил простейший файлик, и вместо всего этого набираю с клавиатуры п1 enter, что означает "вправо, на 10". Если надо на пять - набираю п5 энтер. Так же - влево л1/л5, вверх и вниз в1/н1 соответственно. Десять, две запятые, два нуля и всё прочее вместо меня вбивает лисп. Не знаю, кому как, мне - удобнее. А снаружи - да, кажется, что "под все направления и расстояния будешь лиспы писать" :-) В любом случае, явно обозначу благодарность пользователю doctorraz - из его примера я понял, что скобочки забыл поставить, после названия функции. Они нужны, даже если аргументов у функции нет.
  6. Может быть, вы будете смеяться, но - да, под все направления я буду писать лиспы :-) Собсна, моя идея в том и есть. Сейчас попробую поколупаться с вашими примерами. В любом случае, спасибо за ответ.
  7. Мне всё-таки кажется, не должен. Всё, что он должен сделать - вбить вместо меня в командную строку фиксированные буковки. Что двигать - знаю я (пользователь), от какой точки и куда - заложено в команде (текущее выделение, на 10 мм, использовать точку в виде перемещения). Или это делается не в виде лиспного скрипта?
  8. Всем добрый день! Есть у меня проблема: постоянно двигаю объекты и группы на чертеже на 10 мм вверх - вниз - влево - вправо. Ну, или на 5 мм, и так далее. Надоело мне опечатываться при наборе, порылся я в яндексе и понял, что правильный ответ - скрипт на лиспе. Сваял это: (defun ml ( command "move" "10,0,0" " " " " ) ) ml - типа, Move Left. Потом, как это заработает, нашлёпаю сколько надо всяких других Move'ов. Вроде, ошибиться негде - а nanocad мне постоянно дулю показывает: ошибка: неверный синтаксис DEFUN: (ML (COMMAND "move" "10,0,0" " " " ")) Подскажите, пожалуйста, где я неправильный пробел поставил/убрать забыл? Час тычусь, как ёжик в тумане, и куда рыть дальше - совершенно непонятно. В примерах/образцах - простыни текста, а как мне надо, две строчки - никак не могу найти... На всякий случай - и файл прикладываю:
  9. Пытаюсь сваять первый простейший скрипт в Нанокаде. У меня есть объект Текст, мне нужно вместо него положить объект МТекст, на тех же координатах, того же размера и так далее. Поскольку знаю только VBA, то и писать надо Visual Basic Script. Первое, что мне нужно сделать - выбрать объект на чертеже. Открываю руководство разработчика, "Справочное руководство nanoCAD ActiveX API", нахожу там раздел 'GetEntity Method', пишу следующий текст: Dim entTxt, entMTxt Dim pt ThisDrawing.Utility.GetEntity entTxt, pt, "Укажите объект" if entTxt.EntityName <> "AcDbText" then ThisDrawing.Utility.Prompt "Это не текст!" else AddMText(pt, width, text) end if И, собсно, это всё, что я смог найти в справке "без посторонней помощи". Даже про AddMText я узнал из какой-то статьи в интернете. А дальше? Как установить параметры этого MText'a, тот же самый width, например? Как удалить существующий текст? Где, в каком разделе справки это искать? В ней даже объектов таких - Text,MText - нету... Куды дальше рыть?
  10. Откликаюсь на "глас народа". Только, пожалуйста, не говорите никому, что это я загрузил вам этот файл :-) Заказчику, в принципе, пофигу, но мне просто лень согласовывать передачу файла через десяток начальников, ни один из которых не понимает, нафиг это надо - да и не хочет понимать. Кстати, так и не сообразил, как загружать файл в медиа-библиотеку на сайте :-( Пришлось ваять ссылку на мой Яндекс-диск...
  11. Только что осилил одну проблему, съевшую у меня кусок нервов. Технологи мне постоянно передают схемы, сделанные в автокаде. У них стоит масштаб 1:100, и трубопроводы маркируются многострочным текстом - поверх линии сидят две-три буковки. И они - МТЕКСТ, а не ТЕКСТ, чтобы можно было затенить линию под текстом. В настройках их Автокада указано делать все МТЕКСТы одной колонкой динамической ширины. У них так принято, не мне это менять. А потом файл схемы приходит ко мне. Я открываю файл в Нанокаде, он мне всё отображает - и даже не заикается о наличии какой-то ереси под названием "колонки", которую он - не могёт. Дальше - я обращаю внимание на масштаб. В схеме 1:100, а мне удобнее - 1:1. Поэтому я выделяю всё и масштабирую в 0,01 раза. Нанокад резво всё делает - и, опять же, даже не заикается об этих колонках. Которые, очевидно, остались неотмасштабированными. Дальше я закрываю и сохраняю файл. И тут Нанокад понимает, что вот в этом крошечном МТЕКСТе размером пять на десять миллиметров сидит некая хрень в триста миллиметров шириной, которая внутри него - ну никак не помещается. Не знаю, чё он там ещё себе думает, но в результате все несколько сотен МТЕКСТов не только разлетаются в ширину на сотни миллиметров - они ещё и в стороны съезжают, на какую-то непредсказуемую величину порядка, опять же, сотен миллиметров! И всё это - совершенно тихо, без единого слова или намёка. А на следующий день я открываю файл - и вижу чудесную картину: все МТЕКСТы схемы разлетелись с чертежа кто куда, весь чертёж перечёркнут стопиццот раз затенением пересекающихся МТЕКСТов, и как их собирать - совершенно непонятно. Нет, их можно ручками вернуть на место, уменьшить ширину до разумных пределов... А на следующий день обнаружить, что всю работу надо начинать сначала. И - повторяю и обращаю внимание: нигде, ни малейшего намёка на причину сего безобразия! Вот такая картина вырисовывается. Лечение - открыть в автокаде, выделить все МТЕКСТы, назначить всем "нет колонок", сохранить И только потом - масштабировать. Соответственно - рекомендация: если уж Нанокад не умеет эти колонки и непонятно, когда научится - пусть хоть предупреждает, что ли! В идеале - с предложением нескольких вариантов: - убрать всё нафик, сделать в одну колонку и посмотреть чё получится; - оставить всё как есть в надежде, что и так сойдёт; - убиться ап стену сделать что-нибудь ещё... Надеюсь, кому-нибудь будет полезно.
  12. Наверное... Там масштаб стоял 1:100, вот и получился текст в 2,5 и в 5 миллиметров. Кто-нибудь из знатоков, может, сможет подсказать, как отредактировать МТЕКСТ во внешнем редакторе? Есть всякие коды форматирования, которые сильно портят жизнь... Если бы их можно было удалить внешним редактором - жить было бы гораздо проще.
  13. Разбить-то я и сам умею... Я вот думаю, может быть, что-то можно сделать с самим текстом? Убрать столбцы, например... В свойствах объекта содержимое следующее: \pxqc;{\W0.9;Локальные очистные сооружения \Pповерхностного стока} Может быть, если убрать мусор сначала (\pxqc;{\W0.9;), то многострочный текст будет вести себя по-человечески? Просто я всякий раз привожу размеры текста в божеский вид, а после операций "сохранить-закрыть-открыть" - всё возвращается обратно. Разобрался: дело явно в столбцах. Осталось понять, как их убрать. В Автокаде - понятно, а вот где соответствующая кнопочка в Nanocad'е?
  14. Жил-был файл некоей технологической схемы в масштабе 1:100. Схема нарисована в пространстве модели, на расстоянии метров тридцати от точки "0". Я смасштабировал схему (уменьшил в 100 раз), затем - заменил рамочку-форматку на блок с многострочными текстами (просто текстами, не атрибутами!), а потом - передвинул всё поближе к точке "0" (так удобнее работать). Сохранил, закрыл, открываю - а многострочные тексты почему-то уехали на те самые 30 метров! Можно зайти в редактор блоков, отредактировать расположение этих текстов - и они вернутся на родину. Потом я сохраняю файл, закрываю его, открываю снова - и тексты опять уехали чёрти-куда! Что с этим можно сделать? Файл здесь: ProblemFile.dwg Версия Nanocad: 5.1.2524.1471 Сборка: 2017 Файл сохранён как Autocad 2010
  15. Посмотрел. "здесь" написано: чтобы не ругался на отсутствие шрифтов, запиши их куда надо. Записал. Не ругается. Но - отображает кракозяблами. Причём везде (в текстах, в выносках, может, ещё где-то) - отображает нормально, а вот в неразбитой таблице - кракозяблами. Вопрос: лечится ли это?
  16. Использую Nanocad 3.7. Также в организации используется Autocad 2006/2009. Рисую файлы в нанокаде, при попытке открыть в автокаде сообщает об отсутствии файла GOST 2.303-68.shx. Если отказаться от его поиска, то файл открывается, хоть и без шрифтов. Сегодня нашёл этот файл, скопировал его в папку автокада. Шрифты появились, но слетела кодировка, причём не везде, а только в таблицах. Все русские надписи отображаются кракозяблами. В принципе, её можно разбить, и всё появляется... Поиск по форуму по ключевому слову "Кодировка" результатов не дал. Может, я плохо искал? Что делать в такой ситуации? Можно ли как-нибудь починить кодировку в таблице Nanocad? Штука вообще-то мегаудобная...
  17. Присоединяюсь к вопросу о добавлении функциональности. Насколько сложно реализовать такую возможность? У нас тут начальство помаленьку раздумывает, а не перейти ли на САПР посовременней (а то пользуемся Autocad'ом 2006 и 2009 года) - так Nanocad выглядит вполне достойной заменой. За исключением нескольких досадных мелочей, одна из которых - поля. Другая, кстати - функция АТРОБНОВИТЬ. Но её, наверное, можно реализовать ручками? Наваять какой-нибудь простенький макрос, который будет пробегаться по вхождениям выбранных блоков, удалять их и вставлять заново... но это уже не по теме - как говорится, off-topic.
  18. А переустанавливать NanoCAD после этого надо? Или, может быть, достаточно выложить файл в определённую папку и перезапустить программу?
  19. Может быть, её хотя бы планируют поддержать в будущем? И если да, то в насколько отдалённом? А если нет, то хотя бы документацию поправьте, что ли...
  20. В инструкции к Nanocad 4 СПДС гордо написано следующее: "Командная строка: CONVERTTABLE Команда предназначена для конвертации таблиц AutoCAD в таблицы nanoCAD, с возможностью дальнейшего редактирования средствами nanoCAD и наоборот" (выделение моё). Чуть ниже: "При конвертации таблицы nanoCAD в таблицу AutoCAD все динамические связи разрушаются". Это - руководство пользователя, стр. 462. Я так понял этот кусок текста, что берёшь файл из Автокада, тыкаешь таблицу Автокада, жмёшь кнопку - получаешь таблицу Нанокада со всеми плюшками и наворотами действительно хорошего табличного редактора. А потом - можно тыкнуть в таблицу Нанокада (в смысле, выделить её), нажать ту же самую кнопку - и она преобразуется обратно, в таблицу Автокада, пусть и с потерями наворотов и дополнительной функциональности. Попробовал. Туда - всё в порядке, красиво и радостно. Обратно - никак. Может, чтобы перегнать обратно, надо нажать какую-нибудь другую кнопку? Или вопросами перегона обратно вообще никто не заморачивался? Судя по инструкции - должно ж работать! На всякий случай, прилагаю файл таблички, которую я смог перегнать "туда" и не смог - "обратно" Табличка.dwg Табличка.dwg
  21. В Автокаде довольно часто пользуюсь командой ИзмеритьГеом. Суть следующая: есть, допустим, кабельная трасса, проложенная по территории, надо измерить её длину. Тыкаешь мышкой в начало трассы, потом - в следующую точку - и тебе в командной строке доступна длина первого сегмента. Затем тыкаешь в следующую точку - к длине первого сегмента прибавляется длина второго и опять-же отображается в командной строке. Ну и так можно пройти по всему пути и в конце увидеть длину всей трассы. Точно так же можно мерять не только прямые сегменты, но и дуги. Планируется ли добавлять в Nanocad похожую функциональность? Или такая задача решается как-то по-другому? Следующий вопрос: очень понравилось, как Nanocad рисует выноски по ГОСТу. Но - предлагается только две строчки. А если мне болтовое соединение обозначить надо, там уже три строчки требуется. Можеть быть, эта задача решается в специализированных версиях Nanocad'а?
×
×
  • Create New...