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

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

Требуется помощь,что бы Mleader не опускался

Ответ
Поиск в этой теме
Непрочитано 07.11.2008, 19:04 #1
Требуется помощь,что бы Mleader не опускался
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

я впервые столкнулся с 2009 автокадом и решил попробовать мультивыноски. активно ими пользовался и практически сразу заметил что определенные символы опускают текст на несколько миллиметров , у меня например а(русская прописная), a(английская прописная), и цифра 9, (наблюдается если использовать шрифт gost 2.304 type A , которым я пользовался).Это исправляется если в конце текста добавить 2 строку и изменить высоту этой строки. Так как мультивыносок много, то на исправление вручную уйдет несколько дней. Теперь о макросе.
Далее, собственно, как я вижу предстоящую программу:
-при щелканье на мультиссылке (я знаю что команда ddedit открывает текст мультиссылки для редактирования, хотя текст в мссылке мульти, а не однострочный) что бы в конце текста добавлялись определенные символы (в данном случае переход на другую строку с пробелом, измененной высоты)
Особые пожелания:
-что бы запрашивала прога какие я хочу символы добавлять
-что бы запрашивала прога высоту шрифта добавляемой строки
-что бы можно было сразу кучу мультиссылок исправлять таким образом, а не щелкать отдельно по каждой .
В общем, очень надеюсь на помощь специалистов, ради написания данной програмки сел изучать автолисп, но пока знание довольно сыроваты ) Заранее спасибо
---
Одно из возможных решений (спасибо VVA)

Последний раз редактировалось Кулик Алексей aka kpblc, 08.12.2012 в 22:33.
Просмотров: 29471
 
Непрочитано 08.11.2008, 07:07
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Это объявление о тендере? Тогда кое-чего не хватает, учитывая "особые пожелания".
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 08.11.2008, 16:42
#3
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


нет это не тендер, насколько я понимаю это будет просто набор команд, 1 это ddedit
2 перемещение в конец текста (аналогичное нажатию клавиши end )
3 потом втавка нескольких символов
4 закрытие и сохранение текста
5 множественое выполнение ( как при преобразовании линий в полилинии с помощью pedit с добавкой m)

по моему все просто, хотя я могу заблуждаться.все таки надеюсь на помощь
Composter вне форума  
 
Непрочитано 08.11.2008, 22:36
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Откровенно говоря я не понял точно что нужно - но по моему примерно так:
Код:
[Выделить все]
(defun sstolist (ss / i lst); конвертирует набор в список
(setq i 0)
(if ss
(repeat (sslength ss)
(setq lst (append lst (list (ssname ss i))) i (1+ i))
));end of repeat & if
lst
);end of sstolist

(defun c:test ( / lst str)
(princ "Выберите выноски ")
(setq	lst (sstolist (ssget (list (cons 0 "MULTILEADER"))))
	str (strlen (cdr (assoc 304 (entget (car lst)))))
);end of setq
(command "_ddedit" (car lst) "")

(setq 	str (substr (cdr (assoc 304 (entget (car lst)))) str)
	lst (cdr lst)
);end of setq
(mapcar '(lambda (obj)
(entmod (subst (cons 304 (strcat (cdr (assoc 304 (entget obj))) str)) (assoc 304 (entget obj)) (entget obj)))
);end of lambda
lst)
nil
);end of test
Запускать командой тест.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.11.2008, 09:06
#5
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


Дима_ мож я не понял как именно пользоваться етим.я выделяю кучу mleaderов ,нажимаю ентер, он (lisp) произвольным образов открывает одну из mleaderов для редактирования текста.если ничего ни добавлять а закрыть, то добавиться по 1 символу ко всем выделеным mleaderам , причем етот символ последний в той мультивыноске которую он случайно выбрал для редактирования.
А можно сделать так что бы к всем выделеным мультивыноскам добавлялся текст из буфера?
Composter вне форума  
 
Непрочитано 10.11.2008, 10:38
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Он показывет 1 выбранный - добавляй в конец его нужные символы - аналогичное действие произойдет с остальными.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.11.2008, 14:04
#7
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


