Изчертаване на обекти чрез данни от Excel
Нерядко получаваме или сами създаваме данни в Excel или дори обикновен текстов файл и трябва да ги импортираме в AutoCAD. Excel е наистина мощно средство, чрез което можем да обработваме данни в суров вид и от тях да получим сложни геометрични обекти, които би било много трудоемко да се вкарат ръчно, точка по точка в AutoCAD. Тук говорим за чист AutoCAD, а не Civil или AutoCAD с допълнителни add-ons. Темата отново е провокирана от читател на блога, който би искал да научи повече по въпроса. Един често срещан пример е вкарване на множество точки с X, Y и Z координати. Нека да усложним задачата и да кажем, че тези точки са последователни и трябва да са свързани и да образуват фигура. Това може да е сграда, надлъжен профил и т.н.
Да вкараме ръчно, да кажем 800 точки и след това да ги свържем с линия може да отнеме цял ден и гарантирам, че поне 30 от тях ще са с грешни координати. Можем да на автоматизираме задачата по два основни начина: чрез няколко манипулации в Excel или чрез Autolisp програма. Ще разгледам възможно най-лесният според мен метод, който не изисква никакви програмистки умения, а само ежедневно използвани Windows операции. Естествено и тук има много различни вариации как могат да се направят нещата.
Ако искаме да вкараме ръчно една точка с координати X=10, Y=15 и Z=500 ще изпълним командата point 10,15,500. Целта ни е да накараме AutoCAD да изпълни командата point 800 пъти, като задава съответните координати на точката. Това можем да осъществим в 3 стъпки.
1. Подготовка в Excel
Независимо колко колони има в таблицата, трябва да добавим още една, в която да форматираме координатите на съответната точка във горепосочения вид (10,15,500). За да съединим три колони съдържащи X, Y и Z и да им добавим разделител запетая, трябва да напишем следната формула: =A1 & „,“ & B1& „,“ & C1
Примерът е с X,Y,Z точки в колони A, B и C, започващи от първи ред, но формулата трябва да се модифицира, ако колоните са други. Така сполучваме една колона с координати на точки в AutoCAD стил. Трябва да се внимава разделителят за десетични знаци да не е запетая, а точка. Ако това не е така, трябва да се коригира в Options -> International -> Decimal Separator.
2. Копиране на данните
Избираме само координатите от новата колона в Excel и изпълзяваме командата Edit ->Copy.
3. Вмъкване в AutoCAD
Отиваме в AutoCAD и влизаме в командния ред като натискаме F2. изпълняваме командата MULTIPLE, след това командата POINT и накрая с десния бутон на мишката от менюто избираме PASTE. Готово! всички точки са вкарани за секунда с X,Y,Z координати. При това абсолютно безпогрешно.
Други приложения
Принципът е същият, когато искаме да съединим точките с линия. Просто избираме командата LINE и след това PASTE на точките (този път не е необходимо MULTIPLE). AutoCAD свързва точките с линия. На този принцип могат да се вкарват всякакви по-сложни обекти като например: кръг, елипса, полигони, правоъгълници, 3D обекти. Само трябва формулата в Excel трябва да се модифицира, така че да предоставя на AutoCAD необходимите геометрични данни. Например за кръг, може да му подадете център на окръжността и радиус. При повече изобретателност, с горният метод могат да се направят и доста сложни чертежи, например цели надлъжни профили, генериране на етажни нива и 3D фигури. Естествено, колкото по-сложни стават AutoCAD операциите, толкова повече расте необходимостта задачата да се реши чрез Autolisp програма.





-
georgi
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #1
Отговор |
Цитат
-
Миля
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #2
Отговор |
Цитат
-
jhoro
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #3
Отговор |
Цитат
-
Пламен Панов
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #4
Отговор |
Цитат
-
hristomir.s
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #5
Отговор |
Цитат
-
Ivan Bardarov
printf( __('%1$s at %2$s', 'inove'), get_comment_time(__('F jS, Y', 'inove')), get_comment_time(__('H:i', 'inove')) ); ?>
| #6
Отговор |
Цитат
КОМЕНТИРАЙТЕ:Като цяло това ми се струва доста „дървен“ метод за вкарване на точки. Понеже съм геодезист и ежедневно вкарвам точки от всякакви източници. Незнам какви са възможностите на чистия AutoCAD , аз използвам Civil Design. Но този метод ми се струва неудачен. По-добре е да се потърси някой програмка на Autolisp или най-малкото да се направи скрипт файл.
Поздрави за статиите, с интерес следя какво излиза 🙂
а аз имам обратния проблем – искам да вкарам координатите на точки от чертежа в табличен вид с чистия AutoCAD или ако има подходящ Autolisp за целта.някой може ли да помогне?
Съгласен съм, че този метод е твърде „дървен“ – ако приемем, че това е някакво решение. Но ако разгледаме горния пример като тема за размисъл – вече всеки може да си разработи свой вариант.
За геодезистите ми е ясно, че тоталната станция им дава много възможности.
Но……… по същество.
Примера показва как да си импортираш координатите на множество точки. Стойностите са получени от някаква зависимост . формула или каквото е там. След като си ги импортне всеки сам трябва да реши за какво ще си ги ползва.
При обратния вариант началото е следното:
В таблицата на свойствата на всеки обект в Аутокад има поле с координати – x, y и z. Когато маркираш един или повече обекта и дадеш командата „list“ в резултат ще получиш списък с всички свойства на обекта/обектите, включително и техните координати.
Тук вече става трудно
Ако обекта е „point“ – точка или „block“-блок има една тройка координати – на „point“-а или на точката на вмъкване на блока.
Но ако обекта е линия, полилиния, дъга и т.н. вече ще има няколко (2, 3 и даже повече) координати.
Така, че може и да има нещо готово, но по-добре вземи си книжката за AutoLisp и я прочети. Не е голяма, не е толкова трудно и ще се направиш каквото ти трябва. Самия аз съм правил доста неща на Лисп, но беше преди 3 – 4 години и съм позабравил повечето.
За @georgi
Може би е интересен за теб rapid DXF 4.0
Конвертира всякакви данни към AUTOCAD
От къде мога да смъкна тази програма Rapid DXF ?
Dataextract