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

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

Неработает lisp в Acad2015

Ответ
Поиск в этой теме
Непрочитано 30.05.2014, 23:25 #1
Неработает lisp в Acad2015
Zydrunas
 
Литва
Регистрация: 29.02.2004
Сообщений: 108

Добры день,

в acad'e 2015 не работает лисп (в версии 2013 всё работает нормально)
работа лиспа:
a) указываем базовую точку
в) указываем другую точку
лисп подсчитывает растояние между точками и вставляет block с значением уровня (atributt)....
в acad'e 2015 просто выводит "0.000"
я сам в Lisp'e нерозбираюсь, может поможете советами, што может быть не так?
Код:
[Выделить все]
 
;		AltUp
(defun C:AltUp ()
   (PlaceAlt "Alt-Up")
);defun AltUp

;		AltDn
(defun C:AltDn ()
   (PlaceAlt "Alt-Dn")
);defun AltDn

;		DefBasePoint
; Global-Variables: BasePoint, BaseAlt
(defun C:DefBasePoint ( / SysVarEcho sValue Message )
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (AcHalt SysVarEcho)
   (setq BasePoint (getpoint "\nNurodykite Bazini Taska: "))
   (setq Message "\nPakartokite arba paspauskite Esc: ")
   (if (= BasePoint nil)
      (while (= BasePoint nil)
         (setq BasePoint (getpoint Message))
      ); While
   ); If
   (setq Message "\nIveskite Bazine Altitude <0.000>: ")
   (setq sValue (strcase(AcInputStr "0.000" Message)))
   (setq BaseAlt (atof sValue))
   (setvar "CMDECHO" SysVarEcho)
   (princ) 
); defun BasPonit

;
;		PlaceAlt
;
(defun PlaceAlt (sBlockName / SysVarEcho iDrawingScale InsPoint sBlockAttr)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (AcHalt SysVarEcho)
   (setq iDrawingScale (AcGetScale))
   (if (or (= BasePoint nil) (= BaseAlt nil)) (c:DefBasePoint))
   (setq sBlockName (strcase sBlockName))
   (setq InsPoint (getpoint BasePoint "\nNurodykite Sekanti Taska: "))
   (setq sBlockAttr (AcStr (CAltValue InsPoint) 2 3))
;   (princ sBlockAttr)
   (AcInBlock1 sBlockName InsPoint iDrawingScale "" 0 sBlockAttr)
   (setvar "CMDECHO" SysVarEcho)
   (princ)    
);defun PlaceAltS

;
;		CAltValue
;
(defun CAltValue (InsPoint / y0 y1 rDistY)
   (setq y0 (nth 1 BasePoint))
   (setq y1 (nth 1 InsPoint))
   (setq rDistY (+ (* (- y1 y0) 0.001) BaseAlt))
);defun CAltValue
P.S.

этот лисп аверно связан с другими лиспами и может проблема в других лиспов (но все остальные у меня работают)....


Спасибо

Изображения
Тип файла: jpg шаг1.jpg (35.4 Кб, 495 просмотров)
Тип файла: jpg шаг2.jpg (29.1 Кб, 474 просмотров)

Просмотров: 8208
 
Непрочитано 02.06.2014, 09:07
#2
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Zydrunas Посмотреть сообщение
этот лисп аверно связан с другими лиспами и может проблема в других лиспов
Тут нужен листинг функции AcInBlock1, скорее всего в ней проблема.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 02.06.2014, 10:24
#3
Zydrunas


 
Регистрация: 29.02.2004
Литва
Сообщений: 108
<phrase 1=


Вот здесь есть функция AcInBlock1


Код:
[Выделить все]
 
AcInBlock
;
(defun AcInBlock (sBlockName InsPoint XScale YScale RotAngle / SysVarEcho)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (command "INSERT" sBlockName InsPoint XScale YScale RotAngle)
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);Defun AcInBlock

; 		AcInBlockOne
;
(defun AcInBlockOne (sBlockName InsPoint / SysVarEcho)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (command "INSERT" sBlockName InsPoint)
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);Defun AcInBlockOne


