Автоматизация с AutoLISP за НЕпрограмисти

Безплатни 20 урока
регистрирай се и научи

Ако сте вече потребител - Регистриран съм
Видео

Връзки


Търсене в Google за програми. (Препоръчвам да се добави и ключова дума специфична за програмата, която търсите)

Тест за преминаване към следващия урок

 
Трябва ли да знаем Autolisp, за да си сваляме и използваме autolisp скриптове от Интернет?
Не, мога да си ги сваля и да си ги пусна
Да, без разбиране на кода не може да се пусне програмата

Въпроси и отговори

  • А как се работи с XREF подложка?

    Veselina Vasileva:

    А как се работи с XREF подложка?

    Иван Цукев:

    @Veselina Тази тема се разглежда в бонус модула

  • Александър Борисов:

    Забелязах,че програмата работи когато текста е едноредов,иначе не се получава :)

    Martin Antonov:

    При мен (версия 2014) се получава и при двата вида текстове, но ми променя прецизността. Прибавям цяло към цяло число и то ми добавя .000 след числото. Някой знае ли какво мога да направя по този случай?

  • Защо не мога да въведа десети ( стотни )  в едноредов текст ?

    Александър Борисов:

    Направих едноредов текст, но или ми маха числата след десетичната запетая или ми слага на всички едни и същи стойности след десетичната запетая.(имам 103.45;105.18....., и искам да прибавя 0.42, задействам програмата и ги превръща в 103.42,105.42 и т.н.)Пробвах да правя корекции по текстовете от вашия пример във видеото и се получава без грешка. Къде може да е причината? :)

    Иван Цукев:

    @Александър

    Да, по принцип си е и по-добре да се ползват едноредови текстове за единични числа. Многоредов текст ползваме само като имаме по-дълъг текст.

    Проблемът ми прилича на проблем с десетичната запетая. Примерно ако текстовете са със запетая вместо точка и програмата игнорира цифрите след запетаята.

    Аз бих пробвал да сменя знака на десетичната точка (какъвто и да е - "," или "." ) с другото и да видя дали проблема не е от там.

  • Как да сваля файловете под видеото?

    Надежда Пламенова Пейчева:

    Здравейте
    Имам един въпрос - как свалихте файла така, че като отворите AutoCAD и започнете да правите упражнението от урока да го направите без проблем. На мен не ми дава да го сваля файла (Свали Urok-12-AddN.LSP ) какво трябва да направя?
    Благодаря предварително

    Иван Цукев:

    Надежда,

    Пробвай да свалиш файла с клинк на десния бутон на мишката и опцията save as

    Slavtscho Slavev:

    След като си свалил файла не винаги се разчита разширението - "LSP". За това препоръчвам - отиваш на сваления файл и го преименуваш - изтриваш "Urok-12-"  и след "AddN" слагаш точка и разширението ".LSP". Елементарно е (да ме простят колегите), но практиката ми показва, че доста хора не го правят. ;-).

    Надежда Пламенова Пейчева:

    Много Благодаря за отговорите .


  • Деница Янева Стефанова:

    При мен не се получава да извикам командата. Вписвам ADDN в командния ред и не я разпознава, а съм я заредила вече. Какъв може да е проблема? Благодаря

    Деница Янева Стефанова:

    Всъщност впоследствие се получи :)

  • Иван Пеев:

    Не мога да сваля програмата , от там не се получава Load и т.н. Моля по -подробно за свалянето на програмата .

    Иван Цукев:

    Не можеш да свалиш LSP файла, който е към урока ли?

    Ако е така, просто кликни с десния бутон на мишката върху файла под менюто и му дай опцията "запази като" или "save as", ако си на английски.

  • ADDN за МАС

    Милен Вълчев:

    За съжаление не става за Аутокад за МАС...

    Иван Цукев:

    AutoCAD за Mac е доста ограничен от към възможности, а и е чисто нов софтуер. Излезна миналата година, ако не се лъжа.

    Лисповете обаче не са от орязаните функции и по принцип работят на Мак

    Милен Вълчев:

    Да, така е. Съвсем малко от бързите команди ги няма. Но, като функционалност уроците се препокриват до 99 % с възможностите на МАС.

    Иван Цукев:

    Да си призная и аз съм фен на Apple. Ползвам техни телефони вече пета година и вкъщи всички се бият за iPad-а при наличието на още два андроид таблета...

    Но единствената причина, поради която не съм на Мак е ограничената функционалност на Аутокад. Това е програмата, която ползвам ежедневно и искам да е с пълните възможности. Разглеждах варианта с parallels, но реших, че не е за мен.

    Милен Вълчев:

    Дотук, според мен разликите във функционалността на Аутокад за Мас и РС не са големи и съществени. По скоро липса на някоя бърза команда. Но, от изключително удобство за мен е работата без мишка и възможността да отворя много прозорци без притеснения....Просто стабилна работа...

    Христо Спасов:

    Инж. Цукев, AutoCAD за мак го има от версия 2010 насам, за по-ранни не съм сигурен. И като функционалност на практика може да се прави всичко от показаното от уроците тук. Проблем е по-скоро смененият интерфейс, силно повлиян от Adobe. И ако мога да вметна една агитация - в къщи използвам само мак от 18 години и не съм имал нито един повод за съжаление до момента. Всички програми които ми трябват - било за работа или за удоволствие, ги има и във версия за мак. И мога да добавя че например страхотните продукти на Adobe са с напълно еднакъв интерфейс и за двете платформи, тъй че за който и да било, няма да е никакво затруднение да се прехвърли от мак на win и/или обратно. Моля да ме извините за отклонението, не се сдържах...

  • Лисп и LT

    Рени Иванова:

    LISP програмите може ли да ги ползваме и в LT версиите на AutoCAD и ако да може ли да дадете пояснение как да си кача лисп файла,понеже Manage менюто е доста орязано и различно от показаното във видеото.

    Иван Цукев:

    AutoCAD LT е с орязани функции и не позволява да се пускат лисп програми или други външни програми.

    Рени Иванова:

    Благодаря за отговора!:)

  • Какво е решението според вас при това съобщение за Trusted Location?

    инж.М.Линдов:

    Някой може ли да ми каже ,защо след като я сваля програмката и я отворя за упражнението ,ми изписва тази грешка .

    Краси Кръстев:
    Здравей, не бива да те притеснява чак толкова много това съобщение ( просто дай Load ).

    Реално то те предопреждава че директорията в която се намира външния файл ( в случай lisp - a ) е в директория,която не е включена в Trust location ( най - простичко казано директории от които е позволено да се вкарват странични файлове като lisp, script и други ).

    Може да си я добавиш, като изпишеш в командния ред options след което в прозореца на options отидеш на Files там
    избираш Trusted locations и въвеждаш директорията в която попринцип си държиш lisp - овете - става с бутона ADD.

    ИЛИ другия по - лесен вариант е да видиш служебната такава директория пак в раздела Trusted locations в Files на Options и просто да си преместиш lisp файла там в тази директория така няма да ти изкача това съобщение.

    И най - лесни вариант изпиши във командния ред SECURELOAD и му задай стойност 0 така няма да ти изписва съобщението ( с него реално премахваш съобщенията за използване на външни "програмки" файлове, които не са в обозначени папки в Trusted Locations.

    Вземи решение кое да избереш, аз лично препоръчвам първото или второто.
    Stoyanka Cholakova:

    Здравейте, колеги! Същия въпрос като на инж.Линдов имах с файлове към курса на PROEKTSOFT. Сега намерих отговора във вариант 2 на инж.Кръстев, оправих проблема и съм много доволна, защото не ми даваше мира. Голяма благодарност!!

    Краси Кръстев:

    Моля!

    Супер е че казуса се е разрешил.

  • Може ли с AddN да се коригират блокове с атрибути?

    Martin Antonov:

    Опитах, но явно не може да се коригират атрибути в блокове, например кота (като този от Урок 3 на същия модул). Ако някой има решение на този проблем бих се радвал да го сподели :) Ако не, корекцията ще е ръчна :D

    Николай Николов:

    Командата е ATTSYNC за актуализиране на блок след допълнително вкаран атрибут. Изгледай още един път Урок 3 на трети модул, ако за това ти е въпроса.

    Иван Цукев:

    Отваряш блок редактора и можеш да добавяш блокове с ATTDEF и да ги редактираш с BATMAN.

    Както Николай Николов е споделил - много е важно след корекция да пуснеш ATTSYNC, за да се актуализират атрибутите.

    Martin Antonov:

    Не написах въпроса си добре. Имам котата на площад, кота за борда на водната площ и кота водно ниво/ дъно. Да кажем че вертикалното решение се промени с някаква стойност нагоре или надолу. Показаните коти са в същото положение една спрямо друга и ако не бяха блокове бих могъл да ги коригирам едновременно с AddN командата. Но не успявам да направя това докато са блокове. Според мен нещо ми убягва или се надявах някой друг .lsp, но не успях да го намеря. Благодаря за отговорите.

    Николай Николов:

    На картинката виждам три различни блока!? Един динамичен блок ли е това или са три различни. Опиши ги в кой какви атрибути си вкарал и какво искаш да правиш.

    Martin Antonov:

    Това са три различни блока (и трите динамични, за да мога да ги обръщам наляво или надясно). Атрибута е същият като от урок 3 с изключение на блока с втори атрибут. И трите атрибута са за КОТА.
    Командата AddN не може да добави/извади стойност към/от зададените коти ( ; error: ActiveX Server returned the error: unknown name: TextString).
    В конкретния пример имам кота за повърхността на площада, кота за борда на водната площ и кота за нивото на водата и дъното. Тъй като тези коти са в постоянна зависимост (борда е 50 см по висок от площада, нивото на водата е 20 см под борда, а водата е дълбока 50 см - разбира се в съгласно дизайна водната площ), то ако нещо се промени във вертикалното планиране, аз трябва да променя четирите коти с една и съща стойност.
    AddN е прекрасна команда, но поне до колкото пробвах не може да ми помогне в този случай. Чудех се дали някой ,може да знае как бих могъл да избегна коригирането на стойностите на атрибутите поотделно и да го направя наведнъж (както AddN прави с текст).

    Николай Николов:

    Разбрах че кота площад ти е основна. Искаш като я промениш да се променят и останалите две коти. Ако е така решението е следното. За останалите две коти ще трябва да създаеш път към основната кота. Това става по следния начин. Когато променяш атрибута на втората кота ще изтриеш атрибута  и с Insert Field ще създадеш формула, в която ще включиш атрибута на кота площад  и прибавиш /+/ фиксираната промяна /+0,5 м./ Така като се коригира атрибута на първата кота автоматично се променя атрибута на втората. По същият начин и за третата. Това е в резюме начина. Ако не се справиш ще ти създам и картинки но с тях нещо не ме бива!!!

    Martin Antonov:

    Благодаря много за този съвет. Порових се малко как функционират формулите и след десетия опит успях да се справя :) Изобщо не ми беше хрумвало да проверя за insert field във value полето. Но като цяло от скоро ползвам командите. Отново благодаря за съвета. Идеално решение на задачата.

    Martin Antonov:

    Бих добавил само, че с командата Regen се обновяват стойностите, а не с ATTSYNC. И също така колкото нива (nested) формули в един блок толкова пъти трябва да се въведе Regen. В третия блок направих да взима стойност от втория а той от първият, а в самия трети долния взима стойността от горния атрибут. Това разбира се може да се избегне ако се взима само стойността от първата кота за формулите.

    Николай Николов:

    С Regen се актуализират промените в атрибутите,   а с ATTSYNC когато промениш нещо в блока, добавиш атрибут или  параметър. Трябва да имаш в предвид  че връзките които си създал , ако вкарваш блоковете от палета или с инсърд не се запазват. Трябва да ги копираш. Може и от един файл в друг.
    Също можеш да вкараш и атрибут с колко искаш да промениш съответната кота. Става малко по сложно но по експертно!!!

  • Как Lisp програмката да се зарежда всеки път автоматично?

    Боряна Хаджова:

    Как да постъпя в този случай? Hаправих упражнението за лисп-а, свалих и заредих лисп-а, дадох ADDN и след въвеждане на стойността, нищо не се промени в редичката, а ми се появи следното съобщение: Работя на Architectural desktop 2015.

    Краси Кръстев:

    Здравей, отиди в инсталационната директория най - вероятно е нещо такова C:\Program Files\Autodesk\AutoCAD 2015 и там в папката Welding

    замести файла който споделям тук :

    Подмени с този лисп

    с оригиналния файл. Файла ( и този който споделям и този който е в папката ) е с име AecDetailsWeldCMD.lsp

    След като замениш ( подчертавам замениш стария не бива да остава ) този файл, реално ще го Update - неш с по - нова версия и следва да нямаш този проблем.

    Николай Николов:

    Здравейте! Ако може да задам един въпрос по темата. Създал съм иконка, инсталирал съм LSP програмата, но трябва с всяко включване с APPLOAD да посочвам пътя към програмката. На стария компютър се зарежда автоматично, но на новия лаптоп не става. На стария го направих по някъкъв начин с проби и грешки но с лаптопа не се получава. Може ли нещо да помогнете.

    Краси Кръстев:

    Здравей, идеята е да ги сложиш в Contents ( снимка 1 позиция 1 ) в appload менюто, така няма да се налага всеки път да ги зареждаш, при отваряне на нов чертеж следва да ти се зареждат лисп файловете които си прибавил ( Add - нал ) в Contents, нали това търсиш да не ги зареждаш всеки път когато ти потрябват ?

    Николай Николов:

    Блогодаря! Получи се макар от втория път. Ако нещо не върви ще питам пак. Въпреки че на настолния бях го направил не по този начин! За съжаление не разбрах как!!!

  • Краси Кръстев:

    Здравейте, ето една тема :

    Какво е решението според вас при това съобщение за Trusted Location?

    Идеята е че трябва посочената директория ( Location: C:\ Program......) да бъде включена в Trusted Location. Повече за това как се прави това, ще намерите в темата към която Ви препратих.

    Надявам се да съм бил полезен с отговора.

    Методи Иванов:

    Благодаря.

    Методи Иванов:

    С една дума нищо нестана отново излиза същата грешка.

    Краси Кръстев:

    Сигурен сте че добавихте директорията и след това запазихте промените.Т.е. ако влезнете в Files и след това в Trusted location - директорията е там - снимка 1

    Другият вариант е просто да сложиш отметка на Always load this application, когато ти излезне съобщенеито.

    Снимка_1

    Методи Иванов:

    След като натистнах SECURELOAD и задатох 0 се появи тази грешка. Нея как да я оправя. Благодаря ти предварително.

    Краси Кръстев:

    Пробвай с End и след това си върни старата настройка.

    Методи Иванов:

    Да но как да я върна

    Краси Кръстев:

    С настройка 1 и следва пак да получаваш съобщение че даден файл, който AutoCAD ползва не е в Trusted директорията.

  • Може ли чрез Autolisp да се добавят символите за грапавост на повърхнините ?

    Павлин Петров:

    Искам първо да ви благодаря за споделените знания. Използвам възможността да задам и още няколко въпроса. Може ли да се сменя езикът на интерфейса след като е инсталиран вече AutoCAD. Например от английски на немски. Става въпрос разбира се за легална версия. В модулът за лейаутите споменавате,че вAutocad има готови шаблони за А0 до А4 и не е необходимо да се създават ако правилно съм разбрал. Къде да ги намерим ? Благодаря предварително! AutoCAD 2018

    Краси Кръстев:

    Здравей, Павлин.

    Ако мога да те помоля, когато задаваш повечко върпоси те да са като отделни върпоси, защото така форума става дос прегледен, вероятността да ти се отговори на въпроса се покачва и всичко става още по полезно за теб тук в Аула, пък и с прегледността е помогнеш и на другите си "съученици" т.к. и те по- лесно могат да открият отговора на въпроси, които и ти си задал :)

    Ето и отговорите на няколкото въпроса:

    *1. * С AutoLisp програмките може да се постигне доста, но ако мога да те помоля за повече информация. Имам предвид, какви точно са символите - ако покажеш крайния резултат с една снимка може би ще бъде доста удачно. Молбата ми е за малко повечко информация по този въпрос :).

    Съответно ще ни хрумне нещо тук във форума за да ти помогнем.

    *2. * Може стига да имаш инсталационния файл и в енго да го има този език. Това може да стане по начина по който се добавят допълните features - това може да стане по начина показан тук - Какво представляват командите superhatch и express tools? - в темата към която те препращам става дума за добавяне нa Express tools но принципа е един и същ.

    Ако нямаш езиците в инсталационния диск винаги може да ги свалиш легално от сайта на Autodesk и да ги иснталираш. Как става това може да видиш тук:

    Install_Language съответно от линка може да изтеглиш и самия пакет с езици за твоята версия !

    *3. и 4. *Да така е A0, A4 и т.н. са включени като формати, за целта обаче трябва да избереш виртуалния принтер Dwg to PDF или принтер който подържа форматите. На снимка 1 позиция 1 е показана снимка с DWG to PDF съответно се вижда че основните общо валидни формати за листа за включени в този вируален принтер и не е нужно допълнително им създаване.

    Снимка_1

    Това е :)

    За лиспа ти препоръчвам да създеш отделна тема със снимка на това което искаш да получиш и съм сигурен че ще се включим в дискусия, пък и колеги от всички сфери напроектирането ще се включат така че сигурен съм всичко ще е намерим начин или най-малкото ще даден идеи за решение :)

    Павлин Петров:

    Здравейте,благодаря за бързият отговор. Относно форматите нещата ми се изясниха, с промяната на езикът ще се пробвам в понеделник на работа. За символите за грапавост разбрах,че ги има като раздел в Ribbon-а но само в AutoCAD Mechanical Тук намерих информациятa: http://cadpoints.com/archives/5860 Поривих малко дали ги няма някъде за добавяне в CUI, но не намерих нищо. Явно ще трябва да се създават блокове за тях. Още веднъж благодаря за отзивчивостта ви.

    Краси Кръстев:

    Моля, Павлин.

    Да може да потърсиш за блокове, т.к. както казваш става дума за Mechanical който си има своята собствена библиотека и инструменти ...

  • Как да добавя suffix или prefix към избран текст?

    VAiOS:

    Примерно, имам няколко текста, съдържащи числа от 1 до 6.

    Искам пред всяко едно число да се появи някакъв символ, примерно A0.

    Как най-лесно и бързо може да стане това?

    Teodor_RR:

    Не мисля, че има стандартна функция на AutoCAD за тази цел. Най-бързо и лесно става с lisp, аз ползвам един за тази цел, но не съм го писал аз и не съм убеден, че няма да наруша някое правило ако споделя кода тук или дам линк към друг форум.

    VAiOS:

    Teodor, аз също очаквам решението да е под формата на LISP. Очаквах някой да е тествал такъв, да е доволен, и да е така добър да го сподели :) Относно "правилата" - убеден съм, че водещото такова е Взаимопомощ (стига да не пречиш на някого). А по въпроса, че не е писано лично от теб - както са казали по-умни глави от мен "След Паисий всички преписват..." така че важното е доброто да се разпространява ...и ако може - усъвършенства. Приятен ден! :)

    Teodor_RR:

    Аз съм доволен от това - има опции за prefix/sufix/prefix+sufix, обектите се селектират с прозорец. Запазвам оригиналния код и името на автора, дано не нарушавам правилата :)

    (defun c:PStext (/ rep str ss i sn vl e) (vl-load-com) ;;; Tharwat 25. Nov. 2011 ;; (if (and (progn (initget "Prefix Suffix Both") (setq rep (getkword "\n Specify your aim [Prefix/Suffix/Both] :") ) (initget 1) (setq str (getstring t "\n Enter Text :")) ) (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT")))) ) (repeat (setq i (sslength ss)) (setq sn (ssname ss (setq i (1- i)))) (setq vl (vlax-ename->vla-object sn)) (setq e (entget sn)) (cond ( (eq rep "Prefix") (vla-put-textstring vl (strcat str (cdr (assoc 1 e)))) ) ( (eq rep "Suffix") (vla-put-textstring vl (strcat (cdr (assoc 1 e)) str)) ) ( (eq rep "Both") (vla-put-textstring vl (strcat str (cdr (assoc 1 e)) str)) ) ) ) (princ) ) (princ) )

    Краси Кръстев:

    Здравейте, и от мен.

    Тедор няма проблем да споделиш LISP който си намерил из интернет пространството. Много често се случва тук във форума на Аула да се споделят такива лиспове, къде взети наготово, къде попреправени за целта на задачата.

    Така че ако смяташ че нещо може да се реши с ЛИПС и имаш наличен подходящ да свърши работата ... тук е мястото да го споделиш :) Определно следва лиспа да свърши работа за добавяне на суфикс/префикс.

    VAiOS:

    Аз не успявам да го "подкарам" този лисп. Само при мен ли има проблем?

    Teodor_RR:

    Здравейте! Дали е възможно това да се получава заради разместването от форума? Ако искате може да дадете мейл и ще Ви го пратя.

    VAiOS:

    Благодаря за предложението и за отделеното време!

    Не знам защо лисп-а "не тръгва", сигурно е нещо дребно, но аз реших да потърся алтернатива из нета и открих това:

    https://drive.google.com/file/d/1YV_N8FjxhR7kOKETu7868hd8Xd4AyGwg/view?usp=sharing

    Teodor_RR:

    Това дори върши по-добра работа, позволява отделно въвеждане на текстове на prefix и suffix. При "моето" се въвежда един текст, който може да бъде prefix или suffix или и двете ... а не са много случаите, в които имам нужда от еднакъв prefix и suffix.