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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Ответ
Поиск в этой теме
Непрочитано 20.07.2008, 20:12
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Со школы не ладится у меня с программированием. Все предметы щелкал, а на экзамене по информатике (Visual foxpro) программку типа суммирования столбцов списал у соседа (это уже в университете).
Не смотря на эте намерен научится писать программы для Автокада на лиспе, скачал книгу Хювенена, несколько примеров создания программ, но после получасового “смотрения” таких книг мое мышление явно притормаживает.
Решил пойти другим путем.
Нашел самый короткий лисп из моей коллекции, и прошу программистов с этого форума пошагово объяснить какой символ что означает. Надеюсь на вашу помощь.


Код:
[Выделить все]
(defun c:make-blocks-explodeable (/ adoc)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (vlax-for blk_def (vla-get-blocks adoc)
    (if (and (equal (vla-get-isxref blk_def) :vlax-false)
             (equal (vla-get-islayout blk_def) :vlax-false)
             ) ;_ end of and
      (vl-catch-all-apply '(lambda () (vla-put-explodable blk_def :vlax-true)))
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
_____________________________________________________________________________________________________________

Прошло много лет и топик теперь представляет из себя площадку для обучения азов программирования для многих начинающих.
Так что начинающие лиспогрызы приветствуются .
__________________
Блог

Последний раз редактировалось Red Nova, 12.07.2017 в 05:43.
Просмотров: 1973630
 
Непрочитано 17.02.2011, 14:47
#1321
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Цитата:
Сообщение от Do$ Посмотреть сообщение
В поиск по форуму - по словам mtext и unformat.
мне это надо сделать для буфера обмена (Ctrl+V или Ctrl+С )
gizmo_zx вне форума  
 
Непрочитано 21.02.2011, 12:22
#1322
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


ПОдскажите пожалуйста, как решить такую задачу:

имею множествр отрезков на чертеже - напр., по
Код:
[Выделить все]
(ssget "_X" '((0 . "LINE)))
нужно найти (например, ENAME-указатели или VLA-OBJ) тех отрезков, которых наложены хотя бы частично друг на друга, т.е. имеют больше 1 точки пересечения. Команда inters здесь не подходит никак. Она при наложении отрезков возвращает nil. И это логично.
Frigate вне форума  
 
Непрочитано 21.02.2011, 12:26
#1323
Лиспер


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


Наложение и пересечение, мне кажется, разные вещи... А чем overkill не устраивает?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 21.02.2011, 12:43
#1324
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Лиспер,

что-то оверкилл не соединяет отрезки...

он точно должен обрезать и соединять конточками отрезки, которые наложены один на другой?

Добавил: все, разобрался - просто забыл галочку игнорирования цвета поставить.

Но вот дублированные вершины полилиний не удаляет никак (

Последний раз редактировалось Frigate, 21.02.2011 в 12:49.
Frigate вне форума  
 
Непрочитано 21.02.2011, 13:12
#1325
VVA

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


Цитата:
Сообщение от Frigate Посмотреть сообщение
Но вот дублированные вершины полилиний не удаляет никак (
PL-VxOpt -Удаление совпадающих вершин из полилинии
Цитата:
мне это надо сделать для буфера обмена (Ctrl+V или Ctrl+С )
Забираешь из буфера обмена текст, сносишь форматирование, послаешь обратно в буфер обмена. Функции здесь: Копирование в буфер обмена
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 21.02.2011 в 13:28.
VVA вне форума  
 
Непрочитано 21.02.2011, 15:16
#1326
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


VVA,

я уже использую твою функцию по удалению совпадающих вершин :-)

Просто захотел посмотреть, как Экспресс с этим справляется.

Цитата:
Забираешь из буфера обмена текст, сносишь форматирование, послаешь обратно в буфер обмена. Функции здесь: Копирование в буфер обмена
второй ЛИСП из сообщения #3 супер! Спасибо, Владимир!
Frigate вне форума  
 
Непрочитано 24.02.2011, 19:56
#1327
ashas-


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


Всем доброго времени суток.
Прошу помощи магистров!
Я с помощью функции entget получил коды к таблице. В которой в последствии нужно будет изменить содержимое ячеек. Исходя из списка получается что содержимое ячеек храниться под кодом "1" и "302". Но как изменить их содержимое? Если я меняю код "1", то код "302" остается прежним и содержимое ячейки не меняется. То же самое с кодом "302". Если пытаюсь изменить сначала "1" потом "302", то они остаются прежними... Не пойму, что ни так делаю. Пример списка:
Код:
[Выделить все]
 ((-1 . <Имя объекта: 7ef033b0>) (0 . "ACAD_TABLE") (330 . <Имя объекта: 
7ef01cf8>) (5 . "1E6") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") 
(100 . "AcDbBlockReference") (2 . "*T1") (10 1663.54 1380.55 0.0) (41 . 1.0) 
(42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 
0.0 0.0 1.0) (100 . "AcDbTable") (342 . <Имя объекта: 7ef01e38>) (343 . <Имя 
объекта: 7ef03400>) (11 1.0 0.0 0.0) (90 . 22) (91 . 3) (92 . 5) (93 . 0) (94 . 
0) (95 . 0) (96 . 0) (141 . 11.0) (141 . 9.0) (141 . 9.0) (142 . 63.5) (142 . 
63.5) (142 . 63.5) (142 . 63.5) (142 . 63.5) (171 . 1) (172 . 0) (173 . 0) (174 
. 0) (175 . 5) (176 . 1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . 
"CELL_VALUE") (93 . 6) (90 . 4) (1 . "A1") (94 . 0) (300 . "") (302 . "A1") 
(304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 1) (174 . 0) (175 . 1) (176 . 
1) (91 . 0) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 3) (90 . 
0) (94 . 0) (300 . "") (302 . "") (304 . "ACVALUE_END") (171 . 1) (172 . 0) 
(173 . 1) (174 . 0) (175 . 1) (176 . 1) (91 . 0) (178 . 0) (145 . 0.0) (92 . 0) 
(301 . "CELL_VALUE") (93 . 3) (90 . 0) (94 . 0) (300 . "") (302 . "") (304 . 
"ACVALUE_END") (171 . 1) (172 . 0) (173 . 1) (174 . 0) (175 . 1) (176 . 1) (91 
. 0) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 3) (90 . 0) (94 
. 0) (300 . "") (302 . "") (304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 1) 
(174 . 0) (175 . 1) (176 . 1) (91 . 0) (178 . 0) (145 . 0.0) (92 . 0) (301 . 
"CELL_VALUE") (93 . 3) (90 . 0) (94 . 0) (300 . "") (302 . "") (304 . 
"ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 1) (91 
. 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) (90 . 4) 
(1 . "A2") (94 . 0) (300 . "") (302 . "A2") (304 . "ACVALUE_END") (171 . 1) 
(172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) (145 
. 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) (90 . 4) (1 . "B2") (94 . 0) (300 
. "") (302 . "B2") (304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) (174 . 
0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . 
"CELL_VALUE") (93 . 6) (90 . 4) (1 . "C2") (94 . 0) (300 . "") (302 . "C2") 
(304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 
1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) 
(90 . 4) (1 . "D2") (94 . 0) (300 . "") (302 . "D2") (304 . "ACVALUE_END") (171 
. 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) 
(145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) (90 . 4) (1 . "E2") (94 . 0) 
(300 . "") (302 . "E2") (304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) 
(174 . 0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 
. "CELL_VALUE") (93 . 6) (90 . 4) (1 . "A3") (94 . 0) (300 . "") (302 . "A3") 
(304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 
1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) 
(90 . 4) (1 . "B3") (94 . 0) (300 . "") (302 . "B3") (304 . "ACVALUE_END") (171 
. 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) 
(145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) (90 . 4) (1 . "C3") (94 . 0) 
(300 . "") (302 . "C3") (304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) 
(174 . 0) (175 . 1) (176 . 1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 
. "CELL_VALUE") (93 . 6) (90 . 4) (1 . "D3") (94 . 0) (300 . "") (302 . "D3") 
(304 . "ACVALUE_END") (171 . 1) (172 . 0) (173 . 0) (174 . 0) (175 . 1) (176 . 
1) (91 . 262144) (178 . 0) (145 . 0.0) (92 . 0) (301 . "CELL_VALUE") (93 . 6) 
(90 . 4) (1 . "E3") (94 . 0) (300 . "") (302 . "E3") (304 . "ACVALUE_END"))
ashas- вне форума  
 
Непрочитано 24.02.2011, 21:24
#1328
Кулик Алексей aka kpblc
Moderator

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


Работать с таблицей через DXF - удовольствие из разряда "врагу не пожелаешь". Настоятельно советую разобраться с vla-представлением и работой с ним.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.02.2011, 21:41
#1329
VVA

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


Цитата:
Сообщение от ashas- Посмотреть сообщение
Не пойму, что ни так делаю
Сложно сказать, не видя что ты делаешь. Но лучше прислушатьсмя к совету предыдущго поста
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.02.2011, 22:24
#1330
ashas-


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


Vla я еще не разбирал... Как то там все сложно (по крайней мере впечатление такое создается).
Если не трудно, можно ткнуть носом на что конкретно следует обратить внимание, учитывая мою задачу?
ashas- вне форума  
 
Непрочитано 24.02.2011, 22:41
#1331
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ashas- Посмотреть сообщение
Как то там все сложно (по крайней мере впечатление такое создается).
Если не знать английский, то сложно...
gomer вне форума  
 
Непрочитано 24.02.2011, 22:51
#1332
ashas-


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


Цитата:
Сообщение от gomer Посмотреть сообщение
Если не знать английский, то сложно...
В этом наверно то вся и беда...
ashas- вне форума  
 
Непрочитано 24.02.2011, 22:55
#1333
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


ну ежили совсем по простому -
Код:
[Выделить все]
(vla-setcellvalue (vlax-ename->vla-object (car (entsel "\nTable "))) (getint"\nRow ") (getint "\nCol ") (getstring "\nValue "))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.02.2011, 18:12
#1334
ashas-


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


Правильно говорят, пока не прижмет, не разберешься...
Спасибо за правильный вектор .
Дима_, спасибо . А где про эту команду написано "vla-setcellvalue"? Всю книжку Полещука перелопатил, но не нашел...

Последний раз редактировалось ashas-, 25.02.2011 в 20:03.
ashas- вне форума  
 
Непрочитано 25.02.2011, 23:40
#1335
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Поищи - или кто нибудь добрый даст ссылку как "переводить" команды из справочника автокада по VB на VisualLisp. Она тут раз 100 уже приводилась - мне сейчас просто искать лень. Если коротко берешь любой объект (из справочника VB), к методам добавляешь vla-, для чтения свойств vla-get-, для установки - vla-set- первым параметром идет непосредственно объект - далее остальные параметры. Если параметр имеет "объектное" представление - смотри функции преобразования vlax-... События (events) - реализованны несколько по другому (реакторами) - на них отдельный синтаксис смотри функции vlr-...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.02.2011, 23:44
#1336
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
для установки - vla-set-
чущъ
gomer вне форума  
 
Непрочитано 25.02.2011, 23:54
#1337
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


тьфу-ты vla-put- кАнечно (перепутал я).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 01.03.2011, 15:35
#1338
gnostic


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


Всем доброго здоровья!
Подскажите, пожалуйста, как отключить ( а потом снова активировать) 3D привязку? Другими словами, как реализовать нажатие клавиши F4, используя код. В Help-е не нашел ни переменной ни команды, подходяшей для дальнейшего использованя в коде. Пока в тупике! :-(
gnostic вне форума  
 
Непрочитано 01.03.2011, 17:00
#1339
Лиспер


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


По-моему, по умолчанию F4 не вызывает никакой привязки. И чем отличается "3D"-привязка от обычного Osmode?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 01.03.2011, 23:59
#1340
gnostic


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


Все! Вопрос решен! Виной всему моя невнимательность:
переменная 3DOSMODE
gnostic вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46