может быть я что то не так делаю, прикрепляю файл с результатами.во 2 поле я добавил только цифру 6, а втретьем поле я добавил вторую строку,уменьшенной высоты и смещенную вверх. посмотрите на мои результаты.изменяема ссылка была где надпись Ст.10
Вложения
Тип файла: dwg
DWG 2004
111.dwg (41.7 Кб, 1667 просмотров)
Composter вне форума  
 
Непрочитано 11.11.2008, 06:15
#8
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Composter, я что-то не пойму этих шаманских танцев с бубном. Разве
Цитата:
Underline bottom line и в свойствах Line space style -> Exactly
не помогает?
Я в твоем файле так сделал - текст поднялся.
Вложения
Тип файла: dwg
DWG 2004
222.dwg (46.0 Кб, 1665 просмотров)
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 11.11.2008, 09:17
#9
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


уважаемый wetr , как вы до етого написали Underline bottom line и в свойствах Line space style -> Exactly , у меня почему то не выходит .у меня получаются мультивыноски разной высоты , может я что то не то делаю, подскажите, на всякий случай выкладываю 2 файла.
в первой рамке у мя at least во второй exactly
Миниатюры
Нажмите на изображение для увеличения
Название: 333.jpg
Просмотров: 307
Размер:	11.3 Кб
ID:	12069  
Вложения
Тип файла: dwg
DWG 2004
333.dwg (39.2 Кб, 1658 просмотров)
Composter вне форума  
 
Непрочитано 11.11.2008, 20:24
#10
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Composter, кстати, поднял вопрос, который и меня интересовал. Я тоже обратил внимание на то, что текст то "сползает" ниже, то нормально встаёт. Победить эту ерунду рациональными способами так и не удалось
Цитата:
Это исправляется если в конце текста добавить 2 строку и изменить высоту этой строки.
- этот вариант мне кажется извращенством. Может есть какие-то нормальные способы наведения порядка в мультивыносках?
Серёга - Bilder вне форума  
 
Автор темы   Непрочитано 11.11.2008, 21:34
#11
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


еще есть один вариант,но он еще извращенистей, в 2009 автокаде в редактировании мульти текста есть кнопка paragraf , там выбрать line spacing .для моего 350 шрифта идеально подходит значение 0.725 .но ето еще дольше чем всталять 2 строку.я пытался развиить тему в http://forum.dwg.ru/showthread.php?t...hlight=mleader , но обычными средствами никто не смог помочь
Composter вне форума  
 
Непрочитано 12.11.2008, 02:18
#12
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Composter, наконец-то понял, что ты хочешь
Тебя смущает, что текст на разной высоте от полки? А я то примеряю на себя - для меня главной проблемой было прилипание к полке. А уж если отлипло - то бог с ним на какой высоте болтается этот текст, лиж бы читался. Да и в глаза мне не бросается, что он на разной высоте.
Про добавление текста внижней строке, солидарен с Серёга - Bilder,
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 12.11.2008, 02:30
#13
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Composter Посмотреть сообщение
еще есть один вариант,но он еще извращенистей, в 2009 автокаде в редактировании мульти текста есть кнопка paragraf , там выбрать line spacing .для моего 350 шрифта идеально подходит значение 0.725...
странно, у меня почему-то
Цитата:
кнопка paragraf
в меню неактивна.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 12.11.2008 в 03:04.
wetr вне форума  
 
Непрочитано 12.11.2008, 03:19
#14
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


