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

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

Поиск программы для автоматического выставления размеров в AutoCAD

Ответ
Поиск в этой теме
Непрочитано 04.10.2016, 09:42 #1
Поиск программы для автоматического выставления размеров в AutoCAD
Матрос Д.
 
Регистрация: 04.10.2016
Сообщений: 7

Добрый день!
При работе возникла задача - расставить диагональные размеры между большим количеством точек. В Автокаде есть похожая функция "Быстрый размер", но она выставляет линейные размер вдоль определенной оси (X,Y,Z), а требуются диагональные цепочки.
Просмотров: 5898
 
Непрочитано 04.10.2016, 09:43
#2
Кулик Алексей aka kpblc
Moderator

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


А чем стандартный _.dimaligned не устраивает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.10.2016, 09:57
#3
kp+

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


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
она выставляет линейные размер вдоль определенной оси (X,Y,Z), а требуются диагональные цепочки.
если размеры цепочки параллельны друг другу, просто не по оси мировой системы координат - то ось можно повернуть с помощью пользовательской системы координат.
kp+ вне форума  
 
Автор темы   Непрочитано 04.10.2016, 09:59
#4
Матрос Д.


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


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
А чем стандартный _.dimaligned не устраивает?
Слишком много времени уходит на соединение огромного количества точек, если их 3-4 тыс. и щелкать на каждую и ставить размер, это несколько дней, вот собственно ищу либо программу, либо человека, который смог бы ее написать, чтобы просто выделить все точки, задать отступ от размеров, нажать Enter и все в автоматическом режиме выставится.

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
если размеры цепочки параллельны друг другу, просто не по оси мировой системы координат - то ось можно повернуть с помощью пользовательской системы координат.
В том и дело, что цепочки не прямые, они с изломами, и каждый следующий размер под углом относительно предыдущего.
Матрос Д. вне форума  
 
Непрочитано 04.10.2016, 10:02
#5
kp+

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


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
соединение огромного количества точек
пример бы посмотреть, т.к. не совсем понятно как должны ставиться размеры

Offtop:
Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
чтобы просто выделить все точки, задать отступ от размеров, нажать Enter и все в автоматическом режиме выставится
мечты о большой красной кнопке обычно остаются мечтами
kp+ вне форума  
 
Непрочитано 04.10.2016, 10:02
#6
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


а чем не нравится _qdim
выделил все объекты маской и получил сразу кучу размеров
ssn вне форума  
 
Непрочитано 04.10.2016, 10:06
#7
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
собственно ищу либо программу, либо человека, который смог бы ее написать
С такими запросами ты капитально ошибся разделом. Тебе надо в "Поиск исполнителей".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.10.2016, 10:07
#8
Матрос Д.


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
пример бы посмотреть, т.к. не совсем понятно как должны ставиться размеры
Приложил скриншот. Верхняя цепочка, как должно быть. Нижняя, как делает автокад функцией "Быстрый размер".
Миниатюры
Нажмите на изображение для увеличения
Название: 1234.PNG
Просмотров: 312
Размер:	35.0 Кб
ID:	177202  
Матрос Д. вне форума  
 
Непрочитано 04.10.2016, 10:07
#9
Bull

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


Цитата:
Сообщение от kp+ Посмотреть сообщение
мечты о большой красной кнопке обычно остаются мечтами
Ну, в данном случае может и получи'ться. Сам не программирую, но алгоритм предложу. Первый шаг внутри лиспа (или макроса или ещё чего) - выбор первой группы точек, второй - выбор второй группы точек. После этого код, который в каждом наборе расставляет точки по порядку (по какой-либо координате или ещё как там хочет автор) и выставляет наклонные размеры по цепочке а1-б1, а2-б2 и т.д. Правда, если точки расположены плотно, результат может не устроить наложением размеров друг на друга.

PS Так... Рисунок появился. Вроде как ещё проще - просто последовательная простановка наклонных размеров.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Автор темы   Непрочитано 04.10.2016, 10:08
#10
Матрос Д.


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


Цитата:
Сообщение от ssn Посмотреть сообщение
а чем не нравится _qdim
выделил все объекты маской и получил сразу кучу размеров
см. сообщение №8
Матрос Д. вне форума  
 
Автор темы   Непрочитано 04.10.2016, 10:13
#11
Матрос Д.


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


Цитата:
Сообщение от Bull Посмотреть сообщение
Ну, в данном случае может и получи'ться. Сам не программирую, но алгоритм предложу. Первый шаг внутри лиспа (или макроса или ещё чего) - выбор первой группы точек, второй - выбор второй группы точек. После этого код, который в каждом наборе расставляет точки по порядку (по какой-либо координате или ещё как там хочет автор) и выставляет наклонные размеры по цепочке а1-б1, а2-б2 и т.д. Правда, если точки расположены плотно, результат может не устроить наложением размеров друг на друга.

