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

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

При переходе с 2006 акада на 2013 перестал работать LISP сечения грунта по полилинии.

Ответ
Поиск в этой теме
Непрочитано 21.09.2018, 17:47 #1
При переходе с 2006 акада на 2013 перестал работать LISP сечения грунта по полилинии.
4eh
 
Регистрация: 07.09.2005
Сообщений: 97

При переходе с 2006 акада на 2013 перестал работать лисп, рисующий штриховку земли в разрезе по полилинии. По линии рисует.
т.е. рисуешь контур земли в разрезе и при запуске лиспа выбираешь эту полилинию, задаешь высоту штриховки и с какой стороны линии ты хочешь ее показать.
И получаешь штриховку по форме линии.
Я не помню, как попал ко мне этот лисп, но он мне всегда нравился.
Подскажите, пожалуйста, что изменилось и как это можно исправить.
Очень надеюсь, что создал тему в нужном месте

Код:
[Выделить все]
   (progn
(defun c:ear(/ Earth_SIZE SEL PL_NAME PL_NAME1 ENTLIST PL_TYPE POINTLIST POINTLIST1 POINTLIST2 STARTP ENDP STARTP1 ENDP1 STARTP2 ENDP2 SIDEP PLINE_ENTITY)

(setq old_layer (getvar "clayer"))
(if (tblsearch "LAYER" "hatch")
        (command "layer" "s" "hatch" "")
        (command "layer" "m" "hatch" "")
)
  (defun *error* (s)
    (if ( not (equal s "concole break"))
      (progn
         (setq Earth_SIZE nil SEL nil PL_NAME nil PL_NAME1 nil ENTLIST nil PL_TYPE nil POINTLIST nil POINTLIST1 nil POINTLIST2 nil STARTP nil ENDP nil STARTP1 nil ENDP1 nil STARTP2 nil ENDP2 nil SIDEP nil PLINE_ENTITY nil)
         (setvar "BLIPMODE" OLD_BLIPMODE)
         (setvar "OSMODE" OLD_OSMODE)
         (setvar "CMDECHO" OLD_CMDECHO)
         (princ)
      )
    )  
  )
  (setq OLD_CMDECHO (getvar "CMDECHO" ))
  (setq OLD_BLIPMODE (getvar "BLIPMODE" ))
  (setq OLD_OSMODE (getvar "OSMODE"))
  (setvar "CMDECHO" 0)
  (setvar "BLIPMODE" 0)
  (initget 7)
  (setq Earth_SIZE (getdist "\nEnter earth line size:"))
  (setvar "OSMODE" 0)

  (setq SEL (entsel "\nSelect pline or line :"))

  (while SEL
  (if SEL
    (progn
      (setq PL_NAME (car SEL))
      (setq ENTLIST (entget PL_NAME))
      (setq PL_TYPE (cdr (assoc 0 ENTLIST)))
      (if (equal PL_TYPE "POLYLINE")
        (progn
          (setq POINTLIST1 (go_pline PL_NAME))
          (setq POINTLIST1 (reverse POINTLIST1))
          (setq PL_NAME1 PL_NAME)

          (setq STARTP1 STARTP)
          (setq ENDP1 ENDP)
          (setq SIDEP (car (cdr SEL)))
          (setq SIDEP (polar SIDEP (/ -3.2416 2) (/ Earth_SIZE 2.0)))

          (command "offset" Earth_SIZE SEL SIDEP "")
          (setq PL_NAME (entlast))
          (setq POINTLIST2 (go_pline PL_NAME))
          (setq PL_NAME2 PL_NAME)
          (setq STARTP2 STARTP)
          (setq ENDP2 ENDP)  
          (command ".line" STARTP1 STARTP2 "")
          (setq LINE_NAME1 (entlast))
          (command ".line" ENDP1 ENDP2 "")
          (setq LINE_NAME2 (entlast))
          (pp)
          (setq PLINE_ENTITY (entlast))
          (if PLINE_ENTITY
            (progn
		(command "MEASUREMENT" 1)
              (command ".HATCH" "earth" 5 45 PLINE_ENTITY "")
              (entdel PLINE_ENTITY)
            )
            (prompt "\nError.")
          )   
          (entdel PL_NAME2)
          (entdel LINE_NAME1)
          (entdel LINE_NAME2)
          (redraw PL_NAME1 1)
          (setq SEL nil)
        )
      ); end if pline
      (if (equal PL_TYPE "LINE")
        (progn
          (setq STARTP1 (cdr (assoc 10 ENTLIST)))
          (setq ENDP1 (cdr (assoc 11 ENTLIST)))
          (initget 1)
          (setq SIDEP (getpoint "\nSide?:"))
          (command "offset" Earth_SIZE SEL SIDEP "")
          (setq LINE_NAME2 (entlast))
          (setq ENTLIST (entget LINE_NAME2))
          (setq STARTP2 (cdr (assoc 10 ENTLIST)))
          (setq ENDP2 (cdr (assoc 11 ENTLIST)))
          (if (inters STARTP1 ENDP2 ENDP1 STARTP2)
            (command ".pline" STARTP1 ENDP1 ENDP2 STARTP2 "c")
            (command ".pline" STARTP1 ENDP1 STARTP2 ENDP2 "c")
          )
          (setq PLINE_ENTITY (entlast))
          (if PLINE_ENTITY
            (progn
		(command "MEASUREMENT" 1)
              (command ".HATCH" "earth" 5 45 PLINE_ENTITY "")
              (entdel PLINE_ENTITY)
            )
            (prompt "\nError.")
          )   
          (entdel LINE_NAME2)
          (redraw PL_NAME 1)
          (setq SEL (entsel "\nSelect pline :"))
        )
      )
    )
    (prompt "\nObject not found...")
  )

  ) ; end of while
  (setvar "CMDECHO" OLD_CMDECHO)
  (setvar "BLIPMODE" OLD_BLIPMODE)
  (setvar "OSMODE" OLD_OSMODE)
  (princ)
)

(defun go_pline(PL_NAME / TEMPNAME TEMPLIST VERTNAME VERTLIST VERTTYPE COUNTER VERTP)
  (setq TEMPNAME PL_NAME)
  (setq TEMPLIST (entget TEMPNAME))
  (setq VERTNAME (entnext TEMPNAME))
  (setq VERTLIST (entget VERTNAME))
  (setq VERTTYPE (cdr (assoc 0 VERTLIST)))
  (setq COUNTER 0)
  (while (not (equal VERTTYPE "SEQEND"))
    (setq VERTP (cdr (assoc 10 VERTLIST)))
    (setq VERTP (list (car VERTP) (car (cdr VERTP))))    (command VERTP)
    (setq COUNTER (+ COUNTER 1))
    (if (equal COUNTER 1)
      (progn
        (setq STARTP VERTP)
        (setq POINTLIST (list STARTP))
      )
      (setq POINTLIST (cons VERTP POINTLIST))
    )
    (setq VERTNAME (entnext VERTNAME))
    (setq VERTLIST (entget VERTNAME))
    (setq VERTTYPE (cdr (assoc 0 VERTLIST)))
  ); end while
  (setq ENDP VERTP)
  (setq P POINTLIST)
)
(defun pp()
  (command ".pline")
  (foreach k pointlist1 (command k))
  (foreach k pointlist2 (command k))
  (command "c")
))
(setvar "clayer" old_layer)
  
