
aerohost
Пользователи-
Posts
218 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Blogs
Everything posted by aerohost
-
Lisp.Изменение высоты и ширины MTEXTA (BoundMText)
aerohost replied to aerohost's topic in Полезные дополнения
Подделал, для мультивыноски заливку, Можно в скопе выбрать группу объектов, лисп сам определить где выноска, где Мтекст BoundMText.lsp -
Спасибо, попробуем upd. В целом все работает Честно говоря я не понял что отвечает за рамку Не уж то это ? -1023410175 ?
-
Ну под Мтекст у меня есть лисп, вроде даже с тобой дорабатывали. Вот с Мультивыносками произошел затык.
-
Товарищи. У кого то получилось с помощью lisp у мультивыноски включать выключать фон и менять цвет фона и ширина фона?
-
Всем спасибо, ошибка была в логике. Прикладываю рабочий вариант кода( проверка ребра принадлежит ли двум вершинам)
-
Товарищи, почему у меня везде listPoint[j].Point == listLine.StartPoint: равно False ? Числа одинаковые Тип тоже( поинт 3д). Почему у меня выдает что они не равны ? куда копать, не могу понять...
-
Вадно, приведу прямой пример, имеется плагин SmartLine ( можно найти легко в интернете) когда я подключаю свой этот Dll файл, SmartLine перестает работать, мне быть хоть понять куда начать рыть .... если даже и предположить что у меня какие то дефольные настройки, то в том то плагине явно нет
-
Раз уж тут умные товарищи собрались , воспользуюсь моментом. Почему два dll файла не могу работать вместе? Первый начинает не работать, как это обойти? 😃
-
Дык это случаем не твои авторские лиспы летают по интернету ?)
-
Ну шо то по мне так себе. По мне это уже совсем другой метод. И он должен быть отдельный. Или вновь созданный. Такими темпами лучше создать класс лаяут или лейэр и в нем уж создавать отдельные методы криетлайэрrgb и отдельно криеилайэриндекс по мне какое то действие, создание выделение и т.д должно быть явно выражено в коде И названием класс, явно показать на какой объект воздействует
-
Я немного не понимаю, зачем надувать столько кода ? Этим кодом мы создаем класс чтоб потом его вызвать в основном теле кода ? И тем самым мы сокращаем количеств вызовом для создания слоя ?
-
А зачем возвращать значение булевое значение там, где ничего и не должно возвращать? Типо выполнилось или нет? Тру/фолс?
-
Хочу сразу сказать Я не программист , и образования профильного нет. Просто решил поделится, т.к информации и готовых примеров мало, может кому то понадобится. Возможно написано топорно, но зато работает. C# Начал изучать недели две назад. Моя цель был составить Граф [Матрица,теория графов ]электро сети. Ниже прикладываю код.Функцию которая именно составляет граф вырезал, кому надо, тот допишет ) Ниже прикладываю примеры создания классов, вставка текста, поиск объектов, функция explode, копирование объектов, выделение объектов. Пытался писать в общем виде, чтоб можно было скопировать и вставить. Возможно кто то предложит более рациональные методы реализации, пишите, возьмем себе на заметку )
-
По итогу у меня получилось, прикладываю код, может кому то понадобится для своих нужд и реализации своих идей. Можно сделать бесконечный анализ полилиний (перенс-чилд), но мне хватает глубины 3 его уровня
-
Нет, спасибо за корректировку. Попробую добавлено через 1 минуту Ну я в дебагере смотрел
-
Дак если цикл перебирается , значит видит это значение. Создаётся только один экземпляр, не создаются, которые в цикле Их должно создаться столько, сколько будет в PowerLine.TapsID.Count
-
Товарищи, прошу еще помощи, почему функция CreatClassPowerLine не создает классы ?
-
-
Подскажите, почему у меня выдает все перечисления ? по идеи должно быть только там, где есть общая точка ? using System; using System.Collections.Generic; using System.Linq; using System.Text; using Teigha.DatabaseServices; using Teigha.Runtime; using Teigha.Geometry; using HostMgd.ApplicationServices; using HostMgd.EditorInput; using Platform = HostMgd; using PlatformDb = Teigha; namespace 689 { public class MyClass { [CommandMethod("addEntity")] // название команды, вызываемой в Autocad public void addEntity() { // Сначала получаем БД текущего чертежа Database dbCurrent = Application.DocumentManager.MdiActiveDocument.Database; Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("Пишу вам Тестовое сообщение "); //Выбрать объект PromptEntityOptions peo = new PromptEntityOptions("\nВыберите объект: "); PromptEntityResult per = ed.GetEntity(peo); //Проверка что выбрано if (per.Status == PromptStatus.OK) { //старт транзакции using (Transaction trAdding = dbCurrent.TransactionManager.StartTransaction()) { Entity btrCurrSpace = trAdding.GetObject (per.ObjectId, OpenMode.ForRead) as Entity; ed.WriteMessage("\n ID объекта!!!!!!!!!!: "+ per.ObjectId.ToString()); Polyline acPoly = trAdding.GetObject(per.ObjectId,OpenMode.ForRead) as Polyline; ed.WriteMessage("\n Количество вершин!!!!!!!!!!: "+ acPoly.NumberOfVertices.ToString()); for (int i = 0; i < acPoly.NumberOfVertices; i++) { // Информация о поинте Point2d vertex = acPoly.GetPoint2dAt(i); // Поиск других полилиний вблизи текущей вершины Point3d searchPoint = new Point3d(vertex.X, vertex.Y, 0); //Extents3d searchExtents = new Extents3d(new Point3d(searchPoint.X-1,searchPoint.Y-1,0) ,new Point3d(searchPoint.X+1,searchPoint.Y+1,0)); SelectionFilter acSF = new SelectionFilter(new TypedValue[] { new TypedValue((int)DxfCode.Start, "LWPOLYLINE") }); PromptSelectionResult acPSR = ed.SelectCrossingWindow(searchPoint, searchPoint + new Vector3d(1, 1, 0), acSF); // Проверьте, были ли найдены какие-либо другие полилинии if (acPSR.Status == PromptStatus.OK) { // Пройдите по найденным объектам foreach (SelectedObject acSObj in acPSR.Value) { // Получить найденный объект Polyline foundPl = trAdding.GetObject(acSObj.ObjectId, OpenMode.ForRead) as Polyline; // Выведите информацию о найденном объекте ed.WriteMessage("\n Другая ломаная линия, найденная в вершине " + i + ": " + foundPl.ObjectId.ToString()); } } } //Закрытие транзакции trAdding.Commit(); } } } } }