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

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

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

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

есть блок с атрибутом ТЕКСТ и линеей под текстом, можно ли написать лисп чтоб при наборе текста линия под текстом изменялась в зависимости от длины текста!!!
Просмотров: 6683
 
Непрочитано 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,833


Цитата:
Сообщение от 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,833


Если под многострочной выноской подразумевается 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,833


> 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,833


Ну раз пошла такая пьянка...
Код:
[Выделить все]
(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 вне форума  
 
Автор темы   Непрочитано 10.05.2006, 09:41
#21
DANZZ

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


глядел, но в лиспе не соображаю, пытался изменить, не получается, синтаксиса не знаю, так то вроде понятно че да как
DANZZ вне форума  
 
Непрочитано 10.05.2006, 09:55 Привет
#22
DEM

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


ЖДУ ФУЛЕР
[ATTACH]1147241792.rar[/ATTACH]
Я там кой чего подправил.
Если захочешь увеличить кубики или уменьшить
по работай со стрками
Код:
[Выделить все]
  (setq pt6 (list  (- (nth 0 pt5) 1) (- (nth 1 pt5) 1) (nth 2 pt5)))
  (setq pt7 (list  (+ (nth 0 pt5) 9) (+ (nth 1 pt5) 4) (nth 2 pt5)))
  (command "_.rectang" pt6 pt7)
 (setq pt5 (list  (+ (nth 0 pt5) 10) (nth 1 pt5) (nth 2 pt5)))
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 10.05.2006, 11:01
#23
Кулик Алексей aka kpblc
Moderator

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


В первом лиспе, который с кубиками (какие кубики, я так и не понял) используется строка
Код:
[Выделить все]
(command "_.text" pt5 2.5 0 t)
(command "_.text" pt5 2.5 0 t)
Вызывает ошибку выполнения - зарезервированный символ t используется не по назначению
Кроме того, у меня полилинии постоянно нулевой ширины, а у тебя они меняются. Вернуть не помешало бы
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.05.2006, 11:38 Привет
#24
DEM

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


Гы крЫс
А у меня все работает
И полилинии по слою выходят
Причем символ t вводится строкой

[/code]
(princ "Введите текст кубика N ")
(princ (itoa step))
(princ ": ")
(setq T (getstring 4 5))
(command "_.text" pt5 2.5 0 T)
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 10.05.2006, 11:57
#25
DANZZ

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


А если выноска в другую сторону, то получается не то!!!
и полки как то странно относительно текста рисуются,

а так то что надо!!!
[ATTACH]1147247869.dwg[/ATTACH]
DANZZ вне форума  
 
Непрочитано 10.05.2006, 12:03 Привет
#26
DEM

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


Ну уж в другую сторону мне если честно в ломы уже писать.
Так просто поставил для себя задачку, решил её и доволен.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 10.05.2006, 13:16
#27
DANZZ

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


а как же выпадающее предупреждение: "Присвоение защищенному символу: Т. Войти в цикл останова?"

как быть с этим, причем иногда выподает, а иногда нет, от чего это зависит?
и полки то не рисуются до конца текста!!!
DANZZ вне форума  
 
Непрочитано 10.05.2006, 13:20 Привет
#28
DEM

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


Добавь в локальные переменные T.
Я по запарке забыл внести.
Чтобы увеличить длину выноски надо в строке
(setq L (* 2 (strlen P)))
Поменять 2 на другое значение
Все будет зависеть от шрифта.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 10.05.2006, 13:24 Привет
#29
DEM

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


Цитата:
Сообщение от DANZZ
а как же выпадающее предупреждение: "Присвоение защищенному символу: Т. Войти в цикл останова?"

как быть с этим, причем иногда выподает, а иногда нет, от чего это зависит?
и полки то не рисуются до конца текста!!!
Вот для этого и надо начинать изучать ЛИСП
Чтобы хотя бы чужие заготовки под себя переделывать.
Хотел еще DCL окно добавить но понял что это вам не пгодойдет.
Уж слишком тяжело будет написть окно для множества значений.
Только ограниченное кол-во строк и кубиков.
Можно будет только блдокировать значения которые вводить не надо.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 10.05.2006, 13:48
#30
DANZZ

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


А где можно литературу найти , желательно бесплатную.
действительно пора начинать изучать!!!
DANZZ вне форума  
 
Непрочитано 10.05.2006, 13:52
#31
Кулик Алексей aka kpblc
Moderator

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


Для начала можно и это (поскольку действительно бесплатно)

Файл vlisptut_rus.pdf (учебное пособие по Visual LISP 2000, сентябрь 1999) доступен по адресам:
http://rapidshare.de/files/19738006/...t_rus.pdf.html
http://webfile.ru/936881 (будет доступен до 13.05.2006 10:1Cool
Объем : 2,2 Мб (на всякий случай повторюсь)

Учебное руководство по VLISP (садовая дорожка) (на русском, из поставки AutoCAD 2006) доступно по адресам:
http://rapidshare.de/files/19738079/acad_alt.chm.html
http://webfile.ru/936884 (будет доступен до 13.05.2006 10:20)
Объем (опять же на всякий случай) : 457 кб.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.05.2006, 14:04
#32
DANZZ

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


спасибо!!!
DANZZ вне форума  
 
Непрочитано 10.05.2006, 14:07
#33
Кулик Алексей aka kpblc
Moderator

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


Текст взят отсюда
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Напишите Лисп

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

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