Cоздание сложных атрибутов блоков (блоков) с минимальным использованием программирования
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Cоздание сложных атрибутов блоков (блоков) с минимальным использованием программирования

Cоздание сложных атрибутов блоков (блоков) с минимальным использованием программирования

Ответ
Поиск в этой теме
Непрочитано 14.12.2010, 20:21 #1
Cоздание сложных атрибутов блоков (блоков) с минимальным использованием программирования
edykh
 
Регистрация: 14.12.2010
Сообщений: 3

привет всем!

стоит задачка, хочется решить ее с помощью интерфейса ACAD Civil3d 2010

Задача из области геодезии и картографии.
есть рамка топографической карты, реализованная блоком вхождения, являющаяся неким шаблоном.

нужно оформить ей карту, однако, не достаточно просто поместить ее вокруг отрисованного планшета, а необходимо задать ей порядковый номер, который должен дублироваться в шапке рамки , а так же в одной из 9 клеток разграфки снизу рамки....но из-за одной надписи затевать что либо не имеет смысла, помимо этого, вокруг рамки, с четырех сторон, должны стоять номера соседних планшетов, отличающиеся от текущего на одну единицу порядкового номера.

а также в оставшихся 8 клетках должны находиться номера всех 8 квадратных планшетов, окружающих текущий.


много ручного, тупого труда, решил провести автоматизацию.
в язык лезть разбираться пока рановато, да и задача, вроде, с виду не сложная. хочу все неизвестные определить в виде блоков с встроеннными связями, но автокад не дает создавать сложные определения (например, состоящие из стринговых сумм значений полей).


как вы считаете, возможно ли выполнить задачу такими методами?

п.с. автокад вижу вторую неделю, базовыми навыками прогр. обладаю, на не в лиспе, увы.
Просмотров: 3223
 
Непрочитано 14.12.2010, 21:16
#2
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,176


Вообще-то есть Acad MAP. Но если уж пришлось...
1) Создай шаблон (сохрани как файл *.dwt), содержащий блок рамки и тексты, содержащие нижеперечисленные поля. Тексты с полями могут быть атрибутами этого блока, но не должны быть обычными текстовыми примитивами в его составе (иначе подшивка их не подхватит).
2) Создай подшивку. Как - поищи на форуме
3) на основании шаблона создай свои планшеты
4) подключи планшеты в подшивку, и все должно получиться.

Поля:
1) для номера самого планшета - "Подшивка"->"Номер текущего листа"
В контрольной строке "Формула для поля" должно быть видно %<\AcSm Sheet.Number>%
2) для номеров соседних планшетов- "Объекты"->"Формула"
В редактируемом поле для формулы скопировать из буфера %<\AcSm Sheet.Number>% и добавить +1, -1 и др. арифм. операции для вычисления номеров "соседей".
В контрольной строке должно высветится что-то вроде %<\AcExpr (%<\_FldPtr 2080313744>%+1)>%
Цифры автоматически назначаются Акадом, у тебя будут другие.
Удачи!

Последний раз редактировалось kp+, 14.12.2010 в 21:25.
kp+ вне форума  
 
Непрочитано 15.12.2010, 01:19
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Мне кажется, что теме место либо в разделе "AutoCAD", либо в "Вертикальные решения". Но никак не в программировании...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 15.12.2010, 07:38
#4
edykh


 
Регистрация: 14.12.2010
Сообщений: 3


Цитата:
Сообщение от kp+ Посмотреть сообщение
Вообще-то есть Acad MAP. Но если уж пришлось...
1) Создай шаблон (сохрани как файл *.dwt), содержащий блок рамки и тексты, содержащие нижеперечисленные поля. Тексты с полями могут быть атрибутами этого блока, но не должны быть обычными текстовыми примитивами в его составе (иначе подшивка их не подхватит).
2) Создай подшивку. Как - поищи на форуме
3) на основании шаблона создай свои планшеты
4) подключи планшеты в подшивку, и все должно получиться.

Поля:
1) для номера самого планшета - "Подшивка"->"Номер текущего листа"
В контрольной строке "Формула для поля" должно быть видно %<\AcSm Sheet.Number>%
2) для номеров соседних планшетов- "Объекты"->"Формула"
В редактируемом поле для формулы скопировать из буфера %<\AcSm Sheet.Number>% и добавить +1, -1 и др. арифм. операции для вычисления номеров "соседей".
В контрольной строке должно высветится что-то вроде %<\AcExpr (%<\_FldPtr 2080313744>%+1)>%
Цифры автоматически назначаются Акадом, у тебя будут другие.
Удачи!
в целом, мысль ясна. но есть некоторые моменты.
хотел вчера подгрузить скрин, но вспомнил, что этого делать нельзя. по этому попробую на пальцах.

дело в том, что номер текущей рамки(номенклатура листа) определяется по координатам. те выглядить примерно так: 325-567 /это означает в каком квадрате находится планшет 325-первые три цифры х координаты центра планшета, 567-первые три цифры у координаты. из этой зависимости складывается номенклатура соседних листов.

те соседний лист справа - 325-565, а соседний лист сверху - 326-567
в целом-не совсем линейная зависимость для просто вычитания 1. я пробовал реализовать это через формулу, но функция формулы предполагает работу только с численными значениями и никаких строк не позволяет получать.


вот из-за этого и возник ступор.


map-это про map3d?
ссейчас буду смотреть что там есть для решения задачи. вчера, бегло не нашел.


модераторам: не переносите пока что тему, вдруг придется окунуться в прогр.


спасибо!
edykh вне форума  
 
Непрочитано 15.12.2010, 10:41
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,176


Цитата:
хотел вчера подгрузить скрин, но вспомнил, что этого делать нельзя. по этому попробую на пальцах.
Тогда и ответы будут "на пальцах"
Подгрузи dwg-файл с несколькими рамками, где проставлена вся нумерация. Без планшетов, без обозначения объекта и прочих военных тайн. Или сами рамки секретнее того, что обрамляют?

Последний раз редактировалось kp+, 15.12.2010 в 10:47.
kp+ вне форума  
 
Автор темы   Непрочитано 15.12.2010, 11:06
#6
edykh


 
Регистрация: 14.12.2010
Сообщений: 3


дело в том, что они одинаково секретны)

я попробую сделать отрешенный пример
edykh вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Cоздание сложных атрибутов блоков (блоков) с минимальным использованием программирования

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массовое редактирование свойств атрибутов блоков kgb Программирование 11 13.06.2023 14:39
Как поменять цвет атрибутов уже вставленных в чертёж блоков? МишаИнженер Программирование 5 09.10.2012 20:55
Тормозит команда расчленения набора блоков batmax Программирование 4 31.08.2010 17:37