PS Так... Рисунок появился. Вроде как ещё проще - просто последовательная простановка наклонных размеров.
Просто я даже близко не имею понимания в программировании, но уже сталкивался, что есть умельцы, которые могли бы воплотить в жизнь данную задумку.
Матрос Д. вне форума  
 
Непрочитано 04.10.2016, 10:15
#12
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


это решается только программированием.
ну разве наверно можете скрипт написать, что бы размер проставлялся не по клику в точки, а по выбору их маской. но это всеравно очень много выборов надо сделать.
ssn вне форума  
 
Непрочитано 04.10.2016, 10:24
#13
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
чтобы просто выделить все точки, задать отступ от размеров, нажать Enter и все в автоматическом режиме выставится.
Просто выделить все точки? Тогда размеров получится гораздо больше, чем требуется. Нужно правило для определения начальной и конечной точек размера. Например, полилиния, вершины которой являются этими точками.
Profan вне форума  
 
Автор темы   Непрочитано 04.10.2016, 10:27
#14
Матрос Д.


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Просто выделить все точки? Тогда размеров получится гораздо больше, чем требуется. Нужно правило для определения начальной и конечной точек размера. Например, полилиния, вершины которой являются этими точками.
По аналогии работает мною выше указанная функция "Быстрый размер" _qdim
Матрос Д. вне форума  
 
Непрочитано 04.10.2016, 11:02
1 | #15
kp+

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


Цитата:
Сообщение от Profan Посмотреть сообщение
Например, полилиния, вершины которой являются этими точками.
макрос по образмериванию полилинии
и еще
kp+ вне форума  
 
Непрочитано 04.10.2016, 12:00
1 | #16
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от Матрос Д. Посмотреть сообщение
По аналогии работает мною выше указанная функция "Быстрый размер" _qdim
На твоей картинке нижняя цепочка размеров не соответствует реальному расположению точек. Зачем же липу выкладывать?
Profan вне форума  
 
Автор темы   Непрочитано 04.10.2016, 12:35
#17
Матрос Д.


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
макрос по образмериванию полилинии
и еще
Спасибо. То что нужно!
Матрос Д. вне форума  
 
Непрочитано 04.10.2016, 14:34
#18
frostmourn


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


Немного переделал программу отсюда.
Скорее для пробы - проверок и прочих удобств не предусмотрено.
Код:
[Выделить все]
 
(defun C:PTDim (/ ass adoc csp dim PTlist)
  (prompt "\nSelect Points: ") 
	(setq ass (ssget '((0 . "POINT")))
		adoc (vla-get-ActiveDocument (vlax-get-acad-object))
        csp (vla-ObjectIDToObject adoc (vla-get-OwnerID (vla-item (vla-get-ActiveSelectionSet adoc) 0)))
		PTlist (_GAS_vlasort (_SStoObjects ass))
		PTlist (mapcar 'car PTlist))
	(mapcar
		'(lambda (x y)
			(setq dim (vla-addDimAligned csp
				(vlax-3d-point x)
				(vlax-3d-point y)
				(vlax-3d-point (mapcar '(lambda (q w) (/ (+ q w 1000) 2)) x y)))
			)
			(mapcar '(lambda (a z) (vlax-put-property dim a z))
			  '(TextInsideAlign VerticalTextPosition) (list 0 acAbove))
		)
		PTlist
		(cdr PTlist)
	)
	(princ)
)


(defun _SStoObjects ( ss / i objects )
   (if (eq 'pickset (type ss))
	   (repeat (setq i (sslength ss))
		   (setq objects
			   (cons
				   (vlax-ename->vla-object
					   (ssname ss
						   (setq i (1- i))
					   )
				   )
				   objects
			   )
		   )
	   )
   )
   objects
)


(defun _GAS_vlasort (LST / )
	(vl-sort
		(mapcar
			'(lambda (x)
					(list
						(vlax-safearray->list (vlax-variant-value
								(vlax-get-property
									x
									(if (vlax-property-available-p x 'InsertionPoint)
										'InsertionPoint
										'Coordinates
									)
								)
						))
						x
					)
			)
			LST
		)
		(function
			(lambda (e1 e2)
				(or
					(< (- (caar e1) (caar e2)) -5.0)
					(and
						(equal (caar e1) (caar e2) 5.1)
						(> (- (cadar e1) (cadar e2)) 5.0)
					)
				)
			)
		)
	)
)
frostmourn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поиск программы для автоматического выставления размеров в AutoCAD

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение размеров в Autocad из Excel zenija2007 AutoCAD 9 18.09.2015 12:53
Связь своей программы с AutoCad через OpenGL Golem-iq Программирование 31 15.05.2015 14:03
Различие функции поиск и замена (команда _find) последних версий AutoCad WeMaN AutoCAD 18 30.05.2013 13:40
AutoCad 2013, проблема блок+ассоциативность размеров. Cfytrr AutoCAD 6 31.10.2012 13:31
AutoCAD 2006, 2008. Почему стал преворачиваться текст горизонтальных размеров? SergeyVM AutoCAD 6 08.04.2011 14:11