(princ                                                                      
  "\n\tC:Earth loaded.  Start command with ear.")                           
(princ) 
Просмотров: 2173
 
Непрочитано 21.09.2018, 19:20
#2
Кулик Алексей aka kpblc
Moderator

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


Наверное, ACAD локализованный?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.09.2018, 20:12
#3
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


Что значит локализованный? Вот сегодня пробовал на 2016, тоже самое.
Линию запросто делает. А на полилинии виснет, зараза.
4eh вне форума  
 
Непрочитано 21.09.2018, 20:21
#4
crossing


 
Регистрация: 19.07.2018
Сообщений: 3,081


Цитата:
Сообщение от 4eh Посмотреть сообщение
Что значит локализованный?
Версия акада русифицированная - переведена под русскоязычный интерфейс.
crossing вне форума  
 
Автор темы   Непрочитано 21.09.2018, 20:36
#5
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


нет-нет, ни в коем случае. только английская купленная лицензионная версия и винда английская

Так что по коду не так?
4eh вне форума  
 
Непрочитано 21.09.2018, 20:50
#6
Кулик Алексей aka kpblc
Moderator

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


Ты чего-то там капитально напутал.
Во-первых, строка (setvar "clayer" old_layer) находится вне тела функции
Во-вторых, эта строка вообще не должна работать в таком виде: old_layer - функция, и ее надо вызывать.

P.S. Разбираться с кодом более подробно не стану, поскольку лично я делал бы вообще по-другому, с минимальной привязкой к локализации.
P.P.S. За глобальное переопределение обработчика ошибок убил бы!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.09.2018, 00:22
#7
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


