wigus15 Opublikowano 14 Listopada 2016 Zgłoś Udostępnij Opublikowano 14 Listopada 2016 Tak jak w tytule, czy ktoś ma jakiś pomysł jak stworzyć ten bardzo przydatny program ? Bardzo proszę o pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 14 Listopada 2016 Zgłoś Udostępnij Opublikowano 14 Listopada 2016 Proszę o jakiś przykład opisujący jak skrypt miałby działać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 14 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 14 Listopada 2016 Skrypt miałby działać w taki sposób, że w kodzie miałby wpisane stary_napis nowy_napis Nie potrzeba "kontaktu" użytkownika z oknem poleceń, wybór zmiany treść napisu miałby się odbywać na poziomie zmiany kodu programu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 14 Listopada 2016 Zgłoś Udostępnij Opublikowano 14 Listopada 2016 Rozumiem, że nazwa warstwy byłaby także na sztywno wpisana do skryptu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 14 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 14 Listopada 2016 Tak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 16 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 16 Listopada 2016 Sorry jestem kompletnym laikiem jeśli chodzi o Lispa i w ogóle ciężko mi wymysleć na jakiej zasadzie ma działać ten program. Po dłuższym zastanowieniu do głowy przyszły mi dwa warianty programu: WARIANT I: Program zamieniający dane obiekty ( w tym przypadku byłyby to obiekty tekstowe) opierałby się na funkcji "subst". WARIANT II: Program opierający się na funkcji "(command "EDTEKST") Czy mógłby ktoś doradzić, który z tych wariantów będzie prostszy do zastosowania ( o ile w ogóle da się napisać program opierając się na tych funkcjach) ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 16 Listopada 2016 Zgłoś Udostępnij Opublikowano 16 Listopada 2016 W ciągu kilku najbliższych dni postaram się przygotować taki program. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 16 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 16 Listopada 2016 Ok, dziękuję między czasie będe starał się samodzielnie robić program. Przepraszam za wprowadzenie w błąd ,ale jednak dane: warstwa, stary napis, nowy napis muszą być wpisywane z okna poleceń. Zrobiłem już kawałek programu, który ma za zadanie pobrać ze zbioru wskazań podane przeze mnie elementy, lecz autocad ciągle informuje mnie o błędnej podanej wartości w ssget. (defun c:aa () (setq warstwa (getstring "Podaj nazwe warstwy: ")) (setq stary_napis (getstring "Podaj stary napis: ")) (setq sel1 (ssget "X" (list (cons 0 TEXT)(cons 1 stary_napis)(cons 8 warstwa))))) O ile się nie mylę cyfry w oznaczają dany parametr szukanego elementu, miałem problem ,aby znaleść identyfikator do parametru treści napisu, czy na pewno jest to "1"? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 16 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 16 Listopada 2016 Przepraszam za spam ,alezdołałem (chyba) poradzić sobie z poprzednim problemem i udało mi się napisać cos takiego, niestety w dwóch ostatnich linijkach pokazuje mi błąd i nie mam pojęcia co jest nie tak. Byłbym wdzięczny jakby ktoś rzucił na to okiem. (defun c:aa () (setq warstwa (getstring "Podaj nazwe warstwy: ")) (setq stary_napis (getstring "Podaj stary napis: ")) (setq napis (ssget "X" (list (cons 1 stary_napis)(cons 8 warstwa)))) (setq nazwa_napisu (ssname napis 1)) (setq zmiana (entget nazwa_napisu)) (setq nowy_napis (getstring "Podaj nowy napis: ")) (setq nowy_napis2 (subst(cons 1 nowy_napis)(cons 1 napis)zmiana)) (setq koniec (entmod nowy_napis2))) kruszynski 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 17 Listopada 2016 Zgłoś Udostępnij Opublikowano 17 Listopada 2016 Poszczególne kody DXF może Pan znaleźć np tutaj: http://www.autodesk.com/techpubs/autocad/acad2000/dxf/ Błędna wartość w linii: (setq sel1 (ssget "X" (list (cons 0 TEXT)(cons 1 stary_napis)(cons 8 warstwa))))) to TEXT. Użyte w ten sposób znaczy że TEXT to zmienna. Powinno być "TEXT" (setq nazwa_napisu (ssname napis 1)) ; Informole liczą od 0 a nie od 1. prosze uważać. podmiana wartości tekstu powinna wyglądać tak: (setq nowy_napis2 (subst (cons 1 nowy_napis) (assoc 1 zmiana) zmiana)) dmatusz3 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 17 Listopada 2016 Zgłoś Udostępnij Opublikowano 17 Listopada 2016 jeszcze taki bonus: Jeśli ma Pan problem typu: 15 godzin temu, wigus15 napisał: znaleść identyfikator do parametru treści napisu, może Pan sprawdzić poszczególne paramtery i ich wartości : (entget(car(entsel))) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wigus15 Opublikowano 17 Listopada 2016 Autor Zgłoś Udostępnij Opublikowano 17 Listopada 2016 Dzięki wielkie za pomoc, program zrobiony ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 24 Listopada 2016 Zgłoś Udostępnij Opublikowano 24 Listopada 2016 Dziękuję za informacje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi