Есть идея написать программу рисующую элементы чертежа по номерам и кодам взятым из файла скачанного с тахеометра. Общая идея такова. Файл с тахеометра обрабатываем в Credo_dat и получаем файл N,X,Y,Z. Далее обрабатываем координатный файл программой которая добавит в него кода из файла с тахеометра. Далее закачиваем файл N,X,Y,Z,Code в автокад и запускаем программу которая используя кода что-то там "рисует" в чертеже. Естественно для рисовки по кодам так же можно использовать файл N,X,Y,Z,Code полученный обработкой GPS измерений. В первом посте буду выкладывать программы по мере их разработки. Замечания и критические пожелания в любой форме крайне приветствуются. =================================================================== Выложена третья версия. Работает со "старым" форматом SDR, в котором используются нули для дозаполнения информационного поля, в "новом" формате используются пробелы. У кого формат с пробелами используйте программу CodeSDR2NXYZ_test03.fas выложенную в этом же топике. Программа CodeSDR2NXYZ03.fas используя фал формата N,X,Y,Z сформированный Credo dat и фай с измерениями и кодами формата SDR33 создает файл формата N,X,Y,Z,Code. Для тетирования программы разархивируйте все в папку, щелкните мышкой по 0.dwg, перетащите мышкой в рабочее окно автокада файл CodeSDR2NXYZ03.fas, выберите в окне выбора файл Теод_ход01.sdr, далее в появившемся окне выберите файл ТеодХод01.txt. По окончании работы появится табличка: Работа окончена, путь и имя файл с результатами работы. ----------------------------------------------------------------------------------------------------- Выложена седьмая версия программы Программа NXYZCode2acad07.VLX закачивает пикеты из координатного файла формата Name,X,Y,Z,Code в AutoCad в виде блоков с атрибутами. Так же возможно закачивать из координатного файла формата Name,X,Y,Z. Блок с четырьмя атрибутами Name,Z,Code,Glubina, можно создать самостоятельно или использовать (при необходимости отредактировать и сменить название) находящийся в архиве pik_s.dwg. Название используемого блока с атрибутами должно быть записано в фай PiketIni.txt Программа считывает значение переменной чертежа useri5. Если в переменной нет значения знаменателя масштаба (100, 200, 500, 1000, 2000, 50000, 10000, 25000, 50000, 100000), то программа выдает запрос на ввод знаменателя масштаба и записывае значение в переменную useri5. Далее на экран выводится запрос, например "1:500 Число знаков после запятой в Z (0 1 2 3 Выход = Enter) = ". Слева в запросе выводится масштаб чертежа в с учетом которого будут закачаны пикеты. Если есть необходимость прекратить работу, можно просто нажать клавишу Enter. Значение в переменную useri5 можно ввести вручную, набрав в командной строке useri5. Если в пикете есть код &&, то пикет закачивается в чертеж как плановый, без отметки. Отметки пикетов можно выводить с округлением до метра, дециметра, сантиметра, милиметра. Если при закачке в автокад будут обнаружены пикеты с одинаковыми номерами программа выдаст сообщение с номером пикета и номером строки в координатном файле. Для тетирования программы разархивируйте все в папку, щелкните мышкой по Drawing0.dwg, перетащите мышкой в рабочее окно автокада файл NXYZCode2acad07.VLX и следуйте запросам программы. ------------------------------------------------------------------------------------------------------ Выложена пятая версия программы Программа 3dPointMake05.fas из блоков-пикетов чертежа создает на диске координатный текстовый файл X,Y,Z или же создает в чертеже соответствующие блокам-пикетам трехмерные точки из примитивов point. Трехмерные точки могут быть использованы для построения поверхности и горизонталей (например в AutoCAD Civil 3D). Если атрибут Code блока-пикета содержит код & "нерельефный", или код && плановый, или же не имеет отметки, то для такого блока-пикета трехмерная точка не создается и в коодинатный файл не заносится. В пятой версии введно функция проверки отметки на наличие запятой и замены оной на точку. Иногда просто диву даешся, откуда в отметках берутся запятые. Для тетирования программы разархивируйте все в папку, щелкните мышкой по Газ-отвод план без горизонталей 2000.dwg, перетащите мышкой в рабочее окно автокада файл 3dPointMake05.fas и следуйте запросам программы. В первой строке файда PointIni.txt записано название блока-пикета. Если необходимо, можно отредактировать файл PiketIni.txt. ------------------------------------------------------------------------------------------------------ Выложена пятая версия программы. Программа DrawPointObjectByCode05.fas вычерчивает точечные условные знаки по кодам находящимся в атрибутах пикетов. Код из атрибута блока-пикета меняется программно на название блока-усл.знака в соответсвии с описанием в файле ConversionCodePoint05.txt. Редактируя файлы PiketIni.txt и ConversionCode.txt можно настроить программу рисовки под свои требования. Файлы 390-1s.dwg, 390-2s.dwg, 390-3s.dwg, 390-5s.dwg блоки деревьев, файл 110_1s.dwg фонарь одиночный. Файл Газ-отвод пикеты 2000.dwg чертеж с пикетами съемки газопровода-отвода. Файл PiketIni.txt в первой строке записано название блока-пикета. Файл ConversionCodePoint05.txt - файл соответсвия кода названию вставляемого блока. Точечный объект будет занесен в слой указанный в файле. Может редактироваться пользователем. Газ-отвод.jpg - картинка с результатами работы программы. В сложном коде можно указывать несколько простых кодов разделенных пробелом. Таким образом количество отрисовываемых точечных условных знаков на одном пикете ограничивается только длиной строки кода поддерживаемой тахеометром. Для тахеометра Sokkia set 5F длина строки кода 13 символов. Для теcтирования программы разархивируйте все в папку, щелкните мышкой по Газ-отвод пикеты 2000.dwg, перетащите мышкой в рабочее окно автокада файл DrawPointObjectByCode05.fas. На запрос программы для продолжения работы введите 1, для выхода из программы введите 0. Дальнейшее "усовершенствование" программы будет продолжено. Программа тестировалась в AutoCAD 2002 en и AutoCAD 2012 рус. -------------------------------------------------------------------------------------------------------------- Выложена пятая версия программы для "автоматической" рисовки линейных объектов. Программа DrawLineObjectByCode05a.fas вычерчивает линейные условные знаки по кодам находящимся в атрибутах пикетов. ConversionCodeLine05.txt файл с настройками работы программы, можно редактировать. PiketIni.txt - в первой строке записано название блока-пикета, можно редактировать ivsem.lin - файл с типами линий используемых в рисовке линейных объектов. UGP_UZ.shx - файл шейпов используемых в типах линий. Газ-отвод пикеты 2000.dwg - файл пикетов с кодами. Газ-отвод.jpg - картинка с результатами работы. Для тетирования программы разархивируйте все в папку, щелкните мышкой по Газ-отвод пикеты 2000.dwg, Перетащите мышкой в рабочее поле автокад программу DrawLineObjectByCode05a.fas. Линейные объекты будут отрисованы и появится табличка "Работа окончена". Основное требование для правильной отрисовки линейного объекта - номера пикетов по линейному объекту должны образовывть цепочку, где следующий номер пикета должен быть больше предыдущего. На сколько больше без разницы. Обычно при съемке поперечниками коридора коммуникаций на открытой слабопересеченной местности так и бывает. Дальнейшее "усовершенствование" программы будет продолжено. Программа тестировалась в AutoCAD 2002 en и AutoCAD 2012 рус. ---------------------------------------------------------------------------------------------------- Выложена вторая версия программы. Программа TestSDRdoublePk02.VLX тестирует файл формата SDR33 на предмет наличия пикетов с одинаковыми номерами. Если найдены пикеты с одинаковыми номерами появляется табличка с номером пикета и номером строки в файле SDR33. Диапазон точек обоснования 1-99. Диапазон съемочных пикетов от 101 и до бесконечности. Для тетирования программы разархивируйте все в папку, щелкните мышкой по 0.dwg, перетащите мышкой в рабочее окно автокада файл TestSDRdoublePk02.VLX, выберите в окне выбора файл *.SDR. --------------------------------------------------------------------------------------------------------- Выложена третья версия программы CodeSDR2NXYZ_test03.fas. Программа работает с более новым форматом файла SDR использующим пробелы для дозаполнения информационного поля (в "старом" формате SDR информационные поля дозаполнялись нулями). Программа добавляет в координатный файл NXYZ код из фала SDR и формирует координатный файл формата NXYZCode. В архив добавлен файл настройки позволяющий настроить программу на различные разделители используемые в исходном файле координат.
Я, для начала, хочу использовать кодирование в поле для точечных объектов (отдельно стоящие деревья, опоры осветительные и т.д.) Линейные объекты я рисую программно, вводя в программы номера пикетов из абриса.
ivsem, А зачем велосипед изобретать? В Робуре это так классно сделано. Сразу по коду условный знак присваивается, можно да же откосы рисовать! Единственное нельзя быстро с кодами работать, если загрузил точки из автокада т.к. там коды все текстом прописываются.
Оффтоп (Move your mouse to the spoiler area to reveal the content) Что бы быстрее ездить. Кстати Вы мой велосипед видели? http://geodesist.ru/forum/threads/Создаем-велосипед-собственная-разработка.15467/page-3 Я хочу "нарисовать" программу, которая будет закачивать, используя файл NXYZ, пикеты в виде блоков с атрибутами в чертеж в нужном масштабе и далее используя файл с тахеометра отрисовывать точечные, а возможно и линейные, объекты в чертеже.
Оффтоп (Move your mouse to the spoiler area to reveal the content) Видел, поставил лайк и с тех пор пускаю слюни. Купил вот сыну пока. А что ж вы меня не поддержали тут? А то некоторые утверждают что электро транспорт не выгодный. Понял. Это вы Lisp написать хотите. Хорошая идея. Мне дак очень понравилось не расставлять точечные в ручную а сразу присвоить условный знак сразу всем точкам. Линейные только пока не пробовал рисовать в Робуре. Я бы хотел линейные рисовать все таки сам, но в полу автомате. Например веду курсор а линия сама к точкам с определенным кодом цепляется, а нажатием левой кнопки мыши цепляется к тем кодам которые я укажу. Повторное проведение над точкой автоматом линию от точки отцепляет. Так удобно рисовать некоторые контура растительности. Можно такое реализовать?
Попробуй мою программу отрисовки ЛЭП на застроенной территории (хотя бы для оценки самой "идеи-алгоритма"). Рисовать можно комбинированным методом, используя номера пикетов и мышь. На чертеже бывает черно от пикетов, а ввод номера позволяет однозначно попасть на нужный пикет даже визуально не видя его. При этом пикет окажется в центре рабочего поля экрана и к нему будет тянутся пунктирная линия. Если нужно ткнуть не в пикет, а в "чистое поле", используется мышь (можно естественно тыкать мышкой и в пикеты). При этом никаких переключений производить вручную не нужно, программа переключает ввод автоматически. Номер пикета должен быть атрибутом блока-пикета. Программу можно самостоятельно настроить на любые блоки с атрибутами. http://geodesist.ru/forum/threads/Программы-для-autocad-от-ivsem.4612/ Смотри в конце списка программ 115_02beta.zip. Внутри архива есть описание программы и тестовые dwg. Для тестирования можно разархивировать все в одну директорию, щелкнуть по тестовому чертежу, потом перетянуть мышкой программку 115_02beta.fas в рабочее окно автокада. Написание всякого рода критических замечаний очень приветствуется.
Лень тыкать, хочу чтоб само тыкалось на нужные пикеты с нужным кодом, а я как волшебник только бы водил курсором над этим местом
Уже есть отличная реализация от уважаемого пользователя Valang. А именно его программа Mif_Kat выложенная на данном форуме. Ничего удобнее и проще нет и быть не может. Создает как файлы для Mapinfo так и для Autocad. Посмотрите ее, возможно пригодится для реализации методики в вашей программе
FlaShTroN, Попробовал программу Mif_Kat. Запустил тестовый пример. Программа создала файл dxf. Загрузил в автокад. Пикеты в чертеже представлены в виде примитива point. Номера и отметки пикетов в виде текста. Однозначная связь межу точкой, номером и отметкой отсутствует. Если в чертеже черно от пикетов, то разобраться к какой точке относится номер или отметка весьма затруднительно Для дальнейшей автоматизации такое представление пикетов полный тупик. Я в своих чертежах использую для представления пикетов блоки с атрибутами. Номер пикета, отметка, и еще некоторая нужная мне информация находятся в атрибутах.
ivsem, а Civil3d с экономической точки зрения не рассматриваете? там все о чем вы пишете реализовано в полной мере, правда не с блоками, а с точками cogo, но на выходе (после экпорта) те же блоки. Линейные объекты также можно кодировать. Могу скинуть пример.
Alexandr-GR, Скинь если не затруднит. В принципе имею доступ к Civil3d 2012, но COGO прошло как то мимо меня.
Как оказалось, при помощи Редактора измерений, можно довольно легко создать произвольный файл формата SDR33. Да и редактировать описки-ошибки очень удобно. http://seditor.zemlemer.biz/ Огромное спасибо автору А.А. Китанину.
В архиве dwt шаблон для c3d_2012 и моложе, а также тхт-файл в формате PENZD(Номер, Восток, Север, Отметка, Код) Импорт точек (ком.: _Aeccimportpoints), надо выбрать соотв. формат (PENZD запятые), ОК В данном случае реализовано через "ключи-описатели", можно делать распознание УЗ через соотв. группы, но это кому как удобно. Также можно импортировать отдельно сначала координаты без кодов, потом номера с кодами, как описано в первом посте, для этого необходимо настроить дополнительный формат файла точек.
Солидарен с Александром - cogo тут на мой взгляд идеальное решение. В отличии от блоков присвоенных точкам - кого остаются более подвижными и динамическими... и меняются на необходимый вид\масштаб\стиль за пару кликов
ivsem, Есть блоки УЗ ГУГК (Вы их вилели ) Присвоить им коды и при загрузке текстового файла в Акад на нужные точки станут блоки УЗ. Конечно этот процес надо реализовать програмно --- Сообщения объединены, 9 дек 2014, Оригинальное время сообщения: 9 дек 2014 --- Alexandr-GR, А с кодами от Кредо дат и ГУГК блоками УЗ этот шаблон можно подружить? Или хотя бы с кодами от Кредо Дат.
Палыч, можете использовать какие угодно коды и какие угодно блоки под эти коды. Настраиваете маркера/метки, прописываете в ключах-описателях коды и увсе. В русском шаблоне (_AutoCAD Civil 3D (Metric)_RUS.dwt), который идет по-умолчанию с c3d, "сидит" большое количество блоков и настроено уже много меток и маркеров для точек. Только вот ключи-описатели в этом шаблоне пустые. Мы в течении дня всю зеленую книжку забили. В общем настраиваете под себя и сохраняете dwt.
Alexandr-GR, спасибо за файлы. Мне, кажется, вместо формата PENZD(Номер, Восток, Север, Отметка, Код) нужно пользовать принятый у нас формат PNEZD(Номер, Север, Восток, Отметка, Код) Сформировать для COGO файл PNEZD из кредовского файла PNEZ и файла SDR можно программно. В принципе я у себя реализовал сие действо программно. Но при смене масштаба, особенно в сторону более мелкого, все равно довольно много работы вручную.