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

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

Преобразование однострочного текста в многострочный

Ответ
Поиск в этой теме
Непрочитано 24.10.2005, 14:08
Преобразование однострочного текста в многострочный
Sergk
 
инженер-проектировщик
 
Регистрация: 10.03.2005
Сообщений: 54

Такая проблема. Прислали проект, в котором записка , выполненная многострочным текстом взорвана и, естественно, тест стал однострочным. Сейчас необходимо записку править-в виде однострочного текста-проще пойти застрелиться. Отсюда вопрос: каким образом однострочный текст вернуть в многострочный или переконвертировать в любой текстовый редактор?
Просмотров: 98284
 
Непрочитано 26.05.2017, 11:15
#21
alex2214


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Она в ЕТ уже как минимум с 2000 версии.
Это то понятно, а сейчас она в базовой версии, без установки ET. Удобно
alex2214 вне форума  
 
Непрочитано 26.05.2017, 11:16
#22
Кулик Алексей aka kpblc
Moderator

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


Не проверял, но если она такая же, как была и в ЕТ, то чертовски неудобная штука.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.02.2019, 15:45
#23
allar8


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


вот тоже нормальный лиспик
Вложения
Тип файла: lsp t2m.lsp (849 байт, 133 просмотров)
allar8 вне форума  
 
Непрочитано 19.02.2019, 16:53
2 | #24
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от allar8 Посмотреть сообщение
вот тоже нормальный лиспик
... И чем оно отличается от стандартного? По-моему, точно так же последовательность выбора определяет последовательность добавления строк. И вот чего я не увидел - так это того, что будет с новым объектом, если количество символов превысит 255.
Очень давно я сделал альтернативу: https://forum.dwg.ru/showpost.php?p=162618&postcount=21 - но, по-моему, она никому нафиг не упала.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.07.2019, 08:37
#25
allar8


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


Лиспы тут хорошие, но есть у них у всех один недостаток - поля убивают. Мож озадачивался кто этим тоже?
allar8 вне форума  
 
Непрочитано 26.07.2019, 10:31
1 | #26
kp+

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


Цитата:
Сообщение от allar8 Посмотреть сообщение
Лиспы тут хорошие, но есть у них у всех один недостаток - поля убивают. Мож озадачивался кто этим тоже?
в ЛИСПе по ссылке из #24 заменить все vla-get-textstring на vla-fieldcode.
Только что попробовал, работает. Разумеется, поля должны ссылаться на какие-то сторонние объекты, а не на исходные однострочные тексты, из которых клеится Мтекст. И которые после склейки удаляются.
kp+ вне форума  
 
Непрочитано 26.07.2019, 11:02
#27
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
в ЛИСПе по ссылке из #24 заменить все vla-get-textstring на vla-fieldcode.
Только что попробовал, работает. Разумеется, поля должны ссылаться на какие-то сторонние объекты, а не на исходные однострочные тексты, из которых клеится Мтекст. И которые после склейки удаляются.
Спасибо большое!
а вот к вложению в #23 это можно как нить присандалить?
а то в #24 - это аналог, я так понял, экспрессовской команды - она заливает все в один мтекст. Но только экспрессовкая мне больше удобна, если нужно ее именно использование
кстати в каком файле находится txt2mtxt в составе экпресса, не подскажете?
но иногда надо чтобы делались отдельные мтексты из отдельных однострочных текстов
во вложении лисп, который так делает, но в нем нету vla-get-textstring

Последний раз редактировалось allar8, 26.07.2019 в 11:19.
allar8 вне форума  
 
Непрочитано 26.07.2019, 11:18
1 | #28
kp+

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


Цитата:
Сообщение от allar8 Посмотреть сообщение
во вложении лисп, который делает отдельные мтексты из отдельных однострочных текстов, но в нем нету vla-get-textstring
Нету, потому что задача решена другими средствами.

Цитата:
Сообщение от allar8 Посмотреть сообщение
а вот к вложению в #23 это можно как нить присандалить?...
переписать полностью на базе Vla-функций. Наверное, проще как-то перебрать ЛИСП из #24, но заменой одной функции на другую это не ограничится, сам алгоритм работы менять надо.
kp+ вне форума  
 
