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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Напишите Лисп

Напишите Лисп

Ответ
Поиск в этой теме
Непрочитано 05.05.2006, 14:31 #1
Напишите Лисп
DANZZ
 
Проектировщик
 
Омск
Регистрация: 05.05.2006
Сообщений: 91

есть блок с атрибутом ТЕКСТ и линеей под текстом, можно ли написать лисп чтоб при наборе текста линия под текстом изменялась в зависимости от длины текста!!!
Просмотров: 6686
 
Непрочитано 05.05.2006, 14:38
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


А зачем лисп?

Для подчеркивания текста в атрибутах достаточно ввести перед текcтом
Хмурый вне форума  
 
Непрочитано 05.05.2006, 15:38
#3
favorite

инженер
 
Регистрация: 05.12.2005
Москва
Сообщений: 425


Интересно всегда думал , как это сделать. Все гениальное просто.
favorite вне форума  
 
Автор темы   Непрочитано 06.05.2006, 05:34
#4
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


%%u - это понятно, но не подходит, нужно чтоб тект и линия были самостоятельными объектами!!!
DANZZ вне форума  
 
Автор темы   Непрочитано 06.05.2006, 11:10
#5
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


неужели так нельзя зделать!!!!!!
DANZZ вне форума  
 
Непрочитано 06.05.2006, 11:18
#6
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от DANZZ
%%u - это понятно, но не подходит, нужно чтоб тект и линия были самостоятельными объектами!!!
А смысл?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.05.2006, 12:00 Привет
#7
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Странно начали называться темы.
НУ ВОТ Б___Я НАПИШИТЕ МНЕ ЛИСП.
И все тут А самим слабо, если просите о помощи то это одно, а вот таким категоричным тоном Я бы не советовал писать тем.
Могу лишь подсказать что это вполне выполнимо,
вариантов с которыми знаком Я 2
1. Это при вводе выполнить подсчет символов текста и в зависимости от этого назначить длину выноски.
2. Это при вводе в уже существующий текст удлинять линию, но тут уже потребуются реакторы, или просто лисп который будет считывать длину текста и ставить под текстом линию.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 06.05.2006, 12:43
#8
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


"А смысл?"

для диномического блока который является выноской
DANZZ вне форума  
 
Непрочитано 06.05.2006, 12:46 Привет
#9
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Слушайте если блок динамический ТО ПРИЧЕМ ТУТ ЛИСП.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 06.05.2006, 12:58
#10
Кулик Алексей aka kpblc
Moderator

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


Если под многострочной выноской подразумевается 1 или 2 строки, то тогда см. реакторы на это дело. Получение строк и междумордие - это уж самостоятельно. Без динамического блока, между прочим
Если под многострочной выноской подразумевается выноска для многослойных конструкций, то это отдельная песня. DEM тут больше подскажет, ЯТД.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.05.2006, 16:15
#11
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