; 		AcInBlock1
;
(defun AcInBlock1 (sBlockName InsPoint XScale YScale RotAngle BlockAttr1 / SysVarEcho)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (command "INSERT" sBlockName InsPoint XScale YScale RotAngle BlockAttr1)
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);Defun AcInBlock

;		AcDText
;
(defun AcDText (Point1 sTextStyle rTextHeight rRotAngle / SysVarEcho iScale)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 1)
   (AcHalt SysVarEcho)
   (if (= (AcReTextStyle sTextStyle) nil)
      (progn
         (princ (strcat "\nAcError-> AcDraw: Text Style: " sTextStyle " not Found!"))
         (exit)
      )
   );if
   (cond
      ((= Point1 nil)(command "DTEXT" pause rTextHeight rRotAngle))
      ((\= Point1 nil)(command "DTEXT" Point1 rTextHeight rRotAngle))
      (t (princ "\nAcError-> AcDraw: 001"))     
   )
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);defun AcDText

;		AcText
;
(defun AcText (sValue Point1 sTextStyle rTextHeight rRotAngle / SysVarEcho iScale)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (AcHalt SysVarEcho)
   (if (= sValue nil) (setq sValue "?"))
   (if (= (AcReTextStyle sTextStyle) nil)
      (progn
         (princ (strcat "\nAcError-> AcDraw: Text Style: " sTextStyle " not Found!"))
         (exit)
      )
   );if
   (cond 
      ((= Point1 nil)
         (setvar "CMDECHO" 1)
         (command "TEXT" pause rTextHeight rRotAngle sValue)
      )
      ((\= Point1 nil)(command "TEXT" Point1 rTextHeight rRotAngle sValue))
      (t nil)
   )
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);defun AcText

;		AcLeader
;
(defun AcLeader (Point1 Point2 sValue / SysVarEcho)
   (setq SysVarEcho (getvar "CMDECHO"))
   (setvar "CMDECHO" 0)
   (AcHalt SysVarEcho)
; Jeigu nebuvo nurodyti taskai
   (cond
      ((and (= Point1 nil)(= Point2 nil ))
         (setq Point1 (getpoint "\nFrom Point: "))
         (setq Point2 (getpoint Point1 "\nTo Point: "))
     )
      ((and (= Point1 nil)(/= Point2 nil ))
         (setq Point1 (getpoint "\nFrom Point: "))
      )
      (t nil)
   );cond
   (if (or (= sValue "") (= sValue nil))
      (progn
         (print "\nError->Ac-Draw: No Value for Leader...")
         (exit)
      );true
   );if
   (command "LEADER" Point1 Point2 "A" sValue "")        
   (setvar "CMDECHO" SysVarEcho)
   (princ)
);defun AcLeader
Zydrunas вне форума  
 
Непрочитано 02.06.2014, 10:38
#4
Кулик Алексей aka kpblc
Moderator

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


AutoCAD, поди, русский?

----- добавлено через 57 сек. -----
Добавлю: acleader и acText - штатные константы AutoCAD'a, надо бы поменять...

----- добавлено через ~3 мин. -----
Помимо локализации AutoCAD'a и переопределения штатных констант - необходимо прописывать пути, откуда брать блоки.
Далее: нет функции achalt. И какую команду, кстати, вызывать-то надо?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.06.2014, 10:55
#5
Zydrunas


 
Регистрация: 29.02.2004
Литва
Сообщений: 108
<phrase 1=


Пользуюсь английским Autocad'ом
эти коды только часть из множества..... просто если всё выложить будет трудно объяснить как всё "подключить"
пути к блокам укзанны....
как говорил раньше я в самом лиспе не очень розбераюсь, но думаю што здесь што-то не так с атрубутом (текстом) блока уровня в новой версии акада
(как говорил всё прекрасно работает на версии 2013)

"Добавлю: acleader и acText - штатные константы AutoCAD'a, надо бы поменять..."
можете подробнее объяснить?
код функции Achalt

Код:
[Выделить все]
 
;;
; 		AcHalt
;
(defun AcHalt (Echo)
 (defun *error* (msg)
    (princ "\nError: ")
    (princ msg)
    (terpri)
    (princ)
    (setvar "CMDECHO" Echo)
    (princ)
 ) 
);Defun AcProgHalt

