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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Мультивыноска по ГОСТу

Lisp. Мультивыноска по ГОСТу

Ответ
Поиск в этой теме
Непрочитано 14.01.2013, 22:02 #1
Lisp. Мультивыноска по ГОСТу
sdv79
 
Инженер ЭОМ
 
Москва
Регистрация: 05.03.2009
Сообщений: 215

Lisp. Добрые люди помогите. Как программно создать мультивыноску (от безысходности соглашусь на мультитекст) по ГОСТу вида
0000000 4х18
8-AOT 0--------
0000000 2,5
Просмотров: 8820
 
Непрочитано 14.01.2013, 22:09
#2
Кулик Алексей aka kpblc
Moderator

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


Сначала сюда
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.01.2013, 22:19
#3
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Кулик Алексей aka kpblc спасибо, обязательно вникну. Если есть у кого готовые наработки, буду благодарен.
sdv79 вне форума  
 
Непрочитано 14.01.2013, 22:22
#4
Кулик Алексей aka kpblc
Moderator

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


Лично я сначала бы руками создал такой MTEXT либо блок с атрибутами, посмотрел на его поведение, а потом уже думал, как его присобачить к выноске или мультивыноске.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.01.2013, 22:29
#5
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Цитата:
Сообщение от sdv79 Посмотреть сообщение
соглашусь на мультитекст
А почему бы не блок? 3 атрибута, немного динамичности. И можно будет использовать в подсчёте для спецификации
__________________
Алексей
bargool вне форума  
 
Автор темы   Непрочитано 14.01.2013, 23:06
#6
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


bargool решение хорошее, но блоки уже есть, сами светильники, для спецификации они считаются через БД (Access). А вот возможности создавать мультивыноску по ГОСТу, после расчета освещенности, для пользоватетелей будет клево. Закрыв глаза и сделать убого, можно, из простых трех фрагментов текста. Хочется эстетики. Часто бывает что надпись закрывает светильники. Куда удобнее и быстрее в другое помещение вынести выноску со светильниками чем блок или фрагменты текста (брр).

Последний раз редактировалось sdv79, 14.01.2013 в 23:16.
sdv79 вне форума  
 
Непрочитано 14.01.2013, 23:20
#7
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


sdv79, вот здесь я приложил блок "GroupLeader" (во вложениях), он у меня служит в качестве выноски обозначения групп кабелей. Заполняется программно, вставляется тоже (взаимодействие с пользователем). Как вариант, можно сделать нечто подобное. Работу с динамикой в лиспе я видел в теме от Supermax, как минимум
__________________
Алексей
bargool вне форума  
 
Автор темы   Непрочитано 14.01.2013, 23:33
#8
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


C# .net пока нет. Админы сороний софт на работе не ставят, даже Access и того нет приходится через Libre работать, OpenDCL начал изучать и тот удалили, СУ... ,на win 7 х64 не хотят бесплатный модуль Microsoft Access Database Engine 2010 Redistributable_x64.exe для работы с БД поставить.
Работа с групповыми линиями для электриков - моя тема, удивил в Win ELSO очень давно, понравилась, сам хочу сделать такой модуль, не сейчас.
Создание дополнительных параметров Visibility Set в динамических блоках изучал, когда работал с OpenDCL (редактировал автомат-менял видимость).
Ребята, мне нужна мультивыноска с надписью по ГОСТу (как в заголовке), худший вариант мультитекст, помогите на LISP, блоки и тексты-это компромисс от безысходности.
sdv79 вне форума  
 
Непрочитано 15.01.2013, 02:09
#9
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Скинь скриншот или чертеж с выноской (А 2010)
или с образцом мультитекста в слоях и высотой по ГОСТУ
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 15.01.2013, 10:46
#10
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Чертеж с выноской
Вложения
Тип файла: dwg
DWG 2004
Чертеж7.dwg (159.3 Кб, 3088 просмотров)
sdv79 вне форума  
 
Непрочитано 15.01.2013, 11:38
#11
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


А если поставить в настройках стиля мультивыноски Присоединение слева/справа - Подчеркивание последней строки, это не решит вашу пробему?
Вложения
Тип файла: dwg
DWG 2004
Чертеж8.dwg (134.1 Кб, 3030 просмотров)
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Автор темы   Непрочитано 15.01.2013, 12:17
#12
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


pan твой вариант тоже подходит, только мне необходимо программно на Lisp формировать мультивыноску, а не руками. Нужен код
sdv79 вне форума  
 
Непрочитано 15.01.2013, 14:33
#13
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Если это поможет - могу выложить .NET код, решающий данную задачу. Возможно кто-нибудь по аналогии воссоздаст LISP вариант обозначенной логики.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 15.01.2013, 14:37
#14
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


hwd милости просим, с упованием на модератора и ГУРУ( откликнетесь).
sdv79 вне форума  
 
Непрочитано 15.01.2013, 14:44
#15
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Исходный код на .NET:
Код:
[Выделить все]
using System;
using cad = Autodesk.AutoCAD.ApplicationServices.Application;
using AppSrv = Autodesk.AutoCAD.ApplicationServices;
using DbSrv = Autodesk.AutoCAD.DatabaseServices;
using Geom = Autodesk.AutoCAD.Geometry;
using Rtm = Autodesk.AutoCAD.Runtime;

