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

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

Привязки линий в ряд

Ответ
Поиск в этой теме
Непрочитано 26.09.2014, 10:50 #1
Привязки линий в ряд
Botticelli
 
Регистрация: 13.10.2011
Сообщений: 19

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

Помогите облегчить жизнь

Вложения
Тип файла: dwg
DWG 2007
2014_09_26_DWG_LINE_DIM.dwg (622.6 Кб, 1393 просмотров)

Просмотров: 3416
 
Непрочитано 26.09.2014, 10:52
#2
Bull

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


Немножко непонятен вопрос. Сделать неравномерный массив автоматом чтоли?

PS Кажись понял (хотя без самого файла понять невозможно, текст ни о чем). Штатной возможности нет, но можно лисп соорудить. Но даже так в итоге получится или тот, или другой вариант, только нажимать надо будет поменьше. Если устраивает, то вопрос надо перенести в ветку "программирование"
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 26.09.2014, 10:55
#3
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Нет. Нужно писать программу.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 12.10.2014, 14:03
#4
Botticelli


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


А Вы не подскажете, кто может помочь написать такой lisp

----- добавлено через ~2 мин. -----
Перенести в вветку програмирования не могу, пишет "нет доступа"
Botticelli вне форума  
 
Непрочитано 13.10.2014, 09:46
#5
Bull

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


Цитата:
Сообщение от Botticelli Посмотреть сообщение
Перенести в вветку програмирования не могу, пишет "нет доступа"
"Пожалуйся" на свое сообщение (красный треугольник), модераторы перенесут
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 14.10.2014, 17:02
#6
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


А вот теперь поясните, какие привязки и куда вы вбиваете. И что собираетесь автоматизировать.
ciril вне форума  
 
Автор темы   Непрочитано 14.10.2014, 23:48
#7
Botticelli


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


Допустим у меня идет кабельная трасса, 4 кабеля.
Мне необходимо дать привязку кабеля, например от здания. (смотреть приложеный файл)
С помощью команды linear dim я могу выставить только одну привязку (смотреть в файле 1 вар.), и так последующии кабеля.
2 вариант, я выставлявляю одну привязку автоматически, а последующия забиваю вручную + ставлю отдельно засечки.
Есть команда dimcontinue, но она дает размер каждому отрезку, а мне нужно в линию через черточку.
Во... вроде как-то описал.
Botticelli вне форума  
 
Непрочитано 15.10.2014, 01:07
#8
Кулик Алексей aka kpblc
Moderator

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