ОООООООООООООО!
ОТЛИЧНО!
Composter - респект! Нарыл такую настройку!
В окне форматирования текста нажимаем кнопку "Line spacing"-"More"-ставим галочку "paragraf line spacing", "Exactly"-"5". 5 у меня для текста высотой 6. Т.е. коэфициент получается примерно 0,83.
Вот это уже более корректно, нежели добавлять текст внизу. У меня например мекст состоит из 2 или 3 строк. А если внизу уже есть какой-то текст - то это бяка.
Еще плюс варианту от Composter - не надо выставлять "Underline bottom line". Можно и "Underline top line"
Вот если бы эту настройку назначать всем мультилидерам программно! Это было бы полезно многим
Миниатюры
Нажмите на изображение для увеличения
Название: текст_1.jpg
Просмотров: 375
Размер:	29.2 Кб
ID:	12120  Нажмите на изображение для увеличения
Название: текст_2.jpg
Просмотров: 393
Размер:	41.9 Кб
ID:	12121  Нажмите на изображение для увеличения
Название: текст_3.jpg
Просмотров: 502
Размер:	40.8 Кб
ID:	12122  
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 12.11.2008, 03:38
#15
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Диалог программы примерно такой
Введите междустрочный интервал параграфа:...
Выберете выноски <Все>: ...
ОК!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 12.11.2008, 06:01
#16
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Продолжаю ковырять мультилидер.
Залез в свойства
Код:
[Выделить все]
((-1 . <Entity name: 78dd4500>) (0 . MULTILEADER) (330 . <Entity 
name: 7dc0ecf8>) (5 . 611B8) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 
_Выноски) (48 . 100.0) (100 . AcDbMLeader) (300 . CONTEXT_DATA{) (40 . 1.0) (10 
176352.0 4049.28 0.0) (41 . 3.0) (140 . 50.0) (145 . 2.0) (174 . 6) (175 . 6) 
(176 . 2) (177 . 0) (290 . 1) (304 . тарельчатый \Pдюбель) (11 0.0 0.0 1.0) 
(340 . <Entity name: 7dc0c7a0>) (12 176377.0 4052.37 0.0) (13 1.0 0.0 0.0) (42 
. 0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 3) 
(172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 12634016) (291 . 0) (292 . 0) 
(173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 
176403.0 4087.76 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . 
LEADER{) (290 . 1) (291 . 1) (10 176379.0 4049.28 0.0) (11 -1.0 0.0 0.0) (90 . 
0) (40 . 0.0) (304 . LEADER_LINE{) (10 176403.0 4087.76 0.0) (91 . 0) (305 . }) 
(303 . }) (301 . }) (340 . <Entity name: 7dc20a98>) (90 . 17056836) (170 . 1) 
(91 . -1056964608) (341 . <Entity name: 7dc0eca0>) (171 . -2) (290 . 1) (291 . 
1) (41 . 0.0) (342 . <Entity name: 7dc0b770>) (42 . 50.0) (172 . 2) (343 . 
<Entity name: 7dc0c7a0>) (173 . 6) (95 . 6) (174 . 1) (175 . 2) (92 . 
-1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) 
(293 . 0) (294 . 0) (178 . 0) (179 . 3) (45 . 1.0))
Т.е. содержание м.текста содержится здесь
(304 . тарельчатый \Pдюбель)
если применить способ подымания/отрывания м.текста описанный в посте 14, то получается такое форматирование

Код:
[Выделить все]
 \pxse0.83333;тарельчатый 
\ps*;дюбель
Ставните с
Код:
[Выделить все]
тарельчатый \Pдюбель
Т.е. программа должна просто вставлять в м.текст дополнительные символы
Истина где-то рядом
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 12.11.2008, 06:33
#17
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Так выглядит однострочный м.текст с форматированием под м.лидер
Код:
[Выделить все]
\pxse0.83333;Текст
без форматирования
Код:
Offtop: блин, я уже как Supermax становлюсь - один на форуме общаюсь
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 12.11.2008, 08:58
#18
Кулик Алексей aka kpblc
Moderator

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


Удалено как полное фуфло.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 12.11.2008 в 09:07.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.11.2008, 09:01
#19
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


wetr а теперь объясни доступным языком, что ты хотел сказать последними 2 сообщениями?
Composter вне форума  
 
Непрочитано 12.11.2008, 09:08
#20
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Кулик Алексей aka kpblc, в 2008 тоже м.лидер есть
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Требуется помощь,что бы Mleader не опускался

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется восстановить ригель Куртан Конструкции зданий и сооружений 4 13.09.2008 12:05
Требуется ли дымоудаление irwave Прочее. Архитектура и строительство 1 18.03.2007 08:46