| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

Изменить точку вставки блока

Ответ
Поиск в этой теме
Непрочитано 04.10.2007, 15:10
Изменить точку вставки блока
Apelsinov
 
Проектировщик ВК. LISP-любитель.
 
Москва
Регистрация: 15.12.2003
Сообщений: 1,192

Есть блок, есть множество вставок этого блока в чертеже.
Необходимо изменить расположение точки вставки блока, но так, чтобы расположение примитивов вставок блока относительно чертежа осталось прежним, то есть - вставки не "уехали" вслед за измененной точкой вставки.

Есть ли способ сделать это иначе, кроме как исправлением точки вставки блока (например - расположение параметра точки вставки в блокэдиторе), и последующим перемещением вставок соответственно смещению точки вставки?
__________________
apel.fas
Просмотров: 37453
 
Непрочитано 21.10.2007, 03:20
#21
Кулик Алексей aka kpblc
Moderator

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


Так и vla-move делает то же самое - перемещает примитивы. И все. А работая внутри описания блока, ты ж меняешь все вхождения этого блока.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.10.2007, 10:46
#22
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Ух блин. О чём вообще сыр-бор? Первый пост уже наверное забыл... Запусти мою программу (№14) на на модели с равными по модулю масштабами - увидишь, что всё работает как задумывалось! А будет желание - сделаю и независимость от масштабов.
Евгений А. вне форума  
 
Непрочитано 21.10.2007, 21:18
#23
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Обновил свою прогу ! (см. пост №14) Сделал, как и грозился (после пива - пробило на подвиги ), независимость от масштабов (чтоб их ...), надеюсь все будут довольны.
Евгений А. вне форума  
 
Непрочитано 01.02.2012, 09:44
#24
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,988


Алексей, что-то код из п.17 не хочет работать, как положено( Точка вставки не перемещается в указанное место.
Может по прошествии лет все уже придумано давно в лучшем виде?
crosandr вне форума  
 
Непрочитано 01.02.2012, 18:18
#25
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


См. п.14 (ps: п.17 - кусок моей программы, Алексей его только поковырял и "испортил")
Евгений А. вне форума  
 
Непрочитано 01.02.2012, 22:50
#26
Кулик Алексей aka kpblc
Moderator

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


Раз испортил, значит, удалить? С меня станется, ты ж знаешь
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.02.2012, 00:22
#27
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


:-) Да пусть будет для истории. Я же в кавычках написал, просто смысл от "ковыряния" исказился от заложенного и результат стал не тот...
а в п.14 есть ссылка на мою готовую прогу и там как раз это - "Может по прошествии лет все уже придумано давно в лучшем виде?".
Евгений А. вне форума  
 
Непрочитано 02.02.2012, 12:30
#28
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,988


Цитата:
Сообщение от Евгений А. Посмотреть сообщение
а в п.14 есть ссылка на мою готовую прогу
Есть, но она компилированая. Исходники принципиально закрыты или лежат в другом месте?
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Раз испортил, значит, удалить?
может подправить лучше?
crosandr вне форума  
 
Непрочитано 02.02.2012, 13:08
#29
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от crosandr Посмотреть сообщение
может подправить лучше
И рад бы, да времени нет совсем
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.02.2012, 23:24
#30
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Ну зачем исходники, если сам подправить не можешь? Выкладывать исходники не хочется, так как это только часть большой программы (проект из 70-80 файлов уже), плюс там у меня уже и диалог в этой функции, и возможность поворота вокруг оси z, наверняка куча связанных функций и выкавыривать их мне совсем нету желания.
Евгений А. вне форума  
 
Непрочитано 11.04.2014, 13:33
#31
kalatravalimitedpro


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


а как сделать так чтобы точка вставки не отображалась при выделении блока как например в блоке "дверь метрическая" ?
kalatravalimitedpro вне форума  
 
Непрочитано 11.04.2014, 13:48
#32
Кулик Алексей aka kpblc
Moderator

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