Непрочитано 26.07.2019, 11:20
#29
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
переписать полностью на базе Vla-функций. Наверное, проще как-то перебрать ЛИСП из #24, но заменой одной функции на другую это не ограничится, сам алгоритм работы менять надо.
Ну или так, Понял. Лан мож разберусь как нить. Спасибо

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
переписать полностью на базе Vla-функций. Наверное, проще как-то перебрать ЛИСП из #24, но заменой одной функции на другую это не ограничится, сам алгоритм работы менять надо.
Мож со стандартной txt2mtxt (она мне больше по душе чем из #24) в составе экпресса такое провернуть? не подскажете в каком файле она находится? - чет не могу найти

----- добавлено через ~12 мин. -----
Кстати в #13 аналог #23 на базе txt2mtxt
Осталось только присандалить vla-fieldcode к txt2mtxt)
Найти бы только киде она и есть ли в ней vla-get-textstring)

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Найти бы только киде она и есть ли в ней vla-get-textstring)
Нашел - но печалька - она в leaderex.arx(((

Последний раз редактировалось allar8, 26.07.2019 в 12:20.
allar8 вне форума  
 
Непрочитано 26.07.2019, 16:36
1 | #30
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


Цитата:
Сообщение от kp+ Посмотреть сообщение
переписать полностью на базе Vla-функций.
Код:
[Выделить все]
 
;*******************************************************************************************************************************
;												    Команда TEXT_TO_MTEXT

;							  	Конвертирует выбранные Текст(ы) в Мультитекст(ы).
;							  	Конвертация определяется выбором текстов. Работает с предварительно
;								выбранными объектами.
;							  	В один многострочный текст ковертируются следующие наборы:
;							  	1. Один текст выбранный указанием на него (он определяет параметры
;							  	   многострочного текста) при остальных, выбранных рамкой/секрамкой.
;                                  Тексты сортируются по дистанции перпендикуляра к напрвлению 
;								   ключевого текста.
;							  	2. Поочерёдно выбранные указанием несколько текстов, при отсутствии
;							  	   в наборе текстов выбранных рамкой/секрамкой. Параметры
;							  	   многострочного текста определяет первый выбранный текст.
;                                  Тексты составляют Мтекст в порядке их выбора.
;							  	Во всех остальных случаях все выбранные тексты конвертируются
;							  	в отдельные Мтексты.

;											  koMon, всё ещё июль 2019, привет Вохе!

;*******************************************************************************************************************************
						  						       (vl-load-com)
;*******************************************************************************************************************************

(defun ssget_text ()
	(while
		(progn
			(setq text_sset (vl-catch-all-apply 'ssget (list "_:L" (list (cons 0 "TEXT")))))
			(cond
				(
				   	(null text_sset)
						t
				)
				(
				   	(vl-catch-all-error-p text_sset)
				   		(setq command_is_active nil)
				)
				(
				   	text_sset
				   		nil
				)
			)
		)
	)
	(if (vl-catch-all-error-p text_sset)
		nil
		text_sset
	)
)

;*******************************************************************************************************************************

(defun sort_text_list (text_list / )
	(foreach text_selected (reverse text_list)
		(cond
		  	(
		  		(= 1 (car text_selected))
		  		   	(setq picked_text_list (cons (cadr text_selected) picked_text_list))
		  	)
		  	(
		  		(not (minusp (car text_selected)))
		  		   	(setq otherwise_selected_text_list (cons (cadr text_selected) otherwise_selected_text_list))
		  	)
		  	(
		  		t
		  	)
		)
	)
)

;*******************************************************************************************************************************

(defun make_text_list (text_sset)
	(setq text_list (vl-remove-if-not '(lambda (list_element)
								     				(and
										  				(not (minusp (car list_element)))
										  				(= "TEXT" (cdr (assoc 0 (entget (cadr list_element)))))
													)
								   			   )
						  		   			   (ssnamex text_sset)
							)
	)
)

;*******************************************************************************************************************************

(defun setting_mtext (text_primitive mtext_object / text_alignment)
	(setq text_object (vlax-ename->vla-object text_primitive)
		  current_text_insertionpoint (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint text_object)))
		  current_text_rotation (vla-get-rotation text_object)
		  current_text_height (vla-get-height text_object)
		  current_text_length (- (caadr (textbox (entget text_primitive))) (caar (textbox (entget text_primitive))))
	)
	(cond
		(
		   	(member (setq text_alignment (vla-get-alignment text_object)) '(0 3 4 5 6))
		   			(vla-put-attachmentpoint mtext_object 1)
		   			(vla-put-insertionpoint mtext_object (vlax-3d-point (polar current_text_insertionpoint (+ (* 0.5 pi) current_text_rotation) current_text_height)))
		)
		(
		   	(member text_alignment '(1))
		   			(vla-put-attachmentpoint mtext_object (cdr (assoc text_alignment '((1 . 2)))))
		   			(setq current_text_alignmentpoint (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint text_object))))
		   			(vla-put-insertionpoint mtext_object (vlax-3d-point (polar current_text_alignmentpoint (+ (* 0.5 pi) current_text_rotation) current_text_height)))
		)
		(
		   	(member text_alignment '(2 8))
		   			(vla-put-attachmentpoint mtext_object 3)
		   			(vla-put-insertionpoint mtext_object (vlax-3d-point (polar
																				(polar current_text_insertionpoint current_text_rotation current_text_length)
																				(+ (* 0.5 pi) current_text_rotation)
																				current_text_height
																		)
		   												  )
		   			)
		)
		(
		   	(member text_alignment '(7 9 10 11))
		   			(vla-put-attachmentpoint mtext_object (cdr (assoc text_alignment '((7 . 2) (9 . 4) (10 . 5) (11 . 6)))))
		   			(vla-put-insertionpoint mtext_object (vla-get-textalignmentpoint text_object))
		)
		(
		   	(member text_alignment '(12))
		   			(vla-put-attachmentpoint mtext_object 7)
		   			(vla-put-insertionpoint mtext_object (vla-get-insertionpoint text_object))
		)
		(
		   	(member text_alignment '(13))
		   			(vla-put-attachmentpoint mtext_object 8)
		   			(vla-put-insertionpoint mtext_object (vlax-3d-point (polar current_text_insertionpoint current_text_rotation (/ current_text_length 2.0))))
		)
		(
		   	(member text_alignment '(14))
		   			(vla-put-attachmentpoint mtext_object 9)
		   			(vla-put-insertionpoint mtext_object (vlax-3d-point (polar current_text_insertionpoint current_text_rotation current_text_length)))
		)
	)
)

;*******************************************************************************************************************************
(defun c:text_to_mtext ( /
										Command_Is_Active Mtext_Dxf_Size Mtext_Dxf_Style Mtext_Object Mtext_Width
										Otherwise_Selected_Text_List Picked_Text_List String_List Text_Dxf Text_List Text_Object Text_Sset
										Current_Text_Height Current_Text_Insertionpoint Half_Current_Text_Length
										Current_Text_Alignmentpoint
										setting_delimiter text_delimiter
										comparison_point
					   )
	(vla-startUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
	(setq picked_text_list '()
		  otherwise_selected_text_list '()
		  command_is_active t
	)
	(cond
	  	(
	  		(setq text_sset (cadr (ssgetfirst)))				;есть предварительный выбор
	  	 		(if (zerop (length (make_text_list text_sset)))
	  				(progn										;в предварительном выборе нет примитивов TEXT
	  					(sssetfirst)
	  					(if (setq text_sset (ssget_text))
	  						(sort_text_list (make_text_list text_sset))
							(setq command_is_active nil)
	  					)
	  				)
	  				(progn										;в предварительном выборе есть примитивы TEXT
	  					(sssetfirst)
	  					(sort_text_list text_list)
	  				)
	  			 )
	  	)
	  	(
	  		t													;нет предварительного выбора
	  			(if (setq text_sset (ssget_text))
	  				(sort_text_list (make_text_list text_sset))
	  			)
	  	)
	)
	(cond
		(
			command_is_active
				(cond
					(
						(or
							(and
								picked_text_list
								(= 1 (length picked_text_list))
								(< 0 (length otherwise_selected_text_list))
							)
							(and
								(< 1 (length picked_text_list))
								(= 0 (length otherwise_selected_text_list))
							)
						)
			   				(setq mtext_width 0.0
			   					  mtext_dxf_size (assoc 40 (entget (car picked_text_list)))
			   					  mtext_dxf_style (assoc 7 (entget (car picked_text_list)))
								  string_list '()
			   				)

							;*******************************************************************************************************************************************

							(if
								(and
									picked_text_list
									(= 1 (length picked_text_list))
									(< 0 (length otherwise_selected_text_list))
								)
									(setq comparison_point (polar (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint (vlax-ename->vla-object (car picked_text_list)))))
																  (+ (* 0.5 pi) (vla-get-rotation (vlax-ename->vla-object (car picked_text_list))))
																  1e8
														   )
										  otherwise_selected_text_list (vl-sort otherwise_selected_text_list
																				'(lambda (text_1 text_2)
																					(>
																						(distance
																						    comparison_point
																							(inters (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint (vlax-ename->vla-object text_2))))
																									(polar (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint (vlax-ename->vla-object text_2))))
																										(vla-get-rotation (vlax-ename->vla-object text_2))
																										1.0
																									)
																									comparison_point
																									(polar comparison_point
																										   (+ (* 0.5 pi) (vla-get-rotation (vlax-ename->vla-object text_2)))
																										   1.0
																									)
																									nil
																							)
																						)
																						(distance
																						    comparison_point
																							(inters (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint (vlax-ename->vla-object text_1))))
																									(polar (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint (vlax-ename->vla-object text_1))))
																										(vla-get-rotation (vlax-ename->vla-object text_1))
																										1.0
																									)
																									comparison_point
																									(polar comparison_point
																										   (+ (* 0.5 pi) (vla-get-rotation (vlax-ename->vla-object text_1)))
																										   1.0
																									)
																									nil
																							)
																						)
																					)
																			)
																	   )
									)
							)

							;*******************************************************************************************************************************************

							(prompt "Нажмите на разделитель текстов. <Enter> или <Space>")
							(while (null setting_delimiter)
								(setq error_ocurred (if (vl-catch-all-error-p (setq gread_data (vl-catch-all-apply 'grread (list t 8 0)))) t nil))
    							(cond
									(
										error_ocurred           																;Esc is pressed
									)
									(
										(equal gread_data (quote (2 32)))  														; delimiter is set to <Space>
											(setq setting_delimiter t
												  text_delimiter " "
											)
									)
									(
										(equal gread_data (quote (2 13)))  														; delimiter is set to <Carrige Return>
											(setq setting_delimiter t
												  text_delimiter "\\P"
											)
									)
									(
										t
									)
								)
							)

							;*******************************************************************************************************************************************

			   				(foreach text_entity (append picked_text_list otherwise_selected_text_list)
			   					(setq string_list (cons (vla-fieldcode (vlax-ename->vla-object text_entity)) string_list)
			   						  string_list (cons text_delimiter string_list)												; putting text delimiter
			   						  text_dxf (subst mtext_dxf_size (assoc 40 (entget text_entity)) (entget text_entity))
			   						  text_dxf (subst mtext_dxf_style (assoc 7 text_dxf) text_dxf)
			   						  mtext_width (max mtext_width (caadr (textbox text_dxf)))                                  ; ширина Мтекста
			   					)
			   				)
			   				(setq string_list (reverse (cdr string_list))
			   					  mtext_object (vla-addmtext (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-3d-point '(0 0 0)) 0 "")
			   				)
			   				(foreach string string_list
			   					(vla-put-textstring mtext_object (strcat (vla-fieldcode mtext_object) string))
			   				)

							;**************************************************
							(setting_mtext (car picked_text_list) mtext_object)
							;**************************************************

			   				(foreach apply_property '(layer linetype lineweight linetypescale truecolor stylename height rotation)
			   					(vl-catch-all-apply (read (strcat "vla-put-" (vl-princ-to-string apply_property)))
			   										(list mtext_object (eval (list (read (strcat "vla-get-" (vl-princ-to-string apply_property))) text_object)))
			   					)
			   				)
			   				(entmod (subst (cons 41 mtext_width) (cons 41 0.0) (entget (vlax-vla-object->ename mtext_object))))
			   				(foreach text_entity (append picked_text_list otherwise_selected_text_list)
			   					(vla-erase (vlax-ename->vla-object text_entity))
			   				)
			   				(vlax-release-object Mtext_Object)
			   				(vlax-release-object Text_Object)
		   					(if (= 1 (length (append picked_text_list otherwise_selected_text_list)))
								(princ "\nТекст конвертирован")
								(princ "\nТексты конвертированы")
							)
					)
					(
						t
							(foreach text_entity (append picked_text_list otherwise_selected_text_list)
			   					(setq mtext_dxf_size (assoc 40 (entget text_entity))
			   						  mtext_dxf_style (assoc 7 (entget text_entity))
			   						  text_dxf (subst mtext_dxf_size (assoc 40 (entget text_entity)) (entget text_entity))
			   						  text_dxf (subst mtext_dxf_style (assoc 7 text_dxf) text_dxf)
			   						  mtext_width (+ 1.0 (caadr (textbox text_dxf)))											; ширина Мтекста
			   					  	  mtext_object (vla-addmtext (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-3d-point '(0 0 0)) 0 (vla-fieldcode (vlax-ename->vla-object text_entity)))
			   					)

								;***************************************
								(setting_mtext text_entity mtext_object)
								;***************************************

			   					(foreach apply_property '(layer linetype lineweight linetypescale truecolor stylename height rotation)
			   						(vl-catch-all-apply (read (strcat "vla-put-" (vl-princ-to-string apply_property)))
			   											(list mtext_object (eval (list (read (strcat "vla-get-" (vl-princ-to-string apply_property))) text_object)))
			   						)
			   					)
			   					(entmod (subst (cons 41 mtext_width) (cons 41 0.0) (entget (vlax-vla-object->ename mtext_object))))
								(vla-erase (vlax-ename->vla-object text_entity))
							)
			   				(vlax-release-object Mtext_Object)
			   				(vlax-release-object Text_Object)
		   					(if (= 1 (length (append picked_text_list otherwise_selected_text_list)))
								(princ "\nТекст конвертирован")
								(princ "\nТексты конвертированы")
							)
					)
				)
		)
		(
			t
			   	(princ "\nВыполнение команды прекращено")
		)
	)
	(vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
	(princ)
)

Последний раз редактировалось koMon, 30.07.2019 в 17:42.
koMon вне форума  
 
Непрочитано 26.07.2019, 18:26
#31
allar8


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


Цитата:
Сообщение от koMon Посмотреть сообщение
Команда TEXT_TO_MTEXT
Спасибо!
жаль только она не работает с #13. Т.е. аналога #23 c полями пока не получилось. В #23 однострочные выбираются рамкой и каждая строка превращается а отдельный мтекст на том же месте
allar8 вне форума  
 
Непрочитано 26.07.2019, 20:02
#32
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


То есть нужно чтобы был выбор:
1. Каждый выбранный однострочный из набора в многострочный
2. Весь набор однострочных в один многострочный
?
koMon вне форума  
 
Непрочитано 26.07.2019, 20:05
#33
allar8


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


Цитата:
Сообщение от koMon Посмотреть сообщение
1. Каждый выбранный однострочный из набора в многострочный
Да, и чтоб не по отдельности тыкать, а рамкой выбрать или из набора все однострочные превратить в отдельные мтексты на том же месте. Аналогично в #23, но там поля убиваются.

Цитата:
Сообщение от koMon Посмотреть сообщение
2. Весь набор однострочных в один многострочный
- нет - это как раз у Вас уже и реализовано - т.е выбираю рамкой и все выбранные в один мтекст превращаются

Последний раз редактировалось allar8, 26.07.2019 в 20:27.
allar8 вне форума  
 
Непрочитано 26.07.2019, 20:28
#34
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


Ну программа же должна быть в каком-то роде универсальной. То есть пользователь запускает программу и выбирает либо 1 либо 2. Да вот ещё нужно добавить опцию сортировки по Y и каретку/пробел для 2.
Всё реализуемо на след. неделе)
koMon вне форума  
 
Непрочитано 26.07.2019, 20:33
#35
allar8


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


Цитата:
Сообщение от koMon Посмотреть сообщение
Ну программа же должна быть в каком-то роде универсальной. То есть пользователь запускает программу и выбирает либо 1 либо 2. Да вот ещё нужно добавить опцию сортировки по Y и каретку/пробел для 2.
Всё реализуемо на след. неделе)
На мой взгляд тут универсальность не нужна - выбор это лишние манипуляции. Лучше две отдельные программы - каждая на свою кнопку будет назначена(вот он выбор)
Ту что вы уже выложили - она свою задачу с заливкой в один мтекст прекрасно выполняет
И нужна еще отдельная программа по п.1 по принципу действия в #23 было бы идеально, если получится
Если у Вас получится - заранее премного благодарен

----- добавлено через ~23 мин. -----
Цитата:
Сообщение от koMon Посмотреть сообщение
TEXT_TO_MTEXT
А что мне в этой программе понравилось - дык это то что она заливает по порядку выбора - это важно. И главное манипуляций минимум

Последний раз редактировалось allar8, 26.07.2019 в 20:56.
allar8 вне форума  
 
Непрочитано 26.07.2019, 21:08
#36
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


Да как оно может не получиться!? Хотя я строго за униаерсальность!)))
Я тут попробовал вставить мтекст, разбить его и соединить своей программой. Это пипец. Как они его взрывают, не понятно. А выбирать дцать строк по порядку ваще не айс.
koMon вне форума  
 
Непрочитано 26.07.2019, 21:20
#37
allar8


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


Цитата:
Сообщение от koMon Посмотреть сообщение
Да как оно может не получиться!? Хотя я строго за униаерсальность!)))
Я тут попробовал вставить мтекст, разбить его и соединить своей программой. Это пипец. Как они его взрывают, не понятно. А выбирать дцать строк по порядку ваще не айс.
Не спорю но для каких то задач и универсальность нужна.
Но лично для моих задач в рамках разных комманд я бы выделил 3 полезных вида пока для меня.
1) Аналог #23 с сохранением полей
2) Ваш вариант - что вы выложили с учетом порядка выбора + если выбирать по отдельности и не заливать в один позиция мтекста сохраняется. в #23 кстати чуть чуть смещается, а в #24 сильно смещается.
3) #24 - быстрая заливка в один мтекст с выбором рамкой и сохранением исходного порядка исходных однострочных текстов

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от koMon Посмотреть сообщение
Я тут попробовал вставить мтекст, разбить его и соединить своей программой. Это пипец. Как они его взрывают, не понятно. А выбирать дцать строк по порядку ваще не айс.
#24 для этой задачи подходит на мой взгляд. Если с полями то с учетом #26 - замены vla-get-textstring на vla-fieldcode.

Последний раз редактировалось allar8, 26.07.2019 в 22:07.
allar8 вне форума  
 
Непрочитано 27.07.2019, 10:37
#38
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


allar8, для написания не китайской программы нужно какое-никакое тз. Без отсылок на существующие программы. Так например в моей программе текст конвертируется в мтекст с сохранением исходного форматирования первого, в то время как в #13 каждому тексту предварительно принудительно присвается левое выравнивание. Ну и т. д. Напишите по пунктам что нужно сделать из чего по каким критериям.
koMon вне форума  
 
Непрочитано 27.07.2019, 13:40
#39
allar8


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


Цитата:
Сообщение от koMon Посмотреть сообщение
allar8, для написания не китайской программы нужно какое-никакое тз. Без отсылок на существующие программы. Так например в моей программе текст конвертируется в мтекст с сохранением исходного форматирования первого, в то время как в #13 каждому тексту предварительно принудительно присвается левое выравнивание. Ну и т. д. Напишите по пунктам что нужно сделать из чего по каким критериям.
Только я говорил не про #13 а про #23.
1) Да согласен в вашей уже программе огромный плюс это сохранение - форматирования и позиции исходного однострочного текста.
Не хватает только выбора рамкой и преобразования каждого однострочного текста в отдельный мтекст.
При выборе рамкой у вас все заливается в один мтекст, причем в обратном порядке - смысл этого мне если честно не понятен, но я ж говорю может у меня просто таких задач нет
Резюмирую.
Хотелось бы чтоб программа умела следующее:
Выбранные рамкой или выбранные любым другим методом однострочные тексты (например быстрым выбором) в одно нажатие превращались каждый в свой мтекст с сохранением позиции и чтоб поля неубивались.
Кстати как раз с сохранением позиции и форматирования в вашей прежней программе нет проблем и это очень круто.
Поясню почему ссылался на #23
Та программа делает то что мне нужно, но убивает поля и немного смещает текст.
В вашей программе уже решены проблемы с полями и сохранением позиции исходного текста, - нету только главного - выбора рамкой и в одно нажатие преобразования каждый однострочный текст в отдельный мтекст
В одно нажатие - имеется ввиду настрою вашу команду на кнопку
allar8 вне форума  
 
Непрочитано 27.07.2019, 18:26
#40
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,679


Цитата:
Сообщение от allar8 Посмотреть сообщение
Только я говорил не про #13 а про #23.
Это я чего-то косякнул)
Цитата:
Сообщение от allar8 Посмотреть сообщение
При выборе рамкой у вас все заливается в один мтекст
Я понял. При выборе секрамкой или рамкой выбор идёт не по ходу пересечения их секрамкой например, а по стеку их в базе. Соответственно при таком выборе и при заливке
выбранных текстов в один мтекст сортировка по Y необходима.
Цитата:
Сообщение от allar8 Посмотреть сообщение
нету только главного - выбора рамкой
Ну это вообще не вопрос)
koMon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Преобразование однострочного текста в многострочный

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