У нас на работе есть кнопочка: жмешь на текст, и он подчеркивается. Очень удобно. Вот этот лисп, правда защищен от чтения, но работающий. Запуск словом UT.
Код:
[Выделить все]
AutoCAD PROTECTED LISP file
zAЧыЩя¬	2DЁfЁ4r?xћXђuЏgєUЉ5BзжьАёF*a?hїЮц?]СВчЃjЮ†Xа…JАДН»53\?{™@е»j±LсЂdиҐ$h±r‹`аёIІMєiѕSТЇdјG®)7XђXЯКµYЬН»iтђOъђSКь—JґAц…nь–_ЧИшџ^Р«lЁ#)5QПї
zђDъ™ZЪРТ…jё 4 eкЎ&4YЬ™R„mЁ0Gа¦cМ“z‘Eя‘E°4<X?:T?1JзЄ!3FШй‡/vџLяљAўbмсУ‡!bж™vґ=X™){Цг?1R„GПТйљDбЇvжныЧ‡fЄuѕ%6LёQ‚%jь‰a*<&lшСѓ'nьЩ“mїgо‘f‚%b·TНхЊmІEЮеџ  `абгзпяЯ—XШШЭЮќ<XюІEЖИЯ–'nьЩ“.|Ш‘&lр’@ф?;VЊ9R„)rД©sЖ*{ЦЌUлљy»W†lЁ!' $hшќRЧЫ—}‰}›ZСѓSю©sЁ&EЗГОґcжныЧЏ?^њ(yшСѓ'nьЩ“.|Ш‘eЇ+'n’jфБІNј7!kяхЛ·Oѕ]љ
4A?1B¤iтЕ«wОµUЮМ№0.0PЂOТаЏ?VАд§($ `Ћ\х§%cМ№S†-zФ‰3F¤>AоёQЉ)r§VЊWвЂO·eкхЛ·Oѕ]љ
4Hёa¶2DЁqВҐkцН»WЋ=Z”	]ц¤iтЕ«›YЖк°
<XШ‘`ЋIІ+cЉ\‘
  `абгзпяЯџqґ( (3vМ±wќTЛ·^њv*9[јY’*tИ±C¦mъХ‹7NЯч¤ІEў6PУУХ‹XжЊUЉ$hгоЧЏ?^њ(pАЎcпХ‹7NјY’*tИ±C®4<PПныЯ‚%	Zя©hрГў`µI»W†0@ГПФяѕ1B¦hхѕ_—,xРЃ#fмщУ‡/~Ь™lЄ:Hљ
4H°AўeкхЛ·Oѕ]љ
<s’T?RкЃ#nнрБАПЛѕTўeкхЛ·Oѕ]љ
4H°Aўeкэ‹eЈ)1Kњ(pАЎcжныЧЏ?^•-z›Q‚u?^ЫЩ№S†-zФ‰3F¬yТ…+vМ±TЗиїuКµK¶MєUЉ5JґIІEЄuКµCхЋiЈMєUЉ5JґIІEЄuКµK¶MєUЉ5JЪг†Aўm©'<WЪ•	7KГҐk™e‹[џ5JґIІEЄuКµK¶MєUЉ5JґIІEЕЭъ№SЋ~“IбгцНФяѕ1Kњ(pАЎcжныЧЏ?^њ(p®Wвег¤&"7N*{ё'RЌ$hрБЈgоэЫ—>\?$hрБМХвеляЊlєxРп‰Rис¬_тЕДЕВ¬S†-zФ‰3F¬yТ…+vМ№S†-sмщУ‡/~Ь™,xРЃ#fмщУЏzљAп°*zЅR®}Ъ•6LёQ‚%jфЙіG®}ЪќHхџNј:: `иакхЁjэТЇЮќ8PЂ!bдйуЗЇЮ•[ДаЇ<QЁqВҐkцН»WЋ=Z”	2DЎcэЫШЧЏo¬6xъХ‹7NјY’*tИ±JґR„fЄuѓaвПї_ћ `абгоэАЎ,>\Пч†a§EЄuКµK¶MєU‚u?XЮЮќnІ6	~™PФМэЫГвЅ>\Мр•Bб°AчЃg«%&%$->\љ2DЁqВҐkцН»_Оп¶eгН»WЋ=Z”  {ЦВгзїr‹pЋ<Xђ"lЁ#)5(xЂsЏqЃ#d”GАоэЏzЊmъђOкјtЃfї_ШЮИя› .~Х‹?nµiыЮ·Oѕ]“5Jы‘oёQЏ?
l¬y‘Kу„bОґI©sѓi¶Mп»\ЛзЕ
Программисты без труда напишут такой, увидев, как этот работает. Если кто попробует, надо сделать чтобы, если текст уже подчеркнут, при клике на него подчеркивание снималось. По этой же схеме можно сделать подчеркивание самостоятельной линией. Временно изменить выравнивание на Fit. Щелкнуть по готовой строке, и программа нарисует линию между грипсами текста. Затем вернет выравнивание.
Vova вне форума  
 
Непрочитано 06.05.2006, 16:34
#12
Кулик Алексей aka kpblc
Moderator

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


> Vova : Таким образом зашифрованные лиспы публиковать не стоит - он грузиться отказался. Лучше запаковать и приложить архив - тогда и поковырять можно будет
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.05.2006, 16:39
#13
Xo66iT

инженер-конструктор
 
Регистрация: 23.09.2004
Москва
Сообщений: 184
<phrase 1=


Помоему есть в даунлоде здесь Работа с текстом называется .

Код:
[Выделить все]
(defun c:text_underline ()
  (print "Выберите строки которые надо подчеркнуть или подчеркнутые строки с которых надо убрать подчеркивание")
  (setq	TextArray (ssget '((0 . "TEXT")))
	TextCount (sslength TextArray)
  )

  (setq	TextNum	0
	SummArray nil
  )

  (repeat TextCount
    (setq CurrText	  (ssname TextArray TextNum)
	  TextBody	  (entget CurrText)
	  oldZnach	  (assoc 1 TextBody)
	  ValueStringType (cdr oldZnach)
	  first3chars     (substr ValueStringType 1 3)
    )

    (if (= first3chars "%%u") (setq ValueStringType (substr ValueStringType 4))
        		      (setq ValueStringType (strcat "%%u" ValueStringType ))		      
    )

    ; модифицируем текстовый примитив
  
    (setq	newZnach (cons 1 ValueStringType)
                TextBody (subst newZnach oldZnach TextBody)
    )
    (entmod TextBody)

    (setq TextNum	  (+ 1 TextNum)) ; счетчик цикла

   
  ) ;end repeat

  (print)				; тихий выход

) ;_ end of defun
Все лежит сдесь http://dwg.ru/dwl/149

Ну это тем кому не надо чтоб текст и линия были примитивами разными))
Xo66iT вне форума  
 