Zydrunas вне форума  
 
Непрочитано 02.06.2014, 11:02
#6
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Zydrunas Посмотреть сообщение
можете подробнее объяснить?
Это константы VisualLISP'a. В коде достаточно выполнить замену, например, actext на actext_func (аналогично с acleader).
P.S. Все равно код предоставлен не полностью: нет функций acinputstr, acgetscale. Нет блоков, которые вставляются.
P.P.S. И я не очень понимаю, почему бы не воспользоваться динамическим блоком той же высотной отметки.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2014, 13:12
#7
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Ну что сказать, код весьма запутан... Писал явно инженер, сильно не задумываясь о том, что на другом компьютере будут другие настройки автокада.
Есть сильное подозрение, что нужно пытаться играть со значениями системных переменных ATTDIA и ATTREQ.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 02.06.2014, 13:53
#8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Zydrunas, Сравни значение переменных ATTDIA и ATTREQ в Автокаде версии 2013 ( где все работает) и 2015
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.06.2014, 14:17
#9
6o6ep


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


Подскажите плиз! Так же не работают скрипты lasp'a в 2014 автокаде! В 2013 работают! Выдает ошибку что команда не может выполнена прозрачно, сам же в lisp не разбираюсь! Может есть какие то настройки интерпретатора lisp'a? В чем отличие такое значимое в 2013 и в 2014 Автокаде? За ранее благодарен!
6o6ep вне форума  
 
Непрочитано 02.06.2014, 14:24
#10
Кулик Алексей aka kpblc
Moderator

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


lasp - енто хто?
6o6ep, телепаты давно в бессрочном отпуске. Код в студию.
А вообще-то ищи автора кода и терроризируй его - это будет наиболее простым и внятным решением.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2014, 15:46
#11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


6o6ep,
Возможно еще дело в SECURELOAD. Хотя без кода - это гадание на кофейной гуще
Установи SECURELOAD=0 и проверь еще раз
Почитай Последовательность загрузки приложений в AutoCAD с учетом SECURELOAD
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 02.06.2014, 16:41
#12
Zydrunas


 
Регистрация: 29.02.2004
Литва
Сообщений: 108
<phrase 1=


Цитата:
Сообщение от VVA Посмотреть сообщение
Zydrunas, Сравни значение переменных ATTDIA и ATTREQ в Автокаде версии 2013 ( где все работает) и 2015
autocad 2013 ATTDIA стоит <0> в autocad 2015 ATTDIA стояло <1>
после замены на <0> всё работает и в autocad 2015! УРА! Проблема решена.

Спасибо Вам бальшое VVA!

----- добавлено через ~10 мин. -----
Цитата:
Сообщение от Do$ Посмотреть сообщение
Ну что сказать, код весьма запутан... Писал явно инженер, сильно не задумываясь о том, что на другом компьютере будут другие настройки автокада.
Есть сильное подозрение, что нужно пытаться играть со значениями системных переменных ATTDIA и ATTREQ.
И Вам спасибо, тоже верны путь указали
Zydrunas вне форума  
 
Непрочитано 02.06.2014, 17:41
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Zydrunas, Чтобы в 2016 Автокаде не наступить на эти же грабли замени ф-цию AcInBlock1 этой
Код:
[Выделить все]
;
; 		AcInBlock1
;
(defun AcInBlock1 (sBlockName InsPoint XScale YScale RotAngle BlockAttr1 / SysVarEcho AttDia AttReq)
   (setq SysVarEcho (getvar "CMDECHO")
	 Attdia     (getvar "ATTDIA")
	 Attreq     (getvar "ATTREQ")
	 )
   (setvar "CMDECHO" 0)
   (setvar "ATTDIA" 0)
   (setvar "ATTREQ" 1)
   (command "INSERT" sBlockName InsPoint XScale YScale RotAngle BlockAttr1)
   (setvar "CMDECHO" SysVarEcho)
   (setvar "ATTDIA" Attdia)
   (setvar "ATTREQ" Attreq)
   (princ)
);Defun AcInBlock
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.06.2014, 15:53
#14
6o6ep


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


Уважаемые, ACAD.ADD.rar! Собственно архив всех скриптов!

