Jump to content

aerohost

Пользователи
  • Posts

    218
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by aerohost

  1. Подделал, для мультивыноски заливку, Можно в скопе выбрать группу объектов, лисп сам определить где выноска, где Мтекст BoundMText.lsp
  2. Спасибо, попробуем upd. В целом все работает Честно говоря я не понял что отвечает за рамку Не уж то это ? -1023410175 ?
  3. Ну под Мтекст у меня есть лисп, вроде даже с тобой дорабатывали. Вот с Мультивыносками произошел затык.
  4. Товарищи. У кого то получилось с помощью lisp у мультивыноски включать выключать фон и менять цвет фона и ширина фона?
  5. Всем спасибо, ошибка была в логике. Прикладываю рабочий вариант кода( проверка ребра принадлежит ли двум вершинам)
  6. Товарищи, почему у меня везде listPoint[j].Point == listLine.StartPoint: равно False ? Числа одинаковые Тип тоже( поинт 3д). Почему у меня выдает что они не равны ? куда копать, не могу понять...
  7. Вадно, приведу прямой пример, имеется плагин SmartLine ( можно найти легко в интернете) когда я подключаю свой этот Dll файл, SmartLine перестает работать, мне быть хоть понять куда начать рыть .... если даже и предположить что у меня какие то дефольные настройки, то в том то плагине явно нет
  8. Раз уж тут умные товарищи собрались , воспользуюсь моментом. Почему два dll файла не могу работать вместе? Первый начинает не работать, как это обойти? 😃
  9. Дык это случаем не твои авторские лиспы летают по интернету ?)
  10. Ну шо то по мне так себе. По мне это уже совсем другой метод. И он должен быть отдельный. Или вновь созданный. Такими темпами лучше создать класс лаяут или лейэр и в нем уж создавать отдельные методы криетлайэрrgb и отдельно криеилайэриндекс по мне какое то действие, создание выделение и т.д должно быть явно выражено в коде И названием класс, явно показать на какой объект воздействует
  11. Я немного не понимаю, зачем надувать столько кода ? Этим кодом мы создаем класс чтоб потом его вызвать в основном теле кода ? И тем самым мы сокращаем количеств вызовом для создания слоя ?
  12. А зачем возвращать значение булевое значение там, где ничего и не должно возвращать? Типо выполнилось или нет? Тру/фолс?
  13. Хочу сразу сказать Я не программист , и образования профильного нет. Просто решил поделится, т.к информации и готовых примеров мало, может кому то понадобится. Возможно написано топорно, но зато работает. C# Начал изучать недели две назад. Моя цель был составить Граф [Матрица,теория графов ]электро сети. Ниже прикладываю код.Функцию которая именно составляет граф вырезал, кому надо, тот допишет ) Ниже прикладываю примеры создания классов, вставка текста, поиск объектов, функция explode, копирование объектов, выделение объектов. Пытался писать в общем виде, чтоб можно было скопировать и вставить. Возможно кто то предложит более рациональные методы реализации, пишите, возьмем себе на заметку )
  14. Вот честно говоря, что мне нужно было, ничего там не нашел, информация была или забугорных сайта или научный тык. Или другой вариант,я криворукий и как то неправильно ищу материал ...
  15. Дак я вроде пробовал, все равно не ломает поллиллинии. Пока нашел костыли, просто в консольную команду послать explode. В пн гляну ещё разок добавлено через 1 минуту Там как то все мертво
  16. А я правильно понимаю у Ncada не класса BranchGraph ? И еще вопросик, нет ссылочки на примерки как реализовать explode в С#( на примере полиллинии), что то путного не смог ничего найти....
  17. Ну да, мой метод работает, добавил флаги, появилось выделение , их обязательно только в самом начале добавлять или как то можно потом в середине кода ?
  18. Я оказывается уже пробовал данный метод, но что то у меня не получилось, я так понимаю это связанно с фалагами, я только немного не понял как их в целом использовать внутри функции. Находил документацию, там написано можно взять лист классов и преобразовать в массив, но что то не получилось....
  19. Товарищи, не могу найти метод, который делает выделение объектов в Ncad, зная их id ( имеется лист id объектов). в Acad это был вроде как SetSelect
  20. По итогу у меня получилось, прикладываю код, может кому то понадобится для своих нужд и реализации своих идей. Можно сделать бесконечный анализ полилиний (перенс-чилд), но мне хватает глубины 3 его уровня
  21. Нет, спасибо за корректировку. Попробую добавлено через 1 минуту Ну я в дебагере смотрел
  22. Дак если цикл перебирается , значит видит это значение. Создаётся только один экземпляр, не создаются, которые в цикле Их должно создаться столько, сколько будет в PowerLine.TapsID.Count
  23. Товарищи, прошу еще помощи, почему функция CreatClassPowerLine не создает классы ?
  24. Подскажите, почему у меня выдает все перечисления ? по идеи должно быть только там, где есть общая точка ? 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(); } } } } }
×
×
  • Create New...