Ребята это не мой лисп, я же говорил. К моему большому сожалению, я не умею писать лиспы.
Пользователь я. А откуда он у меня уже и не помню.
Цитата:
Разбираться с кодом более подробно не стану, поскольку лично я делал бы вообще по-другому, с минимальной привязкой к локализации.
А можно узнать, как по другому? Кто-нибудь может помочь?
4eh вне форума  
 
Непрочитано 22.09.2018, 04:28
#8
1958


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


При отрисовке топографических планов у меня имеется куча лиспов. Выдрал кусок и оформил его, который может вам помочь. Попробуйте.
(см. Чертеж1.dwg)
Код:
[Выделить все]
 ;;;штрихование линии вдоль одной стороны
(defun c:h2l (/)
 (setq sf    1.0 ; sf - масштаб чертежа (0.5, 1.0, 2.0...)
       h_pat (getreal "Ширина штриховки?") ; h_pat - ширина штриховки
       n_pat "ИИ_водная_поверхность" ; n_pat - имя штриховки
 ) 
 (setq count    (car (entsel "Укажите берег >")) ; линия штриховки
       ss_count (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count)))
       en1      (vlax-ename->vla-object count)
       en2      (vlax-ename->vla-object count)
       p_g      (getpoint "Укажите направление штриховки >")
 )
 (vlax-write-enabled-p en1)
 (vlax-method-applicable-p en1 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en1 (- 0 (* sf h_pat)))))
 (setq cur1  (entlast)
       p_c1  (vlax-curve-getClosestPointTo cur1 p_g :vlax-true)
       dist1 (distance p_c1 p_g)
 )
 (vlax-write-enabled-p en2)
 (vlax-method-applicable-p en2 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en2 (+ 0 (* sf h_pat)))))
 (setq cur2  (entlast)
       p_c2  (vlax-curve-getClosestPointTo cur2 p_g :vlax-true)
       dist2 (distance p_c2 p_g)
 )
 (if (< dist1 dist2)
  (progn (setq count1 cur1) (entdel cur2))
  (progn (setq count1 cur2) (entdel cur1))
 )
 (setq ss_count1 (reverse
                  (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count1)))
                 )
 )
 (setq ss_count (append ss_count ss_count1))
 (entdel count1)
 (setq exv (trans (list 0 0 1) 1 0 T)
       GL  (entmakex (append (list (cons 0 "LWPOLYLINE")
                                   (cons 38 (caddr (trans (car ss_count) 1 exv)))
                                   (cons 100 "AcDbEntity")
                                   (cons 100 "AcDbPolyline")
                                   (cons 90 (length ss_count))
                                   (cons 70 1)
                                   (cons 210 exv)
                             )
                             (mapcar '(lambda (p) (cons 10 (trans p 1 exv))) ss_count)
                     )
           )
 )
 (vl-cmdf "_-boundary" pt "")
 (vl-cmdf "_-hatch" "_S" "_L" "" "_P" n_pat sf "0.00" "")
 (entdel GL)
)
 ;|«Visual LISP© Format Options»
(100 1 2 2 nil " " 80 60 0 0 0 nil nil nil T)
;*** НЕ добавляйте текст под комментариями! ***|;
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (41.5 Кб, 12 просмотров)

Последний раз редактировалось 1958, 22.09.2018 в 04:43.
1958 на форуме  
 
Автор темы   Непрочитано 22.09.2018, 18:49
#9
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


Огромное спасибо. Да, все работает

И пару вопросов, если можно:
- могу ли я сразу задать угол и масштаб или аннотативность штриховки?
- можно ли задать ассоциативность к линии, чтобы при изменении самой линии автоматом менялась за ней штриховка?
- можно ли задавать ширину штриховки мышкой, а не только числом?
- этот лисп только для полилинии, да? линию он не берет?

Еще раз спасибо
4eh вне форума  
 
Непрочитано 22.09.2018, 20:20
1 | #10
1958


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


Цитата:
Сообщение от 4eh Посмотреть сообщение
И пару вопросов, если можно:
- могу ли я сразу задать угол и масштаб или аннотативность штриховки?
- можно ли задать ассоциативность к линии, чтобы при изменении самой линии автоматом менялась за ней штриховка?
- можно ли задавать ширину штриховки мышкой, а не только числом?
- этот лисп только для полилинии, да? линию он не берет?
Угол, масштаб, ширина:
Код:
[Выделить все]
 ;;;штрихование линии вдоль одной стороны