Точка вставки отображается, просто она совпадает с отображением линейного параметра.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.04.2015, 09:13
#33
WJ.13

из болота тащить бегемота
 
Регистрация: 30.07.2014
Новосибирск
Сообщений: 24
<phrase 1=


Подниму тему. Есть у кого-нибудь действующие решения по сабжу?

з.ы. Ранее опубликованные лиспы выдают ошибки (не работают); программу, выложенную Евгением А. в #14 посте, скачать не могу
WJ.13 вне форума  
 
Непрочитано 22.04.2015, 10:47
1 | #34
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,988


тынц
Вложения
Тип файла: lsp ChangeInsPoint.LSP (14.4 Кб, 59 просмотров)
crosandr вне форума  
 
Непрочитано 22.04.2015, 11:53
1 | #35
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Change Block Base Point

----- добавлено через ~5 мин. -----
Дополнительные функции для работы с блоками
Изменение точки вставки блока
Базовая точка существующего блока
LISP. Изменение базовой точки блока
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 22.04.2015 в 11:58.
VVA вне форума  
 
Непрочитано 21.03.2016, 00:21
#36
tujn08


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


Подскажите пожалуйста- такая проблема.
В блоке есть атрибуты
Переписываю список вставки блока (10 X Y Z) т.е. смещаю точку вставки - обновляю блок. Блок смещается как надо, а атрибуты остаются на месте- помогает только редактор блока и сохранить. Чем лечить?
Vla - функции не использую.
tujn08 вне форума  
 
Непрочитано 21.03.2016, 01:05
#37
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от tujn08 Посмотреть сообщение
Чем лечить?
_.attsync ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2016, 08:31
#38
tujn08


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


помогает, но блок ломается- щас с этим бороться надо (ломается от программы). Имя блока становиться *Uxx. Пропадают параметры расятжения.

задача такая: аналог команды "растянуть" нужно расятгивать блоги. Реализую так: двигаю точку вставки в нужную сторону и меняю параметр растяжения в блоке в противоположную сторону.
Иногда все хорошо работает, а иногда блоки ломаются при чем ломаются не все

Код:
[Выделить все]
 (progn ; если убавляем
	(setq b1 (subst (list '10 (+ (nth 0 pt) zna_E) (nth 1 pt) (nth 2 pt)) (assoc '10 (entget a)) (entget a) )) ; сдвиинули X блока влево
	(entmod b1)	(entupd a) ; обновляем блок
	(LM:setdynpropvalue blk "ширина" (+ zna_x (abs zna_E))) ; прибавили ширину
)
tujn08 вне форума  
 
Непрочитано 21.03.2016, 08:53
#39
Кулик Алексей aka kpblc
Moderator

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


Похоже, ты работаешь "не с тем" описанием блока. Что такое а и как получено? Что такое blk и как получено?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2016, 09:00
#40
tujn08


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


Код:
[Выделить все]
 (setq zna_E (getreal "Сместить на : ")) (terpri)
(setq nab_E (ssget "_C" point_1 point_2 (list (cons 0 "INSERT"))))
(setq
			i_E 0
			b_E (sslength nab_E)
		)
(setq a (ssname nab_E i_E))
(setq pt (cdr (assoc '10 (entget a)))) ; точка вставки блока
			(setq blk (vlax-ename->vla-object a))
			(setq zna_y (LM:getdynpropvalue blk "Длина,мм"))
			(setq zna_x (LM:getdynpropvalue blk "ширина"))

(setq b1 (subst (list '10 (+ (nth 0 pt) zna_E) (nth 1 pt) (nth 2 pt)) (assoc '10 (entget a)) (entget a) )) ; сдвиинули X блока влево
						  	(entmod b1)	(entupd a) ; обновляем блок
							(LM:setdynpropvalue blk "ширина" (+ zna_x (abs zna_E))) ; прибавили ширину

vla-move надо попробовать думаю будет нормально
tujn08 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Изменить точку вставки блока

Размещение рекламы