|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
>> Кот Пушок
Для ZWCADa 2008 написал лисп создания слоев по запросу, к сожалению, там он работает частично, зато в AutoCADe все замечательно. Для каждого слоя сделал кнопку с макросом на панельке. Можно, конечно, задавать слой автоматом при черчении определенных элементов (была тут тема о простановке размеров на отдельном слое), но я так и не смог объяснять это ZWCADу. Посмотрите, может пригодится чего. Еще обнаружил в 2006-8 автокадах такое ограничение для команд и функции "entmake"- если в слое используется тип линии отсутствующий в чертеже, то слой создан не будет. Приходится сначала создавать тип линии, а потом уже слой. Последний раз редактировалось Олег К., 17.10.2012 в 11:06. |
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Цитата:
Но то, что очевидно для знающего язык, не всегда понятно для того, кто начал этим интересоваться полторы недели (или две) назад. Тоесь - для меня. Моя строка выглядела так: Command: _la -LAYER Current layer: "0" Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Fre eze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: p Enter a plotting preference [Plot/No plot] <Plot>: n Enter layer name(s) for this plot preference <0>: А лисп заработал только после "_plot" "no" - но, как я уже говорил, для того, чтобы составить именно такое сочетание, мне пришлось поломать голову. Недолго, но пришлось. Ну, да дело уже прошлое, сейчас список слоев на просмотре у босса, как отредактирует названия, толщину линий и пр, буду заниматься дальше. Назрела необходимость для наших двух оффисов создать систему слоев, удобную НАМ для пользования, до этого пользовались системой, созданной "головным оффисом". А никого, кто знает лисп, у нас здесь нет. Вот, решил попробовать я. Премного благодарен. Буду изучать. У меня в начале было в распоряжении два списка слоев, но: Один список вообще не заработал, второй заработал, но "_с" я посчитал, служит для задания линии "continuous", а потом, когда ничего не получилось, ес-сно, gomer написал коммандную строку, в которой мне, наконец, стало ясно, что от чего зависит. Вот такое вот - обучение Лиспу на примере. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Кот Пушок, когда ты познаешь лисп, твой мир изменится! Ты когда-нибудь слышал о деревьях?
Вот твое меню команды слой - то самое дерево, или даже не дерево, а лабиринт. Сначала перед тобой множество дверей-опций, ты открываешь одну из них, выбирая опцию Plot и вдруг перед тобой еще перед тобой две двери - Plot и No plot. Откроешь любую и ты снова в начале лабиринта, но ты уже прошел немалый путь и твой новый слой не будет печататься. Вот почему твой код выглядит, как Код:
зы, сорри за стеб, вот так это должно выглядеть, имхо |
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Да, я в самом деле иногда чувствую себя как кот, сидящий на конце ветки дерева.
Ну, или в лабиринте. Есть чему учиться, но иногда в учебнике дается пример, а до конца не поясняется. Или не знаешь просто, на что обратить внимание в первую очередь. Вот и выходит лабуда. А это то, что у меня получилось, с твоей помощью: (defun c:MH-lay () (command "_layer" "_n" "Background" "_c" "252" "Background" "_l" "continuous" "Background" "") (command "_layer" "_n" "Background-Hidden" "_c" "252" "Background-Hidden" "_l" "hidden" "Background-Hidden" "") ; здесь список из еще почти 50 слоёв (command "_layer" "_n" "TitleBlkText" "_c" "white" "TitleBlkText" "_l" "continuous" "TitleBlkText" "") (command "_layer" "_n" "Worklines" "_c" "53" "Worklines" "_l" "continuous" "Worklines" "_plot" "no" "Worklines" "") (command "_layer" "_s" "0" "") ) Понемногу продвигаюсь вперд по тернистым тропам Лиспа. Написал набросок опоры подшипника головного барабана конвейера, рисует, забавно. Теперь изучаю, как сделать, чтобы задавать различные размеры подшипников, разную высоту от платформы до центра барабана, и т.д. Читаю, грызу гранит, глядишь, может, чего и выйдет. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Похоже что ты идешь не в ту сторону, Пушок. Переходи на темную сторону, у нас вкусные печеньки
А зачем? Чтоб нарисовать печеньку в определенном слое нужен всего лишь один слой... остальное мусор, мусор обычно хранят в шаблонах, а контролируют с помощью стандартов оформления, о чем тут уже сказали... Кстати, есть еще замечательная утилитка - LayerCreator. Там все уже написано до нас Цитата:
ну вот ты уже и подошел к параметрическому черчению, это уже прогресс, теперь изучай функции ввода/вывода информации а ля get*** А когда надоест, переходи к диалогам |
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Цитата:
Помогите! Пишу: (defun c:str () (info) (draw) ) (defun info () (princ "Please click a point: ") (setq pt (getpoint)) (setq d (getreal "\nEnter distance in inches: ")) ) (defun draw (/ pt) (command "_line" pt d "") ) Хочу нарисовать линию любой задаваемой длины. Нифига не выходит... |
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Пробовал писать
(command "_line" pt "@0,d" "") все равно d не читает. а вот так работает: (setq startpt (getpoint "Select the start point:")) (setq endpt (getpoint "Select the end point")) (command "_line" startpt endpt "") в любом направлении пишет отрезок, не зависимо ОРТО включенно или нет. Не пойму, как переменную правильно ввести... |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
(command "_line" pt (strcat "@0," (rtos d)) "") как-то так...
Ну основное в функции draw переменная pt локализована и равна nil а отрезок из ниоткуда, также трудно построить, как и отрезок в никуда Последний раз редактировалось gomer, 23.10.2012 в 02:05. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Видимо шпоночный паз
Цитата:
А первых строках своего письма, хочется предположить, что динамический блок в данном случае предпочтительнее А во-вторых, жмите F2 и смотрите что вы там наворотили |
|||
|
||||
Механик-конструктор Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25
|
Цитата:
Я ж говорил, первые шаги и первые попытки. Учусь, так сказать. А за помощь - спасибо. Буду дальше биться головой ап стену. Постараюсь на следующей неделе разобраться в этом "концептуально" плохом коде. Последний раз редактировалось Кот Пушок, 28.10.2012 в 06:36. |
|||
|
||||
Регистрация: 17.10.2012
Сообщений: 4
|
Добрый день, у меня вопрос по замечательному лиспу, который похоже написал Кулик Алексей aka kpblc, поэтому надеюсь с топиком я не промахнулся.
Лисп автоматически последовательно нумерует точки, а затем экспортирует их координаты в txt/csv-файл. Работает он отлично, но у него есть один недостаток: если ты промахнулся мимо нужной точки отменить действие увы нельзя. Комбинация <Ctrl>+<Z> выдает сообщение "Неверная точка", а нажатие клавиши <Esc> завершает нумерацию и появляется окно выбора папки для сохранения результатов. Буду очень благодарен если вы поможете это исправить. Код:
Последний раз редактировалось papelard, 06.11.2012 в 13:19. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |