dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда массив - равномерное распределение с отступом от края

Команда массив - равномерное распределение с отступом от края

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 15.11.2017, 13:59 #1
Команда массив - равномерное распределение с отступом от края
Doctor_Che
 
Регистрация: 27.10.2015
Сообщений: 14

Doctor_Che вне форума Вставить имя

Здравствуйте.
Такая задача - необходимо постоянно расстанавливать светильники по помещениям с известным количесвом рядов, но с неизвестным расстоянием между ними.
Можно ли для автоматизации процесса приспособить команду "массив"? Так что бы указывать противоположные углы помещения и количество строк и столбцов в массиве.
У неня не получается сделать отступ от края массива - первый объект всегда помещается на нём.
Желаемый результат приложил.

Миниатюры
Нажмите на изображение для увеличения
Название: массив.jpg
Просмотров: 50
Размер:	39.6 Кб
ID:	195677  

Просмотров: 1094
 
Непрочитано 15.11.2017, 15:46
#2
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 9,623


в массиве нет отступа. Не знаю как в последующих версиях, а в прямоугольном и интервал заполнения невозможно указать (2013). Только интервал между рядами и столбцами. Или я туплю уже
__________________
Век живи, век учись - ...
Bull на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.11.2017, 16:13
1 | #3
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,604


Цитата:
Сообщение от Doctor_Che Посмотреть сообщение
Такая задача - необходимо постоянно расстанавливать светильники по помещениям с известным количесвом рядов, но с неизвестным расстоянием между ними.
Подобная задача решалась на данном форуме применительно к расстановке пожарных извещателей. Поиск на форуме по запросу "расстановка пожарных извещателей" находит много интересного.
__________________
Кому жизнь буги-вуги, а кому полный бред... (С)
kp+ вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.11.2017, 14:36
#4
Doctor_Che


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Подобная задача решалась на данном форуме применительно к расстановке пожарных извещателей. Поиск на форуме по запросу "расстановка пожарных извещателей" находит много интересного.
Спасибо. Вроде получается.

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

Пока научился вставлять блок из файла с базой блоков такой конструкцией:
Код:
[Выделить все]
 
(VL-CMDF "_.insert" "имя_файла.dwg")
(VL-CMDF)
(VL-CMDF "_.-insert" "имя_блока" <точка_вставки_блока> (GETVAR "dimscale") (GETVAR "dimscale") "")
Doctor_Che вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.11.2017, 16:41
1 | #5
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,172


Цитата:
Сообщение от Doctor_Che Посмотреть сообщение
Как вставить блок не из файла с базой блоков, а из редактируемого файла, где нужный блок уже вставлен и настроен?
Также, только первые две строчки уже не нужны. Третья строка это сделает, если блок уже загружен.
Чтобы каждый раз не вставлять всю базу (а при большом ее размере это небыстро), нужно либо обеспечить ее автоматическую загрузку в начале сеанса, например, добавив в автозагрузку первые две строки кода, либо добавить проверку: если блок есть, то не вставлять. Как вариант:
Код:
[Выделить все]
 (if (null 
		(vla-item 
			(vla-get-blocks 
				(vla-get-activedocument (vlax-get-acad-object))
			)
			"имя_блока"
		)
	)
	(progn
		(vl-cmdf "_.insert" "имя_файла.dwg")
		(vl-cmdf)
	)
)
Не забыть надо, разумеется, и про (vl-load-com).
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.11.2017, 17:35
#6
Doctor_Che


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


Пытаюсь двигать дальше.

Идея такая
- на чертеже уже есть блок светильника с атрибутом "МОЩНОСТЬ"
- указываю на необходимый блок, считываю его имя и значение атрибута
- вставляю новый блок, такой же с таким же значением атрибута

Нашёл похожий код, но не работает как надо. Заменил в нём одну строку - начал нормально считывать имя блока и вставлять, но не считывает атрибут.

Код:
[Выделить все]
 
(vl-load-com)  ; загружаем функции расширения 
    (setq obj (car (entsel "\nВыберите блок: ")))
    (if (not (= obj nil)) 
    	(progn
    		(setq vla_obj (vlax-ename->vla-object obj))  		; переводим в vla-object
    		(setq P (vlax-ldata-get vla_obj "МОЩНОСТЬ"))      	; извлечение значения атрибута "мощность" 
    		;(setq block_name (cdr (assoc 2 (entget obj)))) 		; имя блока
    		(setq block_name (vla-get-EffectiveName (vlax-ename->vla-object obj))); извлекаем имя блока
    		(command "_insert" block_name IP (GETVAR "dimscale") (GETVAR "dimscale") 0 P)  ; вставка блока
    	);end progn
    ); end if 
Doctor_Che вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.11.2017, 18:22
#7
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепропетровск
Сообщений: 3,604


vlax-ldata-get работает не с атрибутами, а с общим словарем чертежа. Список атрибутов извлекает метод GetAttributes. Если комментарии не Ваши, а из исходного кода, то они ввели Вас в заблуждение.
Код:
[Выделить все]
(setq atrs (vlax-invoke vl-block 'Getattributes))
выдает список атрибутов как vla-объектов
vla-Getattributes выдает массив, с которым в лиспе еще надо повозиться.
__________________
Кому жизнь буги-вуги, а кому полный бред... (С)
kp+ вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 17.11.2017, 09:13
#8
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 9,623


тема плавно перетекла в "программирование". Может и переместить туда?
__________________
Век живи, век учись - ...
Bull на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 17.11.2017, 09:16
#9
Кулик Алексей aka kpblc
Moderator

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


Перенес пока в "Просто программирование", без привязки к языку.

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
vlax-ldata-get работает не с атрибутами, а с общим словарем чертежа.
Вообще-то не обязательно со словарем чертежа, насколько я помню. Со словарем объекта, скорее. Но могу ошибаться.
Цитата:
Сообщение от kp+ Посмотреть сообщение
vla-Getattributes выдает массив, с которым в лиспе еще надо повозиться.
А чего с ним возиться? Все просто как топор ))
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда массив - равномерное распределение с отступом от края

Cкидки на VetCAD++
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать массив элементов по определенному пути? rj45 SolidWorks 7 25.06.2017 18:14
Как правильно выполняется отступ края гр.подушки по низу от края фундамента? _u4enik_ Основания и фундаменты 14 26.04.2013 11:36
Минимальные расстояния между болтами и от болта до края по фланцевых соединениях. eilukha Конструкции зданий и сооружений 4 16.08.2012 11:14
команда аналогичная BURST в autodesk architectural desktop 2011 Vombat Вертикальные решения на базе AutoCAD 4 26.11.2010 14:00
отступ от края сваи до края ростверка? nado Основания и фундаменты 17 08.06.2010 20:38

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||