faqs.org.ru

 Главная > Программирование > Программирование графики >

AutoLISP FAQ

Секция 3 из 3 - Предыдущая - Следующая
Все секции - 1 - 2 - 3

[23] Полилинии

В версии R14, LWPOLYLINE сохраняет все вершины в одном примитиве с несколькими группами 10!
[23.1] Как получить вершины (VERTICES) полилинии? [исправлено для R14]
Вершина (VERTEX) полилинии, является дочерним примитивом POLYLINE (также, как атрибут (ATTRIBUTE) - дочерний примитив элемента всавки (INSERT element) или ATTDEF блока (BLOCK)). Следовательно, можно использовать те же функции что и в [22.1]-[22.3]. ;;; возвращает только некоторые ассоциативные(assoc) ;;; значения в список (для LWPOLYLINE) (defun group-only (grp lst) (mapcar 'cdr (remove-if-not '(lambda(pair)(= grp (car pair))) lst))) ;;; возвращает список вершин полилинии ;;; или любого другого элемента (defun GETPTS (ele / pts) (setq ele (entity ele)) ;force type ENAME (cond ((istypep ele "POLYLINE") (while (istypep (setq ele (entnext ele)) "VERTEX") ;; опускает точки сглаживания(fit) и ;; сплайновые (spline) точки (консервативный стиль) (if (not (or (flagsetp 1 ele) (flagsetp 8 ele))) ;устранена ошибка! (setq pts (cons (trans (getpt ele) ele 0) pts))) (reverse pts))) ;; Особый случай: нужно упорядочить вершины, ;; assoc обнаруживает только первую. ;; Исправляет ошибку LWPOLYLINE версии R14: ;; сохраненяется как 2d точка, (entget) ;; возвращает невероятные значения z. ((istypep ele "LWPOLYLINE") (mapcar '(lambda(pt)(trans (list (car pt)(cadr pt) 0.0) ele 0)) (group-only 10 (entget ele)))) ;; включить сюда можно и другие типы, например ((istypep ele '("TEXT" "CIRCLE")) (list (getpt ele))) ;; или так: (serge's стиль). Код LWPOLYLINE. (T (apply 'append (mapcar '(lambda (n / p) (if (setq p (getval n ele)) (list p))) '(10 11 12 13))) ) ;; или так: (консервативный стиль) ;;(T (foreach n '(10 11 12 13) ;; (if (setq p (getval n ele)) (setq pts (cons p pts)))) ;; pts ;;) ) ) Решения от Vladimir Nesteroswky для различных вершин: См. [22.1] (defun vertices-and-bulges( pline-ename ) (mapcar 'cdr (remove-if-not '(lambda(ele) (bitsetp 9 x)) (get '(70 10 42) (cdr (edlgetent pline-ename)) => список (10 42) пары полилинии ;;;можно записать иначе: (defun flag9p (ele) (flagsetp 9 ele))) ;true если fit или spline точка (mapcar '(lambda (ele) (remove-if-not 'flag9p (cdr (edlgetent pline-entname)))) См. также [23.5], для различных структур граней (сегментов) полилиний.

[23.2] Как объединить (JOIN) несколько линий в полилинию? [исправлено]
Просто попытайтесь выбранные элементы между собой, но будьте осторожны, уже присоединенные примитивы не могут быть повторно присоединены (entget), т.к. после первого присоединения исходный примитив удаляется. ;;; Этот пример преобразует все выбранные ;;; элементы в полилинию и объединяет ;;; всё возможное. (defun C:JOINPOLY (/ ele ss) (foreach ele (sslist (setq ss (ssget))) ;улучшен. вариант образования списка (if (entget ele) ;проверяет присоединен ли элемент (cond ;(если да то присваивает nil) ((istypep ele '("ARC" "LINE")) ;; Вы должны проверить координату Z линий и UCS (command "_PEDIT" ele "_y" "_j" ss "" "") ;преобразование и ;присоединение(JOIN) ) ((and (istypep ele '("POLYLINE" "LWPOLYLINE")) ;исправлено (not (flagsetp 1 ele)) ;не замкнутая (< (rem (getflag ele) 128) 8)) ;игнорируются сетки (meshes) ;и прочее подобное (command "_PEDIT" ele "_j" ss "" "") ;для краткости опускается ;проверка ucs ) ) ) ) )
[23.3] Изменение толщины (WIDTH) нескольких полилиний
С помощью вышеописанной вспомогательной функции получаем короткий код: (defun C:POLYWID (/ wid ele) (initget 5) (setq wid (getdist "Новая толщина полилинии: ")) ;не отрицательное значение (foreach ele (sslist (ssget '((0 . "*POLYLINE")))) ;только полилинии (PLINES) (command "_PEDIT" ele "_W" wid "")))
[23.4] Создание полилинии (polyline) или сплайна (spline) используя (ENTMAKE) или (COMMAND)
  1. Вы можете написать скрипт к лисп-программе и работать с ним. Это простой путь. Но тогда Вы не защищены от ошибок ввода/ввывода во время записи/считывания скрипта. Если Вы пишите коммерческую программу, то должны учесть возможные ошибки.
  2. Другой путь, заключается в создании списка примитивов и использовании ENTMAKE. Преймущества: работает быстро, в WCS, не зависит от текущих привязок(osnaps).
    см. http://www.autodesk.com/support/techdocs/td30/td300510.htm
  3. Третье решение основано на использовании command и mapcar. Работает с полилиниями, сплайнами и линиями. Недостатки: UCS, и привязки (osnaps) ;;; Чертит полилинию (POLYLINE) из списка точек ;;; (тоже самое с сплайнами (SPLINE), и линиями (LINE)), ;;; в текущих координатах UCS, с текущими активными ;;; привязками (OSNAP settings) (defun DRAW-PLINE (pts) (command "_PLINE") (mapcar 'command pts) (command "")) (defun DRAW-SPLINE (pts) (command "_SPLINE") (mapcar 'command pts) ; the pts must be the fitpoints then (command "" "" ""))

[23.5] Как вычислить длину (LENGTH) полилиний? [новые функции]
Существуют два решения:
  1. очевидный, использовать команду ПЛОЩАДЬ (AREA), хотя и довольно "шумная" (выводит результат), зато работает даже со сплайнами. ;;; приплюсовывается длина (LENGTH) всех выбранных ;;; объектов, ШУМНО (во время работы функции ;;; выводится лишняя информация на экран), вы ;;; можете сделать то же самое для ПОЛЩАДИ(AREA): ;;; просто замените последнюю строчку на (getvar "AREA") (defun C:LEN-OF () (command "_AREA" "_A" "_E") ;добавляет объект (работает в R12,R13) (ssapply 'command (ssget)) ;передает все элементы в AutoCAD (command "" "") ;два возврата (getvar "PERIMETER")) ;а вот и длина
  2. Использование некоторых математиких выражений, только для несложных объектов. Этот вариант хорош для определения некоторых полезных функций, и является введением к следующему разделу [24], немного тригонометрии для скругленных сегментов.

    ;;; вычисление длины полилинии (defun POLY-LENGTH (poly / seg) (apply '+ ; сумма длин всех единичных сегментов (mapcar '(lambda (seg) ;длина сегмента (if (zerop (car seg)) (distance (cadr seg) (caddr seg)) ;линейный сегмент или (abs (arclen seg seg)))) ;скругленный: см. ниже в [24] (pline-segs poly)))) ;;; возвращает все коды групп коды сложного элемента ;;; (вершины, атрибуты) как список, подобный (edlgetent) (defun CPLX-LIST (grp ele / lst) (if (= 1 (getval 66 ele)) (progn (setq ele (entnext (entity ele))) (while (and ele (not (istypep ele "SEQEND"))) (setq lst (cons (getval grp ele) lst) ele (entnext ele))) (reverse lst)))) ;;; PLINE-SEGS - Создает список сегментов для полилинии pname ;;; как список '(bulge p1 p2). Первая строка имеет bulge 0.0 ;;; Вычисление точек в ECS pname. Принимает LWPOLYLINE (defun pline-segs (pname / pts segs) (setq segs (mapcar 'list (if (istypep pname "LWPOLYLINE") (group-only 42 (entget pname)) (cplx-list 42 pname)) (setq pts (getpts pname)) (rot1 pts))) ; ->[20.1] (if (flagsetp 1 pname) segs ;замкнутая плиния (butlast segs))) ;открыта: без последнего сегмента, ->[20.1] ;;; Пример: (оптимизирован для краткости) ;;; суммируется длина всех полилиний, ТИХО ;;; Чтобы принять и другие примитивы, добавьте в pline-segs (defun C:POLYLEN () (apply '+ (ssapply 'poly-length (ssget '((0 . "*POLYLINE"))))))
Для определения суммы площадей можно использовать "шумную" команду AREA или используют формулу heron-а для определения площадей полигонов (только для простых закрытых полигонов).

[23.6] Как изменить направление полилинии?
Программа Sergei Komarov, REVPOLY.LSP, учитывает выпуклости и ширину.
http://xarch.tu-graz.ac.at/autocad/news/lisp_pro/revpoly.lsp


[24] Геометрия Круга/Дуги (Circle/Arc): преобразование ВЫПУКЛОСТИ(BULGE), немного тригонометрии

Что такое ВЫПУКЛОСТЬ в полилинии?

Выпуклость равняется тенгенсу одной четверти внутреннего угла изогнутого сегмента. При значении выпуклости равной 0.0 сегмент - прямая (отрезок). Имея начальную и конечную точку, легко вычисляется и все остальные параметры изогнутого сегмента.

  arclength = radius*angle		
  bulge = +-tan(ang)/4            (CCW: +, CW -)
  angle = atan(4*bulge)
  bulge = +-(2*altitude) / chord  (CCW: +, CW -)

 где,
	arclength	- длина дуги
	radius 		- радиус
	angle, ang	- внутренний угол изогнутого сегмента
	bulge		- выпуклость
	altitude	- высота дуги
	chord		- хорда

См. также http://www.autodesk.com/support/techdocs/fax700/fax797.htm - примеры программ, или книгу "Maximizing AutoLISP" [2]

(исправлена ошибка, не верная формула! Спасибо Sergei Komarov)

;;; SEG2CIR - преобразует выпуклый сегмент ;;; (bulge pt1 pt2) полилинии в окружность (ctr rad). ;;; Известны начальная и конечная точки, ;;; следовательно можно определить и ;;; углы (angle ctr pt1)(angle ctr pt2). ;;; На неизогнутом сегменте возвращает nil ! (defun SEG2CIR (seg / bulge p1 p2 cot x y rad dummy) (if (zerop (car seg)) nil (setq bulge (car seg) p1 (cadr seg) p2 (caddr seg) cot (* 0.5 (- (/ 1.0 bf) bf)) x (/ (- (+ (car p1) (car p2)) (* (- (cadr p2) (cadr p1)) cot)) 2.0) y (/ (+ (+ (cadr p1) (cadr p2)) (* (- (car p2) (car p1)) cot)) 2.0) rad (distance (list (car p1) (cadr p1)) (list x y)) dummy (list (list x y) rad) ; return this, I hate progn's ) ) ) ;;; ARC2SEG - обратное преобразование: ;;; вычисляет сегмент дуги (bulge p1 p2) ;;; по задаваемому кругу (ctr rad), ;;; начальному-углу, конечному-углу (defun ARC2SEG (cir ang1 ang2 / p1 p2) (setq p1 (polar (car cir) ang1 (cadr cir)) p2 (polar (car cir) ang2 (cadr cir))) (list (arc2bul p1 p2 cir) p1 p2) ) | ;;; ARC2BUL - вычисляет выпуклость дуги | ;;; по задаваемым точкам дуги и окружностью | ;;; (ctr rad) [исправлено Serge Pashkov] (defun arc2bul (p1 p2 cir / ang) (setq ang (- (angle (car cir) p2) (angle (car cir) p1))) (if (minusp ang) (setq ang (+ (* 2.0 pi) ang))) (tan (/ ang 4.0))) ;;; BUL2ANG - возвращает угол дуги (выпуклость) (defun bul2ang (seg / ctr) (- (angle (setq ctr (car (seg2cir seg))) (cadr seg)) (angle ctr (caddr seg)))) ;;; ARC2ANG ;;; вычисляет угла дуги по ;;; задаваемым длине хорды и радиусу (defun arc2ang (chord rad) (* 2.0 (atan (/ chord 2.0 (sqrt (- (expt rad 2) (expt (/ chord 2.0) 2) ) ) ) ) ) ) ;;; ARCLEN - длина дуги = радиус *угол (в радианах) ;;; Примечания: +-, Для определения расстояния ;;; используйте (abs (arclen seg)) (defun arclen (seg) (* (cadr (seg2cir seg)) ; радиус 4.0 (atan (car seg)))) ; angle = 4*atan(bulge) (setq *INFINITY* 1.7e308) ; наибольшее знач. double (defun tan (z / cosz) ; [fixed] (if (zerop (setq cosz (cos z))) *INFINITY* (/ (sin z) cosz))) (defun dtr (ang)(* pi (/ ang 180.0))) ; градусы в радианы (defun rtd (ang)(/ (* ang 180.0) pi)) ; радианы в градусы


[25] DCL: диалоговые списки (listboxes) с метками табуляции или монотекстовым шрифтом

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

Попробуйте форматировать текст в list_box используя атрибут табуляции.
Например:

tabs = "0 20 40"; и (set_tile "listbox" "Слой:\t0\twhite") или попробуйте другой алгоритм, использующий шрифт с фиксированной шириной символов: : list_box { label = "Чертеж"; key = "dwglist"; width = 50; fixed_width_font = true; // <- установлен флажок фикс. шир. шрифта } Также неплохо ознакомиться с программой detab, http://xarch.tu-graz.ac.at/autocad/news/detab.lsp


[26] EED Расширенные Данные Примитива: Выбрать, Получить и Сохранить

(EED Extended Entity Data: Select, Get and Store)
[26.1] Выбор объектов с EED используя (ssget "X") ;;; определяет Ваш загловок appname (имя прикладной прогр.) ;;; и разделитель (egapp name - 4 симв. в соответствии с AAIG) ;;; AAIG - Autodesk Application Interoperation Guidelines (setq appname "HUBU-") ;;; defines * for all sub types (setq allappnames (strcat appname "*")) ;;; например: HUBU-LIST1, HUBU-LIST2 ;;; так получаем список eed одного элемента (defun geteed-lst (ele) (cdadr (assoc -3 (entget ele (list allappnames))))) ;;; получаем все элементы appnames typ ;;; (допускаются шаблоны (wildcards)) (defun ssget-app (typ) (ssget "X" (list (list -3 (list typ)))) ;;; получаем только Вами выбранные элементы (defun ssget-hubu (typ) (ssget "X" (list (list -3 (list (strcat appname typ))))) (ssget-hubu "*") ; получаем все Ваши элементы
[26.2] Получить EED из объекта

Ищет любые XDATA: (entget (car (entsel)) '("*"))

Эти функции возвращают все найденные XDATA по regapp name или значениям XDATA.

;;; GETXDATA - получает все ;;; списки XDATA, из одного элемента ;;; Пример с XDATA: ;;; (-3 ("HUBU-1" (1000 ."ASSHATCH")(1002 ."{") ;;; (1070 . 1)(1002 ."}"))) ;;; =>(("HUBU-1" (1000 ."ASSHATCH")(1002 ."{")(1070 . 1)(1002 ."}"))) (defun getxdata (e apnlst) (cdr (assoc -3 (entget e apnlst)))) ;;; GETXDATA-ALL - все списки без regapp name ;;; => ((1000 ."ASSHATCH")(1002 ."{")(1070 . 1)(1002 ."}")) (defun getxdata-all (e apnlst) (apply 'append (mapcar 'cdr (getxdata e apnlst)))) В данном случае, опущено regapp name, т.к. оно используется лишь для более быстрого доступа ssget. Другие приложения (apps) разделяются другими группами (1000 . name), как это используется Autodesk.

Для сохранения XDATA в определенном элементе, см. XDATA.LSP или XED.LSP.

Чтобы ознакомиться с другими трюками, для работы с EED, как например преобразование "{" "}" ADS resbuf стиль в Lisp-списки и обратно, см.http://xarch.tu-graz.ac.at/autocad/news/eed_retrieval.txt


[27] Как мне послать Ctrl-C команде?

Или: "Как мне прервать команду из AutoLISP?"

(command) без параметров работает как нажатие в командной строке клавиш Ctrl-C в R12 или Esc в R13. Но, это решение непригодно для диалоговых окон (dialog box) или скриптов (SCRIPTS). (command nil) - это то же самое что (command).

(command) прерывает только командные функции. Например, если Вы используете комаду "DIM" под AutoLISP, Вы должны прервать ее с помощью (command) после того как задали необходимые Вам размеры.

Это решение непригодно для прервания циков лиспа. Для этого используются другие функции - (exit) или (quit), они так же прерывают и работу самой лисп программы.

Пример:

(while T ; do ; бесконечный цикл (princ "\nEnter a=") (setq a (getint)) (if (zerop a)(exit)); Прерывает Lisp и возвращается ; в режим командной строки ) В этом примере (command) не работает. (exit) работает точно как Ctrl-C. Но, выдает сообщение "error: quit / exit abort" и выполняет все вложенные функции. Для того чтобы обеспечить "тихое" прерывание Вы должны включить это сообщение в функцию обработки ошибок.
Например: (setq olderr *error* *error* my_error) (defun my_error (s) (if (not (member s ; msgs of the english version: '("Function cancelled" "console break" "quit / exit abort"))) (princ (strcat "\nError: " s)) ) (setq *error* olderr) )

Для использовании в скриптах просто определите функцию (cancel) в автолиспе:

(defun cancel() (command) (command "resume") ) и включите в SCRIPT.SCR: .. [script commands] (cancel) [more script commands] ..


[28] Как декодировать внутренюю геомериию ACIS используя Lisp?

Все ACIS объекты (3DSOLID) описаны Spatial. Тем не менее, внутреннее описание используемое (entget) оставалось зашифрованным, на алгоритм шифровки был восстановлен (hacked). (XOR 95)

Примеры см.: http://xarch.tu-graz.ac.at/autocad/news/acis_decrypt и http://xarch.tu-graz.ac.at/autocad/news/acis_decode.lsp



[A] Замечания от авторов

Если Вы работаете над материалами которые могут быть включены в этот ЧаВо (FAQ), или хотите улучшить приведенный здесь ответ то присылайте Ваши письма (на ангийском языке) на e-mail Reini Urban <rurban@sbox.tu-graz.ac.at>, но не ожидайте ответа. На Русском: <joker@mega.ru>

This AutoLISP FAQ is (c) 1996,97 by Reini Urban. All rights reserved.
Коды представленных примеров, если не указан другой автор, (c) 1991-97 by Reini Urban и могут быть использованы бесплатно, но не в коммерческих целях.
Основные функции, если не указан другой автор, (c) 1991-97 by Reini Urban и могут быть использованы бесплатно.

Разрешается свободное распространение полного текста данного ЧаВо, при условии что указываются авторские права. Продажа и включение в состав коммерческих документов (например: включать в коммерческие CD-ROMы, флоппи-диски, книги, и любые другие формы) запрещается, без предварительного согласия владельца авторских прав.

В случае, если Вы увидите оффлайновую публикацию данного документа (например, CD-ROM, любые печатные формы, и т.д.), то копия должна быть отослана Reini Urban, X-RAY, Rechbauerstr. 38, 8010 Graz, Austria

Этот документ, как и содержащиеся в нем примеры, представлены ТАК КАК ЕСТЬ (AS IS), и никакие претензии или жалобы не принимаются.


[A.1] Где найти этот ЧаВо (FAQ)
Главная страница HTML версии:
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.html
Версии в ascii (и всегда самые последние версии) см. на
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.1
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.2
Версия справки windows (Winhelp) - *.hlp (архивирована zip и включает в себя faq-code.lsp), см.
ftp://xarch.tu-graz.ac.at/pub/autocad/news/faq/autolisp.zip
Версия usenet архива см. на
ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/cad/autocad/comp.cad.autocad_AutoLISP_FAQ или на http://www.faqs.org/faqs/CAD/autolisp-faq/part1/
Лисп исходники для данного ЧаВо см. на
ftp://xarch.tu-graz.ac.at/pub/autocad/news/faq/faq-code.lsp
Также см. cca индекс, для того чтобы ознакомиться с принятой аббревиатурой
http://xarch.tu-graz.ac.at/autocad/news/faq/glossary.html
Submissions for a new AutoCAD FAQ are stored at
http://xarch.tu-graz.ac.at/autocad/news/faq/new-acad
A french translation of the FAQ was made by Roger Rosec
http://www.newz.net/acadplus/page5101.htm
A japanese translation of the FAQ was made by MASAMI Chikahiro
http://www.page.sannet.ne.jp/chestnutsburr/autolisp-j.html
A russian translation by Igor Orellana at
http://joker.mega.ru/acad/alfaq_ru.htm
A spanish translation is in progress. Contact Eduardo Magdalena
AutoDesk's R14 FAQ
http://www.autodesk.com/support/techdocs/td10/td105129.htm
AutoDesk news groups
news:autodesk.autocad.customization, news:autodesk.autocad.r14general or the web interface at Dejanews


[B] Благодарности

This FAQ is based on great efforts of the comp.cad.autocad community, in particular (amongst others):

Adi Buturovic <af.buturovic@berwanger.com>
Christoph Candido <h8540418@edv1.boku.ac.at>
Mike Clark http://www.cadalog.com/ <webmaster@cadalog.com>
Miles Constable <miles@triumf.ca>
Cara Denko <cara.denko@autodesk.com>
T.J. DiTullio <tditullio@goldner.com>
Jeff Foster http://www.cadshack.com
Rusty Gesner http://www.group-a.com/~rusty
William Kiernan <WKiernan@concentric.net>
Paul Kohut <paulk2@seanet.com>
Sergei M. Komarov <komarov@mailcom.lviv.ua>
Joseph M. Liston <smoker@fs.cei.net>
Lu <learly@ix.netcom.com>
Masami Chikahiro http://www.page.sannet.ne.jp/chestnutsburr/ Georg Mischler http://www.schorsch.com/
Desi Moreno http://www.invsn.com/desmos
Vladimir Nesterovsky http://members.tripod.com/~vnestr/
Roger Rosec http://www.newz.net/acadplus/
Serge Pashkov <xrs@aha.ru>
Dennis Shinn http://www.halcyon.com/jeeper/
Tony Tanzillo http://ourworld.compuserve.com/homepages/tonyt/
Eugene Tenenbaum <et119@columbia.edu>
Reinaldo Togores http://personales.mundivia.es/personales/rtogores/
Reini Urban http://xarch.tu-graz.ac.at/home/rurban/
Serge Volkov http://www.basissoftware.com/vill.htm
Morten Warankov <mortenw@abacus.no>
Owen Wengerd http://www.manusoft.com
Alan Williams <alan@awol.demon.co.uk>
Doug Wilson <dougw@amgen.com>
Ian A. White <waiwhite@zip.com.au>
David Whynot http://www.cadsyst.com
Darren Young http://www.mcwi.com
Xiang Zhu <xzhu@whale.st.usm.edu>

And thanks to all the others which are not listed here for posting code and answers. This is just my personal list of acknowledgements.


[C] Последние Изменения

v2.1 3.Jan 99
fixed and added some links: [22.4], [A.1], [B], [27], [1], [2], [20], [22.1]
21.Dec 98
found a russian translation, bob jones' and masami chikahiro's links are broken
12.Jul 98
changed posting frequency to monthly. Some minor fixes concerning the now available Visual Lisp and other cosmetics. cadsyst url
6.Jun 98
changed Eugene's email (and back at 18.Jul)
13.May 98
added R14 plotdialog [21.2]
11.May 98
bugfixes by Serge Pashkov <xrs@aha.ru> in [24] arc2bul, [20.1] remove-if-not (but correct in faq-code.lsp), [21.7] doc of maptrans0-1, [24] tan, [21.2] DDECMD and some vlisp beta1 fixes in faq-code.lsp
v2.0 7.May 98
lots of Visual Lisp based changes: [0],[4],[5],[6.1],[7]
[17] new, [2] new books, [21.2] ActiveX sample, [A.1]better official R14 FAQ
27.Feb 98
[0] Visual Lisp available.
24.Feb 98
[6.1] lspedit.exe, [0] Visual Lisp news and [7] entmake vertex
v1.12 12.Feb 98
Eugene Tenenbaum <et119@columbia.edu> send me huge list of corrections, mostly improving the english language. This time only up to [11].
15.Jan 98
[7] HATCH added to entget problem,
[0] more specific now, [22.4] url change [A.1] Japanese translation
12.Jan.98
[2] The R13 lisp manual is in the cust. manual not only on the cd. sorry
8.Jan.98
Vladimir Nesterowsky's new web url
24.Nov.97
fixed some typos
v1.11 15.Nov.97
changed header.
Autodesk AutoCAD FAQ URL's. see [A.1]
LispLink editor. see [6.1]
Zoomer rumors: [0]
23.Oct.97
Roger Rosec provided a french translation of the entire FAQ. see [A.1]
13.Sep 97
Alan Williams detected a stupid error in DATESTAMP in [22.2] but in FAQ-CODE.LSP it was okay.
28.Aug 97
added the (entget) LWPLOYLINE bug to [7],
changed my mail address to rurban@xarch.tu-graz.ac.at to be prepared for the after-student area. :)
v1.10 22.Jul 97
some LWPOLYLINE fixes, R14 Lisp debugger Vital LISP 3.0 shipped, Convert 3.3 update [4.4], fixed cronjob for bi-weekly posting: every 2nd Monday, 11.30 MET
20.Jul 97
Vital LISP 3.0 shipped
12.Jul 97
Convert 3.3 update [4.4], fixed cronjob for bi-weekly posting: every 2nd Monday, 18.00 MET
2.July 97
fixed URL in [10],
30.June 97
fixed (istypep) in [20.4], changed title of [16], light changes in (getpts) in [23.1]
v1.9 26.June 97
[5.2] confirmed Vill3 release date, added DDE sample from Xiang Zhu to [21.2], provided detab.lsp [25]
17.June 97
bugfix in [20.4]: short (getval), [12] R14 ARX autoloading, [23.5] (pline-segs) is now R14-save but still not compatible, new [23.6] revpoly.lsp, [A.1], [5.2] Vill 3 will have reactor support.
9.June 97
new symbol-string trick by Christoph Candido [20.3]
21.May 97
some minor corrections.
v1.8 15.May 97
added [0] Future of AutoLISP?
changed VERTECES to VERTICES, fixed mail address of af.buturovic@berwanger.com,
added SSAPPLY: [20.4], [23.5],
started to R14'ify some code for LWPOLYLINE's [23], not finished yet, (pline-segs) is missing
9.May 97
[2.1] R14 Winhelps, [5.2]: new basis url, Vill Lite [6.1]
added [16]: Lisp over mult. dwg's
added some short comments to [6.1](ntemacs), [14], [21.8]
21.April 97
added [[28] ACIS decryption
v1.7 9.April 97
added [[21.8] C:XYZ,
added [[15] (command "ROTATE3D") does not work! Why?
HTML version chapter numbers match the posted version,
added [27]: (command) as ctrl-c, Sergei Komarov improved [27], Adi Buturovic improved [27] for scripts.
v1.6 13.Feb 97
moved the intro to the very beginning for the curious.
another lisp plot lisp [21.2], a third lisp debugger [3.1], [A.1]: the gd.tuwien uunet mirror is faster than the official ones, fixed cadence FAQ url, applied digest format partially, html will be created automatically soon, wrong (old) chapter numbering from the v1.5 version, [7] 64 in flag 70 in symbol tables,
v1.5 5.Feb 97
added get and edlgetent samples by Vladimir, removed the sort code instead,
changed [11] title and added string funcnamean
bugfix in getpts [23.1], basic funcs should be free [A],
added DATESTAMP to [22.2], added a "s" to [A] title,
added [20] DCL, [21] EED, [21.1-21.7] samples,
Serguei Komarov found a bug in seg2cir,arclen,arc2bul [24],
added arc2ang and (corrected) arclen,
bugfixes in sslist, getval, all predicates with "p" postfix now,
prepared a FAQ-CODE.LSP, Convert supercedes Decrypt [4.4], added scripts and (command) to [23.4], AREA to [23.5],
v1.4 24.Jan 97
important news with Decrypt [4.4],
moved [11] "bugs" to [7] "problems",
added [11] "How do I (sym, list)" instead,
added the "Approved" header for news.answers processing,
added [22]-[24]: some examples for subentities and bulge stuff,
Serge found a bug/feature in acad_strlsort [7],
added number accuracy and ss limitation to [7],
added break code and samples to [3.3],
added a short lisp style guide at [2.2], instead of [6.4]
v1.3 17.Jan 97
added [16] stack overflow (thanks Serge), [4.7] Lisp2C,
updated [8] fastest sort (sample, benches),
received the news.anwsers approval
v1.2 11.Jan 97
added Phoaks to news archive
fixed (break) in [3.3] (Thanks Tony),
added a sorting example to [8], improved (my-princ) in [15]
changed posting frequency from weekly to bi-weekly
v1.1 4.Jan 97
R13 bugs, S::STARTUP code by Owen Wengerd,
homepages instead of e-mail adresses where appropriate, (people get enough junk mail these days)
more links, and some bugfixes
v1.0 22.Dec 96
First version, posted on 28.Dec 96
as a discussion basis
--
Reini Urban, 12.Jul 98
Примечания:
Этот документ является русским переводом "AutoLISP FAQ by Reini Urban"
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.html
Кроме исходного текста на английском языке, был использован перевод версии 1.12 от 3 марта 1998 от
Виктора Ткаченко http://www.geocities.com/Eureka/3120/.

Публикуется на http://joker.mega.ru с 20 января 1999г.

трактовка: Igor Orellana

Секция 3 из 3 - Предыдущая - Следующая

Вернуться в раздел "Программирование графики" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь

© faqs.org.ru