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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Управление моделью програмно

Управление моделью програмно

Ответ
Поиск в этой теме
Непрочитано 16.12.2008, 12:44 #1
Управление моделью програмно
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Управление моделью програмно,
Решил сделать несколько функций, которые
облегчили бы мне копирование блоков из чужих чертежей,
допустим кто-то в конторе сделал новый блок, он мне понравился
и я хочу записать этот блок в свою библиотеку блоков, привязываю функцию на
кнопку, кликнул на нее, дал имя и блок сохранен в нужной мне директории.
Ну это все предисловие.

Как програмно создать новый DWG скопировать в него что-либо и закрыть?


Заранее благодарен!!!!
Просмотров: 2973
 
Непрочитано 16.12.2008, 21:00
#2
Дима_

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


По хорошоему тут видимо надо к VB прибегать, но я в нем очень и очень - совсем не как, но так как и знатоки молчат, могу предложить метод через ж... - но вроде получается, алгоритм пришлось изменить, ну не может он командными методами открыть новый файл (по крайней мере у меня не получилось), но если попробывать с левой резьбой:
Код:
[Выделить все]
(defun c:saveselect ()
(command "_copyclip" (ssget) "")
(command "_erase" (ssget "_a") "")
(command "_purge" "_a" "*" "_n")
(command "_pasteclip" '(0 0))
(command "_save" (getfiled "Куда сохранить..." "save" "dwg" 1))
(command "_u")
(command "_u")
(command "_u")
(command "_u")
);end of saveselect
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.12.2008, 23:27
#3
Кулик Алексей aka kpblc
Moderator

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


"Блок" не может быть сохранен в директории. Он может быть сохранен только внутри другого DWG-файла.
Сопутствующие вопросы:
1. Имя файла библиотеки как вводить? Руками?
2. Что делать, если имя файла введено неверно (то есть файла с таким именем попросту не существует)?
3. Библиотека блоков состоит из 1 файла или из нескольких? Это важно для следующего вопроса.
4. Что делать, если блок с таким же именем уже существует в библиотеке? Надо ли проверять существование имени "импортируемого" блока во всех файлах библиотеки?
Это элементарные вопросы, без ответа на которые вообще браться за написание смысла нуль. А есть еще вопросы типа "блок подвергся изменению в библиотеке / в текущем файле"; "блок на самом деле динамический и там введены несколько новых параметров" и т.п.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.12.2008, 08:36
#4
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


1. Можно руками, можно просто дать переменной какое-нибудь значение для тестирования
(я не претендую на готовую программу :-))
2. 3. Для каждого блока создается свой отдельный файл.
4. Должен вылететь "алерт", что такой файл уже существует.
Holon вне форума  
 
Непрочитано 17.12.2008, 18:20
#5
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


вы вкурсе про команду _wblock?
Sleekka вне форума  
 
Непрочитано 18.12.2008, 02:59
#6
Кулик Алексей aka kpblc
Moderator

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


Sleekka, надо использовать некомандные методы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.12.2008, 10:34
#7
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


насколько я понял, вся задача автора решается этой командой - т.е. она и есть та программа которую он хочет написать, я так на всякий случай уточнил, или стоит задача написать свой wblock.
Sleekka вне форума  
 
Непрочитано 18.12.2008, 11:41
#8
ShaggyDoc

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


Никак не пойму, причем тут "управление моделью программно"?

Если разговор о некоей "коллекции" блоков, то это совершенно другое. Организовать коллекцию можно разными способами.

1. Каждый блок - отдельный файл. Вот такой файл можно и записать с помощью wblock. Только с умом. С учётом будущего применения.
2. Несколько "библиотек" блоков. Каждая "библиотека" - dwg-файл, в котором содержится может быть несколько сотен определений блоков. Пополнять такую библиотеку лучше всего прямым редактированием, и copy-paste здесь далеко не самый лучший способ. А уж "удаленно" - тем более.

Но гораздо важнее - как использовать потом всё это "непосильным трудом" накопленное или награбленное добро. Как выбирать нужный блок из нужного файла или библиотеки, как вставлять (вариантов может быть много). Тут на свою память "знаю, где что лежит" надеяться не стоит. Здесь серьезная программная поддержка требуется.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Управление моделью програмно

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что вы делаете с 3D моделью? Jerald Разное 14 25.08.2007 16:09
Курс "Организация и управление в области проектирования walter Организация проектирования и оформление документации 2 09.01.2007 12:38
КАК Програмно включить/выключить ToolPalettes ??? Startrek Программирование 10 25.04.2006 00:31
Управление OSNAP из AutoLISP? Sergey! LISP 4 17.02.2004 07:29