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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp для англ Autocad не работает для русск autocad

lisp для англ Autocad не работает для русск autocad

Ответ
Поиск в этой теме
Непрочитано 28.05.2007, 07:55 #1
lisp для англ Autocad не работает для русск autocad
Alegzander
 
администрирование
 
Ростов
Регистрация: 24.05.2007
Сообщений: 18

есть модуль на lispe который нормально работает в английских версиях
2004,2006 и неработает в русских 2004,2006.
Когда-то читал что нужно какую-то переменную переопределитьтипа там с "_"или наоборот,- непомню помогите кто знает плиз?
Просмотров: 4233
 
Непрочитано 28.05.2007, 08:19
#2
shnn

Инженер
 
Регистрация: 18.02.2005
Самара
Сообщений: 747


Нужно перед всеми именами команд поставить префикс "_." (нижнее подчеркивание точка)
shnn вне форума  
 
Непрочитано 28.05.2007, 09:01
#3
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Не только перед всеми именами команд, но и перед названиями их опций. Только точку в этом случае ставить не надо.
Profan вне форума  
 
Автор темы   Непрочитано 28.05.2007, 10:32
#4
Alegzander

администрирование
 
Регистрация: 24.05.2007
Ростов
Сообщений: 18


Попробовал почемуто не сработало
выкладываю сам файл . посмотрите пжлст, что я не так делаю?



