|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.10.2009, 15:49 | #1 | |
Обновление программы Василия Кондрата "крепеж"
SPB
Регистрация: 27.04.2008
Сообщений: 3,285
|
||
Просмотров: 26244
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
В "Похожих" внизу не посмотрел?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
«Прокат» Василия Кондрата у меня работает. А вот "крепеж"- нет. Лиспом не владею. В VBA переводить долго и мучительно. Может кто-нибудь и подскажет что где подправить, что дописать и где найти. А может у кого-то уже все есть для рисования болтовых соединений.
__________________
С уважением sbi |
||||
|
||||
Помогаю, кому делать нечего. Регистрация: 27.03.2009
Русская деревня
Сообщений: 394
|
Использовать выложенную Вами программу можно, только в файлах *.dat
приведены устаревшие данные ГОСТов - размеры головок болтов поменялись (появился ключ на 13) и т.п. Поэтому файлы *.dat подлежат ревизии и доработке. А так открой файл WRITE2000.lsp и поправь там строчку (findfile "support/acad2000.lsp") на скажем (findfile "support/acad2008.lsp") Затем загрузи файл WRITE2000.lsp. и можно работать. Последний раз редактировалось E-degtyarev, 19.10.2009 в 16:57. |
|||
|
||||
После загрузки в 2009 ru и ввода " krpg" появляется окно выбора крепежа и OK пишет:
Неправильное ключевое слово. ; ошибка: Функция отменена а затем вот это: Задайте опцию [?/Создать/Установить/Новый/переименоватЬ/Вкл/Откл/Цвет/Тип линий/вЕс И вопрос по классику: "Что делать?" В 2007en- все рисует.
__________________
С уважением sbi |
||||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Цитата:
__________________
С уважением sbi |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А если опции вводить с подчеркиванием впереди, тоже не "подхватывается"?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Не, если с клавиатуры ввести "Д" (возможно и "_Yes", не пробовал), то подхватываются. Я имею в виду, контекстное меню по ПКМ.. В нем все опции на инглише, а автокад ждет на великом и могучем...
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Вот что пишет 2007:
Command: krpg ._block Enter block name or [?]: A0A000 Specify insertion base point: Select objects: 22 found Select objects: Command: _layer Current layer: "Center" Enter an option [?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck/Unlock /stAte]: s Enter layer name to make current or <select object>: 0 Enter an option [?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck/Unlock /stAte]: Command: ._insert Enter block name or [?]: A0A000 Units: Inches Conversion: 1.0000 Specify insertion point or [Basepoint/Scale/X/Y/Z/Rotate]: Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>: 1 Enter Y scale factor <use X scale factor>: 1 Specify rotation angle <0>: В acad2007.lsp and acad2009.lsp одно и тоже: (if (not (= (substr (ver) 1 11) "Visual LISP")) (load "acad2009doc.lsp")) ;; Silent load. (princ) ;;; ;;; (load "support/blts/krpz.lsp") А результат разный! точки и _ применял, востановил до диска, м.б. переустановка поможет, иль надо искать EN версию
__________________
С уважением sbi |
||||
|
||||
мелкий местный хищник Регистрация: 20.10.2009
замкадье
Сообщений: 72
|
sbi, ACAD 2009 Rus. После применения точек и подчеркиваний - все заработало.
Погоди переустанавливать, попробуй через комстроку (command "._-layer" "_m" "2" "_c" "7" "" "") Если слой «2» не создастся – тогда не знаю. [FONT="]Если создастся – проверь еще раз наличие подчеркиваний в опциях .-[/FONT][FONT="]Layer[/FONT] |
|||
|
||||
Цитата:
Диспетчер слоев работает от Layer.
__________________
С уважением sbi |
||||
|
||||
мелкий местный хищник Регистрация: 20.10.2009
замкадье
Сообщений: 72
|
Подчеркивания должны быть в файлах
blts.lsp gks.lsp shb.lsp vint.lsp Там в опциях команды layer они (подчеркивания) пропущены, поэтому в аглицком ACADе работает, а русском - нет [FONT="]Попробуй это[/FONT] |
|||
|
||||
Программа содержит рад недочётов:
1. В дистрибутиве имеются два разных файла (write2000.lsp и write14.lsp), которые вносят в файлы "support/acadr2000.lsp" и "support/acadr14.lsp" соответственно строку записи, загружающую нужный lsp-файл. Такое решение нецелесообразно, т.к. придется вносить изменение в файлы для каждой версии Автокада. Это лишние телодвижения, которых легко можно избежать. Тем более, что если юзер не знает Lisp, то для него скорее всего не будет очевидным то, как ставить дистриб на др. версии Акада. Решение: А. На вкладке Files диалогового окна _options добавить путь к нужному каталогу, хранящему исходники (не важно где он будет лежать - на сервере или в любом др. месте). Б. На панели инструментов создать новую кнопку, в которую поместить такой код: ^C^C(if (= KRPG nil)(Load(findfile "blts/krpz.lsp")));KRPG; В. Выше указанные файлы удалить из дистрибутива. Однако это ещё не всё... Читаем далее... 2. В ряде файлов, автор жёстко в коде прописал пути начиная с "support". Это не есть хорошо, т.к. юзер может пожелать разместить каталог с программкой в сети, в доступное для всех место с тем, чтобы все им пользовались, а не копировать её на каждый комп локально. Устанавливать каждому локально - неверное решение как с точки зрения объема работы (если юзеров много, то админ повесится это делать), так и с точки зрения безопасности - при грамотной организации защиты, юзеры не работают под админскими правами и не смогут вносить изменения в ряд каталогов (в "Program Files" в том числе). Недочёт с жёстким указанием каталога "support" в коде так же легко исправить. Можно конечно же в _options указать одним из каталогов, расположенных на сервере такой, который будет содержать в себе папку "support", однако это не оч. хорошее решение. Решение: - Следует выполнить аудит по всем lsp-файлам и удалить часть строкового пути "support/". Это легко сделать блокнотом, выполнив замену (Ctrl + H). 3. Программа начинает "хозяйничать" со слоями, создавая новые и внося изменения в существующие. Как результат - сразу же начинают дико материться подключенные модули нормоконтроля. При попытке выполнить check stantards автокад выдаёт сообщения, мол имеется активный процесс, нажмите ввод или retry.... Это сообщение он выдаёт раз за разом, хотя никакого процесса нет. При этом не производя исправления нарушений. После настойчивых попыток всё же выполнить check - автокад осыпается в fatal error. В составе моих стандартов имеются слои "0" - он есть у всех, и слой "Размеры" - тут наименование моего слоя совпало с наименованием слоя, который программа пытается создать и изменить. Создать она не может, т.к. слой уже есть, но изменить - изменяет. Она меняет состав слоя "0" и слоя "Размеры". Соответственно стандарты начинают на это реагировать. Однако по непонятным мне причинам выполнить исправления модуль нормоконтроля не может.... Т.о. следует исключить из программы код, выполняющий изменение в составе слоёв чертежа. Решение: В файлах gks.lsp, shb.lsp, blts.lsp, vint.lsp автор дублирует три функции: lay_o, lay_t и lay_a. Во первых, дубляж не есть хорошо... Это признак плохого стиля кодирования, когда потом за автором будут "прибирать" те, кто работает с его кодом... Во вторых - именно эти функции как раз и "хозяйничают" со слоями. Во всех перечисленных мною файлах следует выполнить следующие замены (так же через Notepad, как я указывал выше): (lay_o) заменить на ;(lay_o) (lay_a) заменить на ;(lay_a) (lay_t) заменить на ;(lay_t). После выполнения этих действий модули нормоконтроля успокаиваются. Теперь нужно немного подправить код, чтобы блоки выглядели нормально (с этим буду возиться позже). 4. Не однотипная реализация графических объектов, создаваемых программой - винты, гайки и шайбы на вычерчиваются на слое "0", а болты - на текущем. Имхо - размещаться блоки должны на текущем слое, а линии в его составе должны быть выполнены на слое "0", дабы наследовать свойства слоя, на котором расположено вхождение блока.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 02.02.2010 в 22:25. |
||||
|
||||
конструктор Регистрация: 14.09.2008
Сообщений: 143
|
все это хорошо, но я "пользователь" и с тонкостями незнаком.
создал катоалог "D:\Program Files\AutoCAD 2004\support\Blts" и прописал его в настройках - непомогло. С диск мне закрыт потому D. пробовал выполнить по пунктам что описано не помогло. получил при нажатии кнопки Команда: (if (= KRPG nil)(Load(findfile "blts/krpz.lsp"))) ; ошибка: неверный тип аргумента: stringp nil Команда: KRPG ; ошибка: неверный тип аргумента: stringp nil Команда: |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обновление программы «Прокат» Василия Кондрата | Владимир М | LISP | 851 | 14.03.2023 14:31 |