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

Вернуться   Форум 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 просмотров)

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

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


ИЩи обсуждения с 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,848


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

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


Цитата:
Сообщение от trir Посмотреть сообщение
то что вы приводили с DENBASS2004, это нифига не код, просто скрипты.
это не так, если вы не видите структуры, то это не значит, что ее нет. а если даже ее нет, то это не значит что ее не может быть
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp считывание переменной из внедокументного пространства

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


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