; Команда отрисовывает массив светильников в указанном
; пользователе прямоугольнике с указанием количества
; горизонтальных и вертикальных рядов
(defun c:svet2(/ pt0 pt1 pt2 pt3 pt4 s osv udel p colsv colg colv x0 y0)
;(setq tipsv (strcat "c:\\acad\\blok\\" tipsv))
;(findfile "c:\\acad\\blok\\"
(setq scal (getreal "\nМасштаб плана : "))
(setq pt1 (getpoint "\n1-я точка периметра : "))
(initget 32)
(setq pt2 (getcorner pt1 "\n2-я точка периметра : "))
(setq pt3 (list (car pt1) (cadr pt2))) ;лев. верх. угол
(setq pt4 (list (car pt2) (cadr pt1))) ;прав. верх угол
(setq s (* (* (distance pt3 pt2) ( / scal 1000)) (*(distance pt1 pt3) ( / scal 1000))))
(prompt "Площадь : ") (princ s)
(setq osv (getint "\nОсвещенность : "))
(setq udel (getreal "\nУдельная мощность : "))
(setq p (getint "\nМощность светильника : "))
(setq colsv (/(* udel 1.8 osv s) (* 1.5 0.6 100 p)))
(prompt "Количество светильников : ") (princ colsv)

(setq colg (getint "\nКоличество горизонтальных рядов : "))
(setq colv (getint "\nКоличество вертикальных рядов : "))

(cond
((and (> colv 1) (> colg 1))
(setq X0 (/(distance pt3 pt2) (+(/ (- colv 1) 0.5) 2))
)
(setq Y0 (/(distance pt1 pt3) (+(/ (- colg 1) 0.5) 2))
)
)
((and (> colv 1) (= colg 1))
(setq X0 (/(distance pt3 pt2) (+(/ (- colv 1) 0.5) 2))
)
(setq Y0 (/(distance pt1 pt3) (* colg 2))
)
)
((and (> colg 1) (= colv 1))
(setq X0 (/(distance pt3 pt2) (* colv 2))
)
(setq Y0 (/(distance pt1 pt3) (+(/ (- colg 1) 0.5) 2))
)
)

((and (= colg 1) (= colv 1))
(setq X0 (/(distance pt3 pt2) (* colv 2))
)
(setq Y0 (/(distance pt1 pt3) (* colg 2))
)
)

)

(setq pt0 (list (+ X0 (car pt1)) (+ Y0 (cadr pt1))
)
)
(command "_.Insert" tipsv pt0 1 1 0)
; (command "‚бв*ўм" "c:\\acad\\blok\\svetll" pt0 1 1 0)
(cond
((and (> colv 1) (> colg 1))
(command "_.array" "L" "" "R" colg colv;+
(/(distance pt1 pt3) (+ (- colg 1) (* 2 0.5)));+
(/(distance pt2 pt3) (+ (- colv 1) (* 2 0.5)))
)
)
((and (> colv 1) (= colg 1))
(command "_.array" "L" "" "R" colg colv;+
(/(distance pt2 pt3) (+ (- colv 1) (* 2 0.5)))
)
)
((and (> colg 1) (= colv 1))
(command "_.array" "L" "" "R" colg colv;+
(/(distance pt1 pt3) (+ (- colg 1) (* 2 0.5)))
)
)
)
;(princ "\nЌ®¬Ґа Ї®¬ҐйҐ*Ёп.") (terpri)
; (command "‚бв*ўм" "c:\\acad\\blok\\nomer" pause 1 1 0)
;(princ "\nЉ®«. ᢥ⨫м*ЁЄ®ў.") (terpri)
; (command "‚бв*ўм" "c:\\acad\\blok\\pust" pause 1 1 0) (princ "\nѓ®в®ў®.") (princ)
(setq pt0 nil pt1 nil pt2 nil pt4 nil osv nil udel nil p nil colsv nil colg nil colv nil x0 nil y0 nil)
);Љ®*Ґж Є®¬**¤л
Alegzander вне форума  
 
Непрочитано 28.05.2007, 10:36
#5
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
          ; Команда отрисовывает массив светильников в указанном
          ; пользователе прямоугольнике с указанием количества
          ; горизонтальных и вертикальных рядов
(defun c:svet2 (/ pt0 pt1 pt2 pt3 pt4 s osv udel p colsv colg colv x0 y0)
          ;(setq tipsv (strcat "c:\\acad\\blok\\" tipsv))
          ;(findfile "c:\\acad\\blok\\"
  (setq scal (getreal "\nМасштаб плана : "))
  (setq pt1 (getpoint "\n1-я точка периметра : "))
  (initget 32)
  (setq pt2 (getcorner pt1 "\n2-я точка периметра : "))
  (setq pt3 (list (car pt1) (cadr pt2))) ;лев. верх. угол
  (setq pt4 (list (car pt2) (cadr pt1))) ;прав. верх угол
  (setq s (* (* (distance pt3 pt2) (/ scal 1000))
             (* (distance pt1 pt3) (/ scal 1000))
             ) ;_ end of *
        ) ;_ end of setq
  (prompt "Площадь : ")
  (princ s)
  (setq osv (getint "\nОсвещенность : "))
  (setq udel (getreal "\nУдельная мощность : "))
  (setq p (getint "\nМощность светильника : "))
  (setq colsv (/ (* udel 1.8 osv s) (* 1.5 0.6 100 p)))
  (prompt "Количество светильников : ")
  (princ colsv)

  (setq colg (getint "\nКоличество горизонтальных рядов : "))
  (setq colv (getint "\nКоличество вертикальных рядов : "))

  (cond
    ((and (> colv 1) (> colg 1))
     (setq x0 (/ (distance pt3 pt2) (+ (/ (- colv 1) 0.5) 2))
           ) ;_ end of setq
     (setq y0 (/ (distance pt1 pt3) (+ (/ (- colg 1) 0.5) 2))
           ) ;_ end of setq
     )
    ((and (> colv 1) (= colg 1))
     (setq x0 (/ (distance pt3 pt2) (+ (/ (- colv 1) 0.5) 2))
           ) ;_ end of setq
     (setq y0 (/ (distance pt1 pt3) (* colg 2))
           ) ;_ end of setq
     )
    ((and (> colg 1) (= colv 1))
     (setq x0 (/ (distance pt3 pt2) (* colv 2))
           ) ;_ end of setq
     (setq y0 (/ (distance pt1 pt3) (+ (/ (- colg 1) 0.5) 2))
           ) ;_ end of setq
     )

    ((and (= colg 1) (= colv 1))
     (setq x0 (/ (distance pt3 pt2) (* colv 2))
           ) ;_ end of setq
     (setq y0 (/ (distance pt1 pt3) (* colg 2))
           ) ;_ end of setq
     )

    ) ;_ end of cond

  (setq pt0 (list (+ x0 (car pt1))
                  (+ y0 (cadr pt1))
                  ) ;_ end of list
        ) ;_ end of setq
  (command "_.Insert" tipsv pt0 1 1 0)
          ; (command "‚бв ўм" "c:\\acad\\blok\\svetll" pt0 1 1 0)
  (cond
    ((and (> colv 1) (> colg 1))
     (command "_.array"
              "_L"
              ""
              "_R"
              colg
              colv ;+
              (/ (distance pt1 pt3) (+ (- colg 1) (* 2 0.5))) ;+
              (/ (distance pt2 pt3) (+ (- colv 1) (* 2 0.5)))
              ) ;_ end of command
     )
    ((and (> colv 1) (= colg 1))
     (command "_.array"
              "_L"
              ""
              "_R"
              colg
              colv ;+
              (/ (distance pt2 pt3) (+ (- colv 1) (* 2 0.5)))
              ) ;_ end of command
     )
    ((and (> colg 1) (= colv 1))
     (command "_.array"
              "_L"
              ""
              "_R"
              colg
              colv ;+
              (/ (distance pt1 pt3) (+ (- colg 1) (* 2 0.5)))
              ) ;_ end of command
     )
    ) ;_ end of cond
  (setq pt0 nil
        pt1 nil
        pt2 nil
        pt4 nil
        osv nil
        udel nil
        p nil
        colsv nil
        colg nil
        colv nil
        x0 nil
        y0 nil
        ) ;_ end of setq
  ) ;_ end of defun
А так? Код я не анализировал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.05.2007, 14:39
#6
Alegzander

администрирование
 
Регистрация: 24.05.2007
Ростов
Сообщений: 18


Спасибо помогло! А вчем засада была?если можно узнать
Alegzander вне форума  
 
Непрочитано 28.05.2007, 14:47
#7
Кулик Алексей aka kpblc
Moderator

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


Сравни вызовы _array у себя и в последнем варианте.
---
Добавлено: я просто сделал то, что сказал Profan.
Сорри, что не написал сразу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.05.2007, 14:54
#8
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Для Alegzander
Видимо, в упор не разглядел сообщение 3.
Profan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > lisp для англ Autocad не работает для русск autocad

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

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