(defun c:h2l (/)
 (setq sf    (getreal "Масштаб штриховки?") ; sf - масштаб штриховки (0.5, 1.0, 2.0...)
       a_pat (getstring "Угол штриховки?") ;a_pat - угол штриховки в градусах
       h_pat (getdist "Ширина штриховки?") ; h_pat - ширина штриховки
       n_pat "ИИ_водная_поверхность" ; n_pat - имя штриховки
 )
 (setq count    (car (entsel "Укажите линию >")) ; линия штриховки
       ss_count (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count)))
       en1      (vlax-ename->vla-object count)
       en2      (vlax-ename->vla-object count)
       p_g      (getpoint "Укажите направление штриховки >")
 )
 (vlax-write-enabled-p en1)
 (vlax-method-applicable-p en1 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en1 (- 0 (* sf h_pat)))))
 (setq cur1  (entlast)
       p_c1  (vlax-curve-getClosestPointTo cur1 p_g :vlax-true)
       dist1 (distance p_c1 p_g)
 )
 (vlax-write-enabled-p en2)
 (vlax-method-applicable-p en2 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en2 (+ 0 (* sf h_pat)))))
 (setq cur2  (entlast)
       p_c2  (vlax-curve-getClosestPointTo cur2 p_g :vlax-true)
       dist2 (distance p_c2 p_g)
 )
 (if (< dist1 dist2)
  (progn (setq count1 cur1) (entdel cur2))
  (progn (setq count1 cur2) (entdel cur1))
 )
 (setq ss_count1 (reverse
                  (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count1)))
                 )
 )
 (setq ss_count (append ss_count ss_count1))
 (entdel count1)
 (setq exv (trans (list 0 0 1) 1 0 T)
       GL  (entmakex (append (list (cons 0 "LWPOLYLINE")
                                   (cons 38 (caddr (trans (car ss_count) 1 exv)))
                                   (cons 100 "AcDbEntity")
                                   (cons 100 "AcDbPolyline")
                                   (cons 90 (length ss_count))
                                   (cons 70 1)
                                   (cons 210 exv)
                             )
                             (mapcar '(lambda (p) (cons 10 (trans p 1 exv))) ss_count)
                     )
           )
 )
 (vl-cmdf "_-boundary" pt "")
 (vl-cmdf "_-hatch" "_S" "_L" "" "_P" n_pat sf a_pat "")
 (entdel GL)
)
 ;|«Visual LISP© Format Options»
(100 1 2 2 nil " " 80 60 0 0 0 nil nil nil T)
;*** НЕ добавляйте текст под комментариями! ***|;
Ассоциативности нет, так как нет замкнутости контура. Поэтому тяните вершину линии, потом команды Обрезать/Удлинить.
Построение делается только по полилинии, простые линии (отрезки) я не использую. Переделывать лисп лень.

----- добавлено через ~14 мин. -----
Исправил пару строк, так как ширина штриховки зависела от масштаба.
Код:
[Выделить все]
 ;;;штрихование линии вдоль одной стороны
(defun c:h2l (/)
 (setq sf    (getreal "Масштаб штриховки?") ; sf - масштаб штриховки (0.5, 1.0, 2.0...)
       a_pat (getstring "Угол штриховки?") ;a_pat - угол штриховки в градусах
       h_pat (getdist "Ширина штриховки?") ; h_pat - ширина штриховки
       n_pat "ИИ_водная_поверхность" ; n_pat - имя штриховки
 )
 (setq count    (car (entsel "Укажите линию >")) ; линия штриховки
       ss_count (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count)))
       en1      (vlax-ename->vla-object count)
       en2      (vlax-ename->vla-object count)
       p_g      (getpoint "Укажите направление штриховки >")
 )
 (vlax-write-enabled-p en1)
 (vlax-method-applicable-p en1 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en1 (- 0 h_pat))))
 (setq cur1  (entlast)
       p_c1  (vlax-curve-getClosestPointTo cur1 p_g :vlax-true)
       dist1 (distance p_c1 p_g)
 )
 (vlax-write-enabled-p en2)
 (vlax-method-applicable-p en2 'Offset)
 (vl-catch-all-apply '(lambda () (vla-offset en2 (+ 0 h_pat))))
 (setq cur2  (entlast)
       p_c2  (vlax-curve-getClosestPointTo cur2 p_g :vlax-true)
       dist2 (distance p_c2 p_g)
 )
 (if (< dist1 dist2)
  (progn (setq count1 cur1) (entdel cur2))
  (progn (setq count1 cur2) (entdel cur1))
 )
 (setq ss_count1 (reverse
                  (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget count1)))
                 )
 )
 (setq ss_count (append ss_count ss_count1))
 (entdel count1)
 (setq exv (trans (list 0 0 1) 1 0 T)
       GL  (entmakex (append (list (cons 0 "LWPOLYLINE")
                                   (cons 38 (caddr (trans (car ss_count) 1 exv)))
                                   (cons 100 "AcDbEntity")
                                   (cons 100 "AcDbPolyline")
                                   (cons 90 (length ss_count))
                                   (cons 70 1)
                                   (cons 210 exv)
                             )
                             (mapcar '(lambda (p) (cons 10 (trans p 1 exv))) ss_count)
                     )
           )
 )
 (vl-cmdf "_-boundary" pt "")
 (vl-cmdf "_-hatch" "_S" "_L" "" "_P" n_pat sf a_pat "")
 (entdel GL)
)
 ;|«Visual LISP© Format Options»