[assembly: Rtm.CommandClass(typeof(AndreyBushman.CAD.Sample))]

namespace AndreyBushman.CAD {

    public sealed class Sample {

        [Rtm.CommandMethod("netTextMLeader")]
        public static void netTextMLeader() {
            AppSrv.Document doc = cad.DocumentManager.MdiActiveDocument;
            DbSrv.Database db = doc.Database;

            using (DbSrv.Transaction tr = db.TransactionManager.StartTransaction()) {
                DbSrv.BlockTableRecord csp = tr.GetObject(
                    db.CurrentSpaceId, DbSrv.OpenMode.ForWrite) as DbSrv.BlockTableRecord;

                DbSrv.MLeader mLeader = new DbSrv.MLeader();
                mLeader.SetDatabaseDefaults();

                mLeader.ContentType = DbSrv.ContentType.MTextContent;

                mLeader.SetTextAttachmentType(
                    DbSrv.TextAttachmentType.AttachmentBottomLine,
                    DbSrv.LeaderDirectionType.LeftLeader);

                DbSrv.MText mText = new DbSrv.MText();
                mText.SetDatabaseDefaults();
                mText.Width = 1.5;
                mText.Height = 2;
                mText.Contents = "\\pxse 1;8-AOT\\A1;{\\H0.7x;\\S4x18/2,5;}";
                mText.Location = new Geom.Point3d(200.0, 200.0, 0);
                mText.TextStyle = db.Textstyle;
                mLeader.MText = mText;

                Int32 idx = mLeader.AddLeaderLine(new Geom.Point3d(190.0, 190.0, 0));

                Geom.Matrix3d transfo = Geom.Matrix3d.Displacement(new Geom.Vector3d(0, 0, 10));
                mLeader.TransformBy(transfo);

                csp.AppendEntity(mLeader);
                tr.AddNewlyCreatedDBObject(mLeader, true);

                tr.Commit();
            }
        }
    }
}
Результат:

Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 1444
Размер:	2.1 Кб
ID:	94300  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.01.2013, 15:55
#16
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Пробуй, добавил немного изменений
Вложения
Тип файла: lsp MLeader-For-Notes.LSP (4.4 Кб, 163 просмотров)

Последний раз редактировалось Олег (jr.), 15.01.2013 в 21:35.
Олег (jr.) вне форума  
 
Непрочитано 15.01.2013, 18:47
#17
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Пробуй
Не знаю как у других, а у меня, в AutoCAD 2009 Enu SP3 x64 этот LISP код создаёт вот такую порнографию:



Если начинаю перетаскивать ручки, то Jig показывает текст:



Но стоит только завершить редактирование, как всё (кроме ручек) исчезает.

UPD
Цитата:
Сообщение от Олег (jr.)
добавил немного изменений
1. Не решена проблема "прилипания" текста к полке выноски (в приведённом мною коде, я решал это путём добавления "\\pxse 1;").
2. По выполнению построения, команда не завершается, а автоматом запускается по новой - приходится лишний раз жать Esc. Может это конечно и "так задумано"...
3. Настройки созданного объекта мультивыноски не полностью соответствуют настройкам текущего стиля мультивыноски:
3.1. Неправильные значения свойств Left Alignment и Right Alignment).
3.2. Неправильное значение используемого текстового стиля - оно не читается из текущего стиля мультивыноски (как логично ожидается), а принудительно назначается как Standard.
Это то, что сразу бросается в глаза. Другие свойства не сверял.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 1422
Размер:	29.5 Кб
ID:	94341  Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 1427
Размер:	3.6 Кб
ID:	94342  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 16.01.2013 в 12:46.
hwd вне форума  
 
Автор темы   Непрочитано 16.01.2013, 20:05
#18
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


hwd хочу поблагодарить за код. Ваша строка \\pxse 1;8-AOT\\A1;{\\H0.7x;\\S4x18/2,5;}" натолкнула на мысль извлечь сущность выноски или мтекста. В итоге получилось создать мтекст по ГОСТу, один компромисс есть.
Олег (jr.) ваш вариант еще не смотрел, на работе нет инета (usb, CD закрыто), спасибо. Завтра посмотрю.
sdv79 вне форума  
 
Непрочитано 16.01.2013, 20:21
#19
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от sdv79 Посмотреть сообщение
Олег (jr.) ваш вариант еще не смотрел, на работе нет инета (usb, CD закрыто), спасибо. Завтра посмотрю
Не забудь изменить имя текстового файла стиля,
я использовал "Standard" как в твоем чертеже
и слой тоже как там

Последний раз редактировалось Олег (jr.), 16.01.2013 в 20:37.
Олег (jr.) вне форума  
 
Непрочитано 16.01.2013, 20:25
#20
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
текстового файла,
скорее подразумевался стиль, а не файл...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Мультивыноска по ГОСТу

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) Red Nova LISP 4555 24.03.2024 13:44
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19