24.04.2022 10:44:51
Исходные данные:
Таблица Excel, в которой имеются наименования блоков, координаты вставки блоков, наименование атрибутов. Файл Autocad, в котором имеются заготовленные блоки с присвоенными атрибутами. Необходимо: создать макрос, который будет вставлять блоки с заданными атрибутами в необходимые координаты, пропуская строки с нулями.
Изменено: |
|
|
24.04.2022 05:23:06
Исходные данные:
Таблица эксель в которой есть координаты формата XYZ начало и XYZ конца линии, а также наименование слоя, в котором линия должна быть. Файл Autocad, в котором есть созданные слои с предустановленными типами линий (в архиве). Необходимо: создать макрос, который при запуске будет отрисовывать линии по заданным координатам в заданном слое в автокаде, с сохранением типа линии установленного в слое по умолчанию. ps. Если есть необходимость, то вид таблицы в эксель можно поменять, а именно убрать описательные строки A и B, а также, если будет необходимость, можно сцепить некоторые столбцы
Изменено: |
|
|
23.04.2022 11:29:49
Я понимаю, что эти две строчки на что-то указывают, но не понимаю на что, не знаю их как прикрутить в другие строки. Например в справке видимо, нашел что-то подходящее по Example AddLine но...сложить А + Б не могу. Я не Вашего уровня понимания.
Изменено: |
|||
|
24.01.2022 07:57:36
Добрый день, подготовил ТЗ Для подготовки двух макросов, вроде в нем все описал что нужно:
1) Макрос № 1 должен уметь вставлять блоки из Автокада по нужным координатам и с автоматическим написанием в блоках двух атрибутов, предусмотренных блоком. 2) Если атрибут 1, 2, или один из них, не предусмотрен блоком, то это не должно отобразиться на работоспособности вставки блока по нужным координатам. 3) Макрос № 1 должен отображать подпись атрибута в блоке в зависимости от местоположения блока и названия блока. То есть блок № 1 должен иметь атрибут «1» в координатах X1:Y1:Z1, и тот же самый блок № 1 должен иметь атрибут «2» в координатах X2:Y2:Z2 4) Макрос № 1 должен уметь пропускать пустые строчки и названия блоков, не созданные Автокадом и не сбоить. 5) Количество строчек, по которым работает Макрос № 1 не должен иметь ограничений 6) Макрос № 2 должен уметь рисовать отрезок по двум координатам (начало1 и конец1), затем обрывать ее и рисовать следующий отрезок по двум другим координатам (начало2 и конец2). 7) Макрос № 2 должен уметь брать тип линии, которым будет рисовать отрезок, из столбца «А» Line Name. 8) Слой, в котором будут отображаться все отрезки из Макрос № 2, любой новый слой. 9) Вес линии и цвет линии должны быть «по слою», чтобы их можно было все вместе поменять. 10) Соответственно макрос № 2 не должен иметь ограничений по количеству строк и также должен пропускать пустые строки. 11) Макрос № 1 и № 2 должны работать с результатами, подгружаемыми из других таблиц Эксель, то есть в строках будут формулы. 12) Если условие № 11 не выполнимо или трудозатратно, то предложите свой вариант как обойти шаг «Скопировать из таблиц и вставить в другую таблицу как значение» дабы исключить появление ошибок на данном этапе.
Я ничего подобного не нашел, ближайшее, что есть к Макросу № 1, это в теме Пояснение небольшое по поводу Макроса №1: На самом деле, по ссылке выше приведенной, эти два макроса умеют делать практически то что надо, если их запускать последовательно, один вставляет блоки по нужным координатам, которые ранее созданы в Автокаде, второй в ранее вставленных блоках редактирует атрибуты под те значения которые есть в экселе. Но второй макрос редактирует атрибуты ориентируясь на имя блока, и получается так, что на выходе у меня есть 10 блоков с именем "12" и с одними и теми-же подписями, зачем мне это? Мне нужно, что бы блоки подписывались в зависимости и от названия блока и от его координатного местоположения. Названия листов можете написать сами. Для исходных данных взял 3 файла: Чертеж графики: Автокадовский файл с образцами блоков и типов линий. (Автокадовский файл не смог загрузить, почему-то сайт ругался на размер, хотя он весит 55 кб, поместил в архив) данные ввод: Экселевский файл с «рассчитанными данными» из которого будет переносится информация в файл «данные вывод». данные вывод: Экселевский файл с данными из которых будут построения (Чисто файл в который подгружаются данные из файла «данные ввод» созданный для проверки п. 12 ТЗ) UPD: Изменил условие 8 на более простой. UPD2: Изменил версию Автокада на 2010. Сделал бюджет открытый (хз сколько это стоит, но надеюсь в пределах разумного). Добавил пояснение. Бюджет: Ваши предложения Срок: сегодня-завтра (Не думаю, что задача сложная)
Изменено: |
|
|
26.08.2021 09:39:31
Изменено: |
|
|
26.08.2021 08:22:47
БМВ,
1) Нет, все четко, если в тексте есть значение А, которое попадается 1 или много раз, то во всех случаях оно должно быть заменено на значение В. Дополнительное условие - словарь под замену будет для всех случаев. Например в словаре, как говорил выше, будет 100000 вариантов замены А на В, а в тексте, например значения А может и не быть, что бы его поменять на В, тогда, как я предполагаю, должен идти поиск по следующей паре С-D...и тд 2) значения примерно реальные, в данном примере значение меняется на 1+333 (КМ+метры), но не везде подобного рода есть замены, будут попадаться другого формата данные, но в словаре заменяемый текст (А) и заменяющий текст (В) будут присутствовать. 3) Как и писал выше 1+333 к каждому значению прибавляется, но словарь будет все-равно нужен так как пункт 2. |
|
|
25.08.2021 16:39:40
Я понимаю, что каждый раз прогонять миллионы слов ради подходящей замены будет гораздо медленнее, чем смотреть наличие 100000 слов в тексте и заменять по его наличию.
Я хотел узнать, есть ли у вас готовые решения, в скриптах я не силен от слова совсем.
По правде говоря, он у меня сразу и не запустился, запускался с ошибкой в модуле, мб в этом проблема. Скриншот прилагаю
Изменено: |
|||
|