А _.dimbase в принципе не рассматривается?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.10.2014, 11:56
#9
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Код:
[Выделить все]
 (defun c:размряд  (/ x00 x01 x02 x03 x04 x05 x06 x07)
  (vl-load-com)
  (while (not
	   (setq x02 (ssget "_F"
			    (list (setq x00 (getpoint "\nУкажите первую точку линии выделения"))
				  (setq x01 (getpoint "\nУкажите вторую точку линии выделения" (setq x00 (list (car x00) (cadr x00))))))
			    '((-4 . "<or") (0 . "LINE") (0 . "LWPOLYLINE") (-4 . "or>"))))))
  (setq x01 (vlax-ename->vla-object (entmakex (list '(0 . "LINE") (cons 10 x00) (cons 11 x01)))))
  (repeat (setq x03 (sslength x02))
    (setq x04 (list))
    (repeat (/ (length
		 (setq x05 (vlax-safearray->list
			     (vlax-variant-value
			       (vla-intersectwith x01 (vlax-ename->vla-object (ssname x02 (setq x03 (1- x03)))) acextendnone)))))
	       3)
      (setq x04	(append x04 (cons (distance x00 (setq x07 (list (car x05) (cadr x05)))) x07))
	    x05	(cdddr x05)))
    (setq x06 (append x06 (list x04))))
  (setq	x02 ""
	x03 (list)
	x05 (car (last (setq x04 (vl-sort x06 (function (lambda (e00 e01) (> (car e00) (car e01)))))))))
  (repeat (length x04)
    (setq x02 (strcat x02 " -" (rtos (- (caar x04) x05) 2 1))
	  x03 (append x03 (list (cdar x04)))
	  x04 (cdr x04)))
  (setq	x05 1.0 ;высота шрифта
	x06 0.7) ;длина засечки
  (vla-delete x01)
  (entmake (cons '(0 . "TEXT")
		 (mapcar 'cons
			 '(1 50 40 10)
			 (list (substr x02 3 (- (strlen x02) 7))
			       (setq x04 (vla-get-angle x01))
			       x05
			       (polar x00 (+ x04 (/ pi 4)) (* x05 0.2))))))
  (entmakex (list '(0 . "LINE") (cons 10 x00) (cons 11 (car x03))))
  (repeat (length x03)
    (entmakex (list '(0 . "LINE")
		    (cons 10 (polar (car x03) (+ x04 (/ pi 4)) (/ x06 2)))
		    (cons 11 (polar (car x03) (+ x04 (/ (* 5 pi) 4)) (/ x06 2)))))
    (setq x03 (cdr x03)))
  (princ))
(c:размряд)
Ну вот так. Выделяешь по запросу линией указанием точек. Размеры считаются от первого пересечения указанной линии, текст проставляется у первой указанной точки.
ciril вне форума  
 
Автор темы   Непрочитано 15.10.2014, 16:53
#10
Botticelli


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


Спасибо большое, но почем-то не "фунциклирует"
Миниатюры
Нажмите на изображение для увеличения
Название: Untitled.png
Просмотров: 45
Размер:	49.7 Кб
ID:	136811  
Botticelli вне форума  
 
Непрочитано 15.10.2014, 16:57
#11
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


28 строку перенесите перед 42й.
ciril вне форума  
 
Автор темы   Непрочитано 15.10.2014, 17:25
#12
Botticelli


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


Хмм. Чего-то не так.
Я наверное плохо поставил задачу.
Значит так:
1. .....команда должна работать как DIMBASELINE, но размеры ставить не один над другим, а в ряд. Например 3 размера от одной точки /----/--/---/-----4,0-6,0-9,0
2. если передвинуть одну из засечек, то должен поменяться и размер /----/----/-/-----4,0-8,0-9,0
Botticelli вне форума  
 
Непрочитано 15.10.2014, 19:21
#13
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Offtop: Забавно...
В начале темы: помогите, а Вы не подскажете...
Сейчас уже: ставлю задачу
Скоро будет: а ну-ка быстро?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 16.10.2014, 09:05
#14
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Offtop: Do$, ну да, значит так - звучит.
Вам, уважаемый, с такими задачами в поиск исполнителей - желаемая динамика бессмысленна и беспощадна.
ciril вне форума  
 
Автор темы   Непрочитано 16.10.2014, 13:15
#15
Botticelli


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


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

Я же обвинил себя, а не Вас что не правильно сформулировал задачу.

----- добавлено через ~3 мин. -----
Я попробовал Ваш lsp, у меня он просто разбивает размеры на отдельные элементы
Botticelli вне форума  
 
Непрочитано 16.10.2014, 15:35
#16
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


По моему лиспу: он не создает размеров вообще, а просто создает полилинию выноски, набор отрезков - засечек и текст с расстояниями, все это с текущими общими свойствами.
По вашей задаче: дело не в том, что она менялась несколько раз, а в том, что в конце концов выяснилось, что необходимо динамическое изменение содержимого. Подобное может быть реализовано либо динамическим блоком, что само по себе некрасиво, либо тем же набором примитивов, но с расширенными данными и реакторами на команды, что громоздко, либо созданием пользовательского примитива, что влечет за собой дополнительные телодвижения. Иначе говоря, несмотря на в общем-то несложную задачу, ее реализация выходит за рамки безвозмездной помощи и, если это ускорит ощутимо вашу работу, то обращайтесь в ветку поиск исполнителей.
ciril вне форума  
 
Автор темы   Непрочитано 16.10.2014, 19:56
#17
Botticelli


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


Я с удовольствием бы рассмотрел это предложение, хотелось хотябы понять порядок "телодвижения"
Botticelli вне форума  
 
Непрочитано 17.10.2014, 08:46
#18
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Так а ровно так же описываешь задачу, в принципе пост 12 п.1,2 вполне достаточен, добавь только, какие примитивы должны участвовать в образмеривании, на каких слоях они находятся, прикладываешь чертеж примера, как это должно выглядеть в примитивах с нужными высотами текста, слоями, весами линий и ждешь ответа.
ciril вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Привязки линий в ряд



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавиши. Где "хранятся"? Artiznov AutoCAD 40 22.02.2024 11:23
Объединение дуг, линий в единый объект, Как объединить? Vladimir.P AutoCAD 41 25.01.2015 08:03
Как удалить тип линии Tolyanovich AutoCAD 48 20.11.2014 09:24
Можно ли располагать бытовые помещения на стройплощадке в охранной зоне ЛЭП? SPas Технология и организация строительства 22 11.06.2014 10:54
Предложение по автоматизации привязки растра Neznayka Программирование 7 27.01.2012 12:17