Непрочитано 06.05.2006, 17:07
#14
Кулик Алексей aka kpblc
Moderator

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


Ну раз пошла такая пьянка...
Код:
[Выделить все]
(defun c:ut (/ adoc selset item answer)
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (if (setq selset (ssget '((0 . "TEXT,MTEXT"))))
    (while (and selset (> (sslength selset) 0))
      (setq item (ssname selset 0))
      (ssdel item selset)
      (setq item (vlax-ename->vla-object item))
      (if (/= (strcase (substr (vla-get-textstring item) 1 3) t) "%%u")
	(vla-put-textstring
	  item
	  (strcat "%%u" (vla-get-textstring item))
	  ) ;_ end of vla-put-textstring
	(vla-put-textstring
	  item
	  (vl-string-subst
	    ""
	    "%%u"
	    (vl-string-subst "" "%%U" (vla-get-textstring item))
	    ) ;_ end of vl-string-subst
	  ) ;_ end of vla-put-textstring
	) ;_ end of if
      ) ;_ end of while
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Эх, нет на меня Лентяя и Apelsinov'a - они бы быстро все переделали на vla
---
Добавлено:
Если надо "переподчеркивать" размеры, то потребуется переделка
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.05.2006, 08:19
#15
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


Вообщем дело вот в чем: я создал блок каторый выступает в качестве выноски (нигде ничего подобного не нашел), и хотелось бы чтобы когда вбиваешь текст полка тоже удлинялась автоматически, а не вручную
[ATTACH]1147061992.dwg[/ATTACH]
DANZZ вне форума  
 
Непрочитано 09.05.2006, 17:59 Привет
#16
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Ну ладно вот лови выноску
Там можно конечно кое что дописать
[ATTACH]1147183193.rar[/ATTACH]
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 09.05.2006, 19:35 Привет
#17
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Вот дописал
[ATTACH]1147188920.rar[/ATTACH]
С ВАС БУТЫЛКА
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 09.05.2006, 19:53 Привет
#18
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Вот то же но под редактировано на Языке Патонкоф
[ATTACH]1147190030.rar[/ATTACH]
крЫс глянь по критикуй
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 10.05.2006, 09:02
#19
DANZZ

Проектировщик
 
Регистрация: 05.05.2006
Омск
Сообщений: 91


а можно чтоб дина палки под каждым текстом была разная, т.е в зависимости от длины текста!!!

и кубики можно чтоб были всегда одинаковыми 5х10, текст посередине кубиков и кубики отступали от последней поки на 3мм.

заранее спасибо!!!
DANZZ вне форума  
 
Непрочитано 10.05.2006, 09:13 Привет
#20
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Блина специально придумывал чтобы длины были одинаковые, а размеры купиков соответствовали длине текста.
Да ты сам бы глянул ЛИСП простенький.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Напишите Лисп

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