(100 1 2 2 nil " " 80 60 0 0 0 nil nil nil T)
;*** НЕ добавляйте текст под комментариями! ***|;

Последний раз редактировалось 1958, 22.09.2018 в 20:36.
1958 на форуме  
 
Автор темы   Непрочитано 23.09.2018, 01:15
#11
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


Блеск.. Разобрался. То, что надо.
Спасибо большое
4eh вне форума  
 
Непрочитано 23.09.2018, 04:39
1 | 1 #12
1958


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


Цитата:
Сообщение от 4eh Посмотреть сообщение
Блеск..
Не надо слов, нажмите [Спасибо]
1958 на форуме  
 
Автор темы   Непрочитано 23.09.2018, 11:40
#13
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=



Очень странно.. замкнутый контур полилинии обрабатывает эээ... не до конца. Почему?
Пробовал и так и этак. Есть проблема.
А с окружностями полный швах. Не хочет ни круг делать, ни дугу.
Можно это починить?
4eh вне форума  
 
Непрочитано 23.09.2018, 13:23
#14
1958


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


Изначальные ваши желания (требования):
Цитата:
Сообщение от 4eh Посмотреть сообщение
перестал работать лисп, рисующий штриховку земли в разрезе по полилинии. По линии рисует.
т.е. рисуешь контур земли в разрезе и при запуске лиспа выбираешь эту полилинию
Земля в разрезе - причем тут круг? Или вы рисуете разрез по всей окружности глобуса?
Два раза вы говорили про полилинию, теперь вам понадобилась круг, дуга, замкнутый контур.
1958 на форуме  
 
Автор темы   Непрочитано 23.09.2018, 15:49
#15
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


нет-нет-нет, никаких требований. боже упаси.
огромное спасибо за то, что прислали.
просто когда я в плане показываю первый этаж, половина которого находится под землей, хочешь-не хочешь нужно показать эту землю в разрезе, в пределах стен и за ними.
конфигурация может быть самой разной. отсюда и кривые. полилиния тоже бывает с кривулями.
но если нет, так нет. часть задачи решена и на том спасибо.
4eh вне форума  
 
Непрочитано 27.09.2018, 10:32
#16
1958


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


Цитата:
Сообщение от 4eh Посмотреть сообщение
Очень странно.. замкнутый контур полилинии обрабатывает эээ... не до конца. Почему?
Пробовал и так и этак. Есть проблема.
А с окружностями полный швах. Не хочет ни круг делать, ни дугу.
Можно это починить?
Попробуйте такой вариант.
Вложения
Тип файла: lsp h2l.LSP (2.1 Кб, 12 просмотров)
1958 на форуме  
 
Автор темы   Непрочитано 27.09.2018, 16:53
#17
4eh


 
Регистрация: 07.09.2005
Сообщений: 97
<phrase 1=


Попробовал.. Работает прекрасно
Агромадное спасибо.
Даже не думал, что такое можно сделать.
4eh вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > При переходе с 2006 акада на 2013 перестал работать LISP сечения грунта по полилинии.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестал работать файл. Есть идеи как его "завести"?? A-Striker Advance Steel 11 24.06.2017 07:40
Тип линий из автокада 2013 не отображается в автокаде 2016 перестал отображаться invis AutoCAD 7 13.11.2015 08:42
Почему shift перестал включать ортогональность в 2013 автокаде? zz212243 AutoCAD 7 18.12.2014 17:03
lisp: Длина по полилинии до точки vosh LISP 19 15.07.2013 15:10
LISP. Как найти точку пересечения полилинии и сплайна или другой полилинии? LastGraff LISP 11 09.09.2011 13:23