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

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

Преобразование текста в мультивыноску поиск LISPа

Ответ
Поиск в этой теме
Непрочитано 23.11.2018, 09:21 #1
Преобразование текста в мультивыноску поиск LISPа
s4am
 
Регистрация: 30.06.2017
Сообщений: 5

Здравствуйте. Наверное каждый сталкивался с ситуацией когда нужно отредактировать чертежи полученные от смежников которые не особо хорошо разбираются в Autocad. Одна из проблем таких чертежей это выноски сделанные при помощи простых примитивов: линия и текст(однострочный /многострочный). При совмещении нескольких чертежей от разных разделов(инж. сети, отверстия, каркасы и т.д.) на одном плане, выноски с обозначениями разных элементов накладываются друг на друга делая чертеж практически нечитаемым. Редактирование таких чертежей занимает массу времени, растаскивание простых примитивов доставляет большое неудобство. Значительно упростить такую задачу может использование мультивыносок, но не каждый смежник их использует.
Подскажите пожалуйста существует ли LISP который может преобразовать примитив текст(однострочный/многострочный) в мультивыноску? Или может кто сможет написать такой LISP.
Как я для себя понимаю процесс построения:
1.выбор текстового примитива
2.указание местоположения стрелки выноски
3.указание положения полки выноски
Просмотров: 2153
 
Непрочитано 23.11.2018, 09:51
3 | #2
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989


Код:
[Выделить все]
 (defun c:am (/ newleader pt1 pt2 ss txt x w rjp-getbbwdth)
  (vl-load-com)
  (defun rjp-getbbwdth (obj / out ll ur)
    (vla-getboundingbox obj 'll 'ur)
    (setq out (mapcar 'vlax-safearray->list (list ll ur)))
    (distance (car out) (list (caadr out) (cadar out)))
  )
  (if (setq ss (ssget '((0 . "*TEXT"))))
    (progn (setq txt (apply
		       'strcat
		       (mapcar
			 'cdr
			 (vl-sort
			   (mapcar '(lambda (x)
				      (cons (vlax-get x 'insertionpoint)
					    (strcat (vlax-get x 'textstring) " ")
				      )
				    )
				   (setq
				     ss	(mapcar
					  'vlax-ename->vla-object
					  (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
					)
				   )
			   )
			   (function (lambda (y1 y2) (< (cadr (car y2)) (cadr (car y1))))
			   )
			 )
		       )
		     )
		 w   (car (vl-sort (mapcar 'rjp-getbbwdth ss) '>))
		 txt (apply 'strcat
			    (mapcar 'chr (reverse (cdr (reverse (vl-string->list txt)))))
		     )
	   )
	   (mapcar 'vla-delete ss)
    )
  )
  (if (and (setq pt1 (getpoint "\nSpecify leader arrowhead location: "))
	   (setq pt2 (getpoint pt1 "\nSpecify landing location: "))
      )
    (progn (command "._MLEADER" pt1 pt2 "")
	   (setq newleader (vlax-ename->vla-object (entlast)))
	   (vla-put-textstring newleader txt)
	   (vla-put-textwidth newleader w)
    )
  )
  (princ)
)
Nike вне форума  
 
Непрочитано 23.11.2018, 11:58
2 | #3
1958


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


Мой вариант (без проверки правильности выбора):
Код:
[Выделить все]
 (defun c:lead (/ obj txt a pt pt1)
 (setq obj (entget (setq a (car (entsel "Укажите текст >"))))
       txt (cdr (assoc 1 obj))
       pt  (cdr (assoc 10 obj))
       pt1 (getpoint pt "Начало выноски >")
 )
 (vl-cmdf "_.leader" pt1 pt "" txt "")
 (entdel a)
 (princ)
)
1958 вне форума  
 
Непрочитано 23.11.2018, 12:35
1 | #4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена содержимого дробного текста в таблицах AutoCad 2014 viktorgorodn AutoCAD 25 25.09.2020 10:56
Поиск фрагмента текста в текстовых файлах Nike Разное 23 14.05.2019 07:14
Поиск и добавление текста СергейБ AutoCAD 3 05.03.2016 20:33
Преобразование текста в мультивыноску с сохранением поля. shartal Программирование 23 08.12.2015 19:07
Преобразование многострочного текста в блок с атрибутами superkot007 Программирование 16 21.03.2014 15:26