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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp считывание переменной из внедокументного пространства

Autolisp считывание переменной из внедокументного пространства

Ответ
Поиск в этой теме
Непрочитано 25.07.2015, 09:20 #1
Autolisp считывание переменной из внедокументного пространства
protorgovec
 
газо- нефтепереработка
 
Уфа
Регистрация: 22.07.2015
Сообщений: 98

Добрый день форумчане. Подскажите пожалуйста. почему при переходе в другой документ у меня программа не хочет определять переменную. При работе в первом документе он видит эту переменную. После я ее загоняю во внедокументное пространство. Перехожу на другой документ. Он эту переменную определяет. Выполняет дальше команды. Но не подставляет эту переменную Пишет nil. Попытался считать эту переменную из внедокументного пространства присвоив ей новую переменную, но он ее все равно не определяет. Подскажите что не так, очень очень надо понять как забрать переменную для работы в новом документе.
Код:
[Выделить все]
 (vl-mkdir "d:\\Дима\\Деталь")
(setq D (getint "\n Введите диаметр колонны D >: "))
(vl-propagate 'D)
(command "_.-view" "_top")
(command "_.-view" "_swiso")
(command "_.cylinder" "0,0,0" D 10 )
(command "_.-view" "_swiso")
(setq 1kolco (entlast))
(command "_.-wblock" "d:\\Дима\\Деталь\\Кольцо.dwg" 1kolco "0,0,0" 1kolco "")
(command "_.-xref" "" "d:\\Дима\\Деталь\\Кольцо.dwg" "0,0,0" "" "" "")
(command "_sdi" 1)
(setq Ch1 (command "_open" "_no" "d:\\Дима\\Деталь\\Опорные элементы.dwg" "d:\\Дима\\Деталь\\Кольцо.dwg"))
(command "_sdi" 0)
(command "_layout" "_template"  "d:\\Дима\\A4v-1.dwt" "A4")
(command "_layout" "_delete" "Лист1")
(command "_layout" "_set" "A4")
(command "_mspace" "_view" "_left")
(command "_zoom" "_scale" "1/1xp")
(command "_pspace")
(command "_layout" "_set" "Модель")
(command "_.-view" "_left")
(setq w1 (vl-bb-ref 'D))
(setq tm1 (list (- w1) 0 0))
Прикладываю так же мой шаблон формата. Правда он в dwg, в dwt не принемает. Но думаю пересохранить его в dwt сможете. Так же создайте на диске D папку Дима. Я нашел только как создавать папку первой степени.
Надеюсь мне кто нибудь поможет.

Вложения
Тип файла: dwg
DWG 2013
A4v-1.dwg (107.6 Кб, 2213 просмотров)

Просмотров: 6260
 
Непрочитано 25.07.2015, 09:57
#2
Кулик Алексей aka kpblc
Moderator

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


ИЩи обсуждения с DENBASS2004 - там много было по этому поводу. Повторяться не хочу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.07.2015, 10:13
#3
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ИЩи обсуждения с DENBASS2004 - там много было по этому поводу. Повторяться не хочу.
Это я читал. Читал что при активации другого файла, он теряет переменные, но во внедокументном пространстве они же храняться? А раз они там есть, я думал можно их от туда вытащить. Да, проблемка судя по всему не поддающаяся решению. Жаль. Спасибо Алексей что проигнорировали мой предыдущий вопрос. Я интересовался у вас по поводу работы с неактивным документом. Но так и не дождался короткого ответа да или нет.

----- добавлено через ~27 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ИЩи обсуждения с DENBASS2004 - там много было по этому поводу. Повторяться не хочу.
а для чего тогда команда в лиспе существует vl-bb-ref, она вроде и отвечает за то что бы вытащить переменную из внедокументного пространства. Если работать в одном документе, тогда какой от нее смысл? ведь и без нее все спокойно делается. В каком тогда случае ее можно применять?
protorgovec вне форума  
 
Непрочитано 25.07.2015, 10:43
#4
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


(vl-propagate 'D) - копирование значения D
(vl-bb-ref 'D) - каким боком? без использования (vl-bb-set 'D (getint "\n Введите диаметр колонны D >: "))
читайте Полещука внимательней!!!
в вашем случае (setq w1 D)
roaa вне форума  
 
Непрочитано 25.07.2015, 12:08
#5
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ИЩи обсуждения с DENBASS2004
Сдается мне это 2 одних и тех же человека
Offtop: Не относитесь с пристрастием к начинающим программистам
gomer вне форума  
 
Автор темы   Непрочитано 25.07.2015, 14:58
#6
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от gomer Посмотреть сообщение
Сдается мне это 2 одних и тех же человека
Конечно одни и те же. Мы вместе работаем, и вместе пытаемся что нибудь написать. Он уже плюнул на это все. Я почитал его сообщения, и от части понимаю почему плюнул. Ну не знает человек как сделать элементарные вещи, вы бы могли и подсказать, но не так как вы это делаете, а доступным языком. Из доступного языка было только понятно что читай книги. Ну не грамотные мы, не все можем объяснить и не все можем сделать. Я вот только только недели 1,5 как вообще узнал о существовании лиспа. А вообще, ребята, я нашел решение на то, как работать со множеством документов. И это не работа с неактивными документами. Каждый открывающийся становиться активным. И все в нем определяется, все переменные! Ответ оказался очень прост, и вы, как люди с опытом могли бы подсказать как это делается, не программу прислать, а в словах объяснить как структурно подойти к данному решению. А решение оказалось очень простым.По крайней мере для того, что нам нужно было добиться.
protorgovec вне форума  
 
Непрочитано 25.07.2015, 15:23
#7
gomer

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


Цитата:
Сообщение от protorgovec Посмотреть сообщение
Конечно одни и те же. Мы вместе работаем, и вместе пытаемся что нибудь написать. Он уже плюнул на это все. Я почитал его сообщения, и от части понимаю почему плюнул. Ну не знает человек как сделать элементарные вещи, вы бы могли и подсказать, но не так как вы это делаете, а доступным языком. Из доступного языка было только понятно что читай книги. Ну не грамотные мы, не все можем объяснить и не все можем сделать. Я вот только только недели 1,5 как вообще узнал о существовании лиспа. А вообще, ребята, я нашел решение на то, как работать со множеством документов. И это не работа с неактивными документами. Каждый открывающийся становиться активным. И все в нем определяется, все переменные! Ответ оказался очень прост, и вы, как люди с опытом могли бы подсказать как это делается, не программу прислать, а в словах объяснить как структурно подойти к данному решению. А решение оказалось очень простым.По крайней мере для того, что нам нужно было добиться.
То чем вы занимаетесь было популярно лет 20 назад... а потом появился .Net и все, проблема решилась... так что не ищите здесь спецов по танцам с бубном, они вымерли, как динозавры
gomer вне форума  
 
Автор темы   Непрочитано 25.07.2015, 15:31
#8
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от gomer Посмотреть сообщение
То чем вы занимаетесь было популярно лет 20 назад... а потом появился .Net и все, проблема решилась... так что не ищите здесь спецов по танцам с бубном, они вымерли, как динозавры
хорошо ,я вас услышал. Значит нет тут спецов по Autolisp-у жаль, а я думал что их тут много
protorgovec вне форума  
 
Непрочитано 25.07.2015, 15:54
#9
Psyakrev


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


Вам же уже ответил roaa - нужно заменить (vl-propagate 'D) на (vl-bb-set 'D D) либо (setq w1 (vl-bb-ref 'D)) на (setq w1 D).
vl-propagate пишет в пространство имен документа, vl-bb-set - в внедокументное, соответственно и считывать в обоих случаях нужно по разному.

Последний раз редактировалось Psyakrev, 25.07.2015 в 16:02.
Psyakrev вне форума  
 
Непрочитано 25.07.2015, 17:07
1 | #10
trir


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


Как правильно задавать вопросы в технических форумах
Цитата:
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей мы называем "неудачниками" ("losers") (по историческим причинам это слово иногда пишется как "lusers" - пользователи-неудачники).
trir вне форума  
 
Непрочитано 25.07.2015, 17:13
#11
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от protorgovec Посмотреть сообщение
А вообще, ребята, я нашел решение на то, как работать со множеством документов.
Столько раз уже обсуждалось на форуме... Стоило бы их сначала почитать, а потом плодить вопрос.
roaa вне форума  
 
Автор темы   Непрочитано 25.07.2015, 18:14
#12
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от trir Посмотреть сообщение
Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Такие люди убивают время — они берут, ничего не давая взамен, они отнимают время, которое мы могли бы посвятить другому вопросу, более интересному, и другому человеку, более достойному ответа. Таких людей мы называем "неудачниками" ("losers") (по историческим причинам это слово иногда пишется как "lusers" - пользователи-неудачники).
Ох ты, как громко сказано. Даже не знаю, то ли просто улыбнуться, то ли заржать на весь дом Ладно, скажу просто к неудачникам меня очень проблематично отнести. Просто решил помочь своей фирме автоматизировать работу хоть частично. Решил начать с того что я делаю, так как мне это знакомо. А дальше помогать другим отделам ускорять их работу. Ведь это все таки прибыль и от части моя. А в своем решение я нашел такой вариант. Решил не бодаться с одним лиспом, решил его разбить. Уж ладно ткну по кнопочке не 1 раз, а 3 В первом я буду заводить все данные которые для меня необходимы и загонять их во вне документное пространство как раз с помощью vl-bb-set . Во втором я буду вытаскивать их с помощью vl-bb-ref и вычислять все необходимые мне данные по формулам. А в третьем пропишу vl-load-all и все. Сколько бы я не открыл программно файлов везде будут все мои необходимые переменные Просто надо было меня подтолкнуть что 1 не обойтись лиспом Я не просил мне рыбу дать ,я просто просил у вас удочку
protorgovec вне форума  
 
Непрочитано 25.07.2015, 18:25
#13
trir


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


просто посмотри
trir вне форума  
 
Непрочитано 25.07.2015, 18:37
#14
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от protorgovec Посмотреть сообщение
Просто надо было меня подтолкнуть что 1 не обойтись лиспом
Вам же этого никто не говорил. Для поиска - пакетная обработка файлов. Экий Вы тяжелый.
roaa вне форума  
 
Автор темы   Непрочитано 25.07.2015, 18:38
#15
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от trir Посмотреть сообщение
Посмотрел, может конечно это и круто, но для меня уж прости это было непонятно. Я с геологией не состыковываюсь, у меня иное направление. Но спасибо за видео. Да и делалось там не программно.
protorgovec вне форума  
 
Непрочитано 25.07.2015, 18:54
#16
trir


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


всё там программно, геологическая модель загружается из xml-файла и редактируется - всё с помощью кода на VB.NET. Как раз в начале создаются солиды по данным из файла (он уже загружен), а после редактируются из формы - вот ещё посмотри
trir вне форума  
 
Автор темы   Непрочитано 25.07.2015, 18:58
#17
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


ну, круто, что тут скажешь. Но я хочу добиться полного автоматизирования, без редактирования. Надеюсь получится. Одну из главных проблем решил, теперь могу работать во множестве документах программно
protorgovec вне форума  
 
Непрочитано 25.07.2015, 19:03
#18
trir


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


то что вы приводили с DENBASS2004, это нифига не код, просто скрипты. Скрипты конечно это хорошо, но в своих границах.
trir вне форума  
 
Непрочитано 25.07.2015, 19:22
#19
Кулик Алексей aka kpblc
Moderator

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


На autolisp.ru я рассказывал и про стили программирования, и про особенности использования командных методов, и про работу с неактивным документом. И, по-моему, даже коды приводил. Еще раз все здесь дублировать я не согласный. Заниматься поиском мне тупо некогда. Повторяться в энный раз я не хочу.
Помимо этого, есть масса книг и сайтов, где все уже показано и рассказано не раз и не два.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2015, 22:54
#20
gomer

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


Цитата:
Сообщение от trir Посмотреть сообщение
то что вы приводили с DENBASS2004, это нифига не код, просто скрипты.
это не так, если вы не видите структуры, то это не значит, что ее нет. а если даже ее нет, то это не значит что ее не может быть
gomer вне форума  
 
Автор темы   Непрочитано 26.07.2015, 20:30
#21
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
На autolisp.ru я рассказывал и про стили программирования, и про особенности использования командных методов, и про работу с неактивным документом. И, по-моему, даже коды приводил. Еще раз все здесь дублировать я не согласный. Заниматься поиском мне тупо некогда. Повторяться в энный раз я не хочу.
Помимо этого, есть масса книг и сайтов, где все уже показано и рассказано не раз и не два.
Алексей, я понимаю что все можно найти в интернете. Но иногда очень много времени на это уходит. Книги? Я как то учил автокад по книги , порой что бы что то из книги узнать надо много прочитать, а иногда написано таким языком, что еще пару дней будешь переваривать и подводить прочитанное под свое понимание. Я понимаю, мы все занятые, времени у нас у всех мало такова уж наша реальность. Постараюсь вас не напрягать своими вопросами, что бы не воровать ваше время.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от trir Посмотреть сообщение
то что вы приводили с DENBASS2004, это нифига не код, просто скрипты. Скрипты конечно это хорошо, но в своих границах.
Ну, может конечно лет через 5 увидев от очередного новичка такие скрипты, тоже буду угарать, но только из за воспоминаний как и я так же начинал. А так, я чистого времени с лиспом где то около 5-6 дней. Так что умейте делать скидку. Или вы как сказали первое слово, так и сразу уже программы писали грамотно? Сомневаюсь. Все когда то начинаем что то узнавать и только со временем становимся какого то уровня специалистами. Я тоже знаю некоторые вещи, где вы еще грудничок. Но и это нормально, все знать ни у кого не получится. Вы тут спец, а я здесь еще даже не стажер. Вот и пытался у специалистов узнать пути решения моих проблем.
protorgovec вне форума  
 
Непрочитано 26.07.2015, 21:01
#22
trir


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


Просто по тому, что вы приводите - видно, что у вас пробел в базовых знаниях (для программирования) и без заполнения этого пробела - вы ещё долго будете "тупить"
Цитата:
порой что бы что то из книги узнать надо много прочитать
надо много прочитать - надо, значит надо, а иначе будете ходить по кругу - в лучшем случае!

По базовым знаниям, я могу предложить Кнута, но это будет издевательством
Может кто предложит лучший вариант, в контексте lisp'а
Лично я начинал учить программирование по этой книге

Последний раз редактировалось trir, 26.07.2015 в 21:07.
trir вне форума  
 
Непрочитано 26.07.2015, 21:42
#23
Кулик Алексей aka kpblc
Moderator

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


Н.Н.Полещук - любая книга по lisp. "САПР на базе AutoCAD - как это делается" - как Библия. Понимание того, что код будет работать только в случае, если он загружен - как "дважды два".
P.S. Достало меня тысячу раз объяснять одно и то же: http://autolisp.ru/2015/07/26/lisp-proceed-features/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.07.2015, 21:46
#24
trir


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


я говорю о более базовых вещах...
trir вне форума  
 
Непрочитано 26.07.2015, 21:52
#25
Кулик Алексей aka kpblc
Moderator

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


Насколько мне помнится, нечто подобное еще в школе должны преподавать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.07.2015, 22:00
#26
trir


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


Цитата:
Насколько мне помнится, нечто подобное еще в школе должны преподавать.
это кому как повезло...
trir вне форума  
 
Непрочитано 26.07.2015, 22:01
#27
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Позволю вставить свои 5 (пять ) копеек.
Не забываем, что в первую очередь ПЕРЕД программированием, д.б. еще и постановка задачи. ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 26.07.2015, 22:48
#28
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от trir Посмотреть сообщение
это кому как повезло...
вот это точно. В 80-х у нас были конечно в школе компьютеры, но на них нам удавалось посидеть разве что 1 урок в 2 недели а после уже 90-е были, компьютеры мы не изучали мы их продавали, некогда нам было сидеть самим за ними а вот сейчас время появилось и посидеть за ними Ладно ребята, вы уж занимайтесь своими делами. Всем большое спасибо. И за ссылки, и за название книг. Буду читать учить. Я так то не глупый, попробую без помощи чьей либо справиться.!!!
protorgovec вне форума  
 
Непрочитано 26.07.2015, 23:29
#29
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
"САПР на базе AutoCAD - как это делается" - как Библия.
я бы не советовал эту книгу как библию... хотя на безрыбье и рак - рыба... по автолиспу вооще ни одной нормальной книги нет
лучше заходить время от времени сюда
gomer вне форума  
 
Непрочитано 27.07.2015, 00:04
#30
Кулик Алексей aka kpblc
Moderator

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


Модульность подхода и основные принципы там описаны очень и очень неплохо
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.07.2015, 06:17
#31
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Для того, чтобы все переменные были доступны в каждом документе нет никакой необходимости использовать vl-propagate, vl-bb-set и тому подобное. Особенно не понимая что это и зачем.

Все необходимые данные можно и нужно хранить в файле (любого формата) или в реестре. И чтение в каждый документ производить через автозагрузку. Заодно эти данные будут доступны и вне AutoCAD.

Механизм простой и надежный, использовался ещё в AutoCAD R10, когда никаких vl- ещё и в помине не было.
ShaggyDoc вне форума  
 
Непрочитано 27.07.2015, 23:58
#32
Дима_

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


Цитата:
Сообщение от gomer Посмотреть сообщение
хотя на безрыбье и рак - рыба... по автолиспу вооще ни одной нормальной книги нет
ИХМО - "специалист по автолиспу" - это на сегодня не конкурентная профессия, автолисп очень хороший диалект для своей задачи - гораздо "мощней" многих других встроенных диалектов скриптовых языков. Его можно знать либо "поверхостно", как инструментарий "продвинутого" пользователя в автокаде - который в умелых руках сильно упростит последнему жизнь (либо увеличит доход, либо количество свободного времени на работе, ну или по крайней мере избавит от "веселой" рутины). Либо просто знать любой диалект обычного лиспа (НЕ автолиспа) - тогда автолисп покажется "простой детской игрушкой", но в которую, тем не менее, приятно играть. Для написания чего-то серьезного, с претензией, автолиспа будет мало, надо в любом случае подключать "иные" технологии, либо вообще обходится без него. Хотя конечно в "умелых руках" и на автолиспе можно создать поистине шедевры, от которых может "сломать зубы" и супер-мега программист пишущий на крутом "мейнстримном" языке, со всеми своими продвинутыми библиотеками.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 30.07.2015, 11:37
#33
trir


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


sicp
trir вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp считывание переменной из внедокументного пространства

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Освоение тел Солнечной системы: Техника, технологии, ресурсы. Солидворкер Разное 3697 18.04.2024 08:18
Считывание значение ячейки таблицы в виде Field в AutoLISP tokhot LISP 9 08.01.2017 17:54