При загрузке AutoCad -
Утилиты меню AutoCAD загружены. DDCHPROP_12 ("All properties by another entity" button added) loaded.; ошибка: no function definition: BUREAU25:ADD-SOURCE-PATH
no function definition: BUREAU25:ADD-SOURCE-PATH
Код:
[Выделить все]
Команда:
FLAN
 S=983.3619, m=60, R=1966.7238, b=90, a=45, выход за габарит разрешен
Укажите первую точку (Enter - изменить параметры):
Укажите вторую точку:
Удалено зависимостей: 4
Error: no function definition: TANG
Иду в меню-Сервис-AutoLisp- загружаю снова эти приложения
Код:
[Выделить все]
Команда: _appload Успешно загружено файлов: 20.
Команда:    DDCHPROP_12 ("All properties by another entity" button added) loaded.
Команда:
Команда: ; ошибка: no function definition: BUREAU25:ADD-SOURCE-PATH
Команда: ; ошибка: no function definition: BUREAU25:ADD-SOURCE-PATH
Команда:
FLATTEN version 2k.0 loaded.  Type FLATTEN to run it.
Команда:  gabarits-2000 загружен.
Команда:  gabarits-2000 загружен.
Команда:
Команда:
Команда: nadpisi-2000 загружен.
Команда:  outdxf-2000 загружен.
Команда:  outdxf-2000 загружен.
Команда:  outdxf-2000 загружен.
Команда:
Команда:
Команда:  search-2000 загружен.
Команда:
Команда:  ЭСКИЗ загружен.
Команда:
Синхронизация произведена.
Снова пробую:
Код:
[Выделить все]
Команда: flan
 S=983.3619, m=60, R=1966.7238, b=90, a=45, выход за габарит разрешен
Укажите первую точку (Enter - изменить параметры):
Укажите вторую точку:
Удалено зависимостей: 4
DIMASO больше не будет поддерживаться, DIMASSOC присвоено значение 1.
Желаете изменить прототип всех размеров? <N>:
** Эту команду нельзя вызывать прозрачно **
Error: Функция отменена
ATTDIA стоит <0>
SECURELOAD= 1 изменил, на экране стал появляться некий эскиз, но все пропадает после отмены команды!
Оч, прошу помочь разобраться! За ранее благодарен!
6o6ep вне форума  
 
Непрочитано 04.06.2014, 16:01
#15
Кулик Алексей aka kpblc
Moderator

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


Вложения нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.06.2014, 16:46
#16
6o6ep


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


Пардонте - ACAD.ADD.rar (113.5 Кб)
Вложения
Тип файла: rar ACAD.ADD.rar (113.5 Кб, 50 просмотров)
6o6ep вне форума  
 
Непрочитано 04.06.2014, 17:05
#17
Кулик Алексей aka kpblc
Moderator

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


Должен быть подключен диск W: (точнее, каталог w:\acad.add\bureau25\ddchprop), обязан быть каталог на диске D: с определенным именем и т.д. Короче, надо проходить построчно по коду и смотреть, на чем идет "спотык".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.06.2014, 10:42
#18
6o6ep


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Должен быть подключен диск W: (точнее, каталог w:\acad.add\bureau25\ddchprop), обязан быть каталог на диске D: с определенным именем и т.д. Короче, надо проходить построчно по коду и смотреть, на чем идет "спотык".
Все условия соблюдены:
- ** Эту команду нельзя вызывать прозрачно **
Error: Функция отменена
... какая команда?!?! Не могу разобраться, в visual lisp, в анимации просмотрел выполнение, но на каком то этапе скидывается в функцию обработки ошибки! И в лиспе я не влолоку!((((
6o6ep вне форума  
 
Непрочитано 05.06.2014, 10:49
#19
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от 6o6ep Посмотреть сообщение
И в лиспе я не влолоку!((((
Есть выход - http://forum.dwg.ru/forumdisplay.php?f=33
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 05.06.2014, 13:14
#20
6o6ep


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
не располагаю я средствами, помогаю сам безвозмездно!
6o6ep вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Неработает lisp в Acad2015

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
Умер разработчик языка программирования Lisp andr_g LISP 1 27.10.2011 08:36
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19