Registrujte se na 22. ročník konference CADfórum 2025 - 30.9. Zámek Valeč.
Přes 119.000 registrovaných u nás, celkem 1.097.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor a aktualizovaný Generátor čarových kódů.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
archiv |
Autor | |
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() Zasláno: 17.dub.2008 v 21:13 |
Dobrý deň.
Začal som jednoduchšie a chcel som len nakresliť priamku nad bodmi St.A a St.Z. Samozrejme, že mi priamku nakreslí od bodu St.AV po bod St.ZV, ale dĺžka priamky je =0. St.AV bod je na bodom St.Z :-( neviem ako je to možné) ![]() (defun c:zabr () (setq Vyška_zabradlia (getdist "\nZadaj výšku zábradlia: ")) (prompt "\nOznač priamku!:") (setq UHOL (ssget)) (setq entita (ssname UHOL 0)) (setq zoznam_ent (entget entita)) (setq Bod_A (cdr (assoc 10 zoznam_ent))) (setq Bod_B (cdr (assoc 11 zoznam_ent))) (setq ay (nth 1 Bod_A)) (setq by (nth 1 Bod_B)) (if (< ay by) ;;;; (progn (setq am Bod_A) (setq bm Bod_B) (setq uhol0 (angle am bm)) (setq uhol1 (* uhol0 (/ 180 pi))) (if (> uhol1 90) (progn (setq ALFA (abs (- 180.0 uhol1))))) (if (< uhol1 90) (progn (setq ALFA uhol1))) (princ (float ALFA)) (princ am) (princ bm) (princ uhol1))) (if (> ay by) ;;;; (progn (setq am Bod_B) (setq bm Bod_A) (setq uhol0 (angle am bm)) (setq uhol1 (* uhol0 (/ 180 pi))) (if (> uhol1 90) (progn (setq ALFA (abs (- 180.0 uhol1))))) (if (< uhol1 90) (progn (setq ALFA uhol1))) (princ (float ALFA)) (princ am) (princ bm) (princ uhol1))) (if(= ay by) ;;;; (progn (setq uhol1 360.0) (setq ALFA uhol1) (princ uhol1) (princ (float ALFA)))) (ssdel entita UHOL) (setq St.A (trans (getpoint "\nZadaj bod, os PRVÉHO stlpiku na stupni: ") 1 0)) (setq St.Z (trans (getpoint "\nZadaj bod, os POSLEDNÉHO stlpiku na stupni: ") 1 0)) ;;;BODY (setq St.AV (trans (list (car St.A) (+ (cadr St.A) 1500.0)) 1 0)) (setq St.ZV (trans (list (car St.Z) (+ (cadr St.Z) 1500.0)) 1 0)) ;;;Vykreslenie (setq kresli1 (entmakex (list (cons 0 "line") (cons 6 "DASHDOT") (cons 8 "koty") (cons 10 St.AV) (cons 11 St.VZ)))) ) Vopred ďakujem za pomoc... |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Asi nie som jediný, kto to nechápe. Trošku to zjednoduším. Má to iba nakresliť priamku nad dvomi bodmi. Problém ostáva:
(defun c:zabr () (setq St.A (trans (getpoint "\nZadaj bod, os PRVÉHO stlpiku na stupni: ") 1 0)) (princ St.A) (setq St.Z (trans (getpoint "\nZadaj bod, os POSLEDNÉHO stlpiku na stupni: ") 1 0)) (princ St.Z) ;;;BODY (setq St.AV (trans (list (car St.A) (+ (cadr St.A) 1500.0)) 1 0)) (setq St.ZV (trans (list (car St.Z) (+ (cadr St.Z) 1500.0)) 1 0)) ;;;Vykreslenie (setq kresli1 (entmakex (list (cons 0 "line") (cons 6 "DASHDOT") (cons 8 "koty") (cons 10 St.AV) (cons 11 St.VZ)))) ) |
|
![]() |
|
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() ARKANCE Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21952 |
![]() |
Dotaz je poněkud nesrozumitelný - v čem spočívá problém?
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Nakreslí to primku od bodu St.AV po bod St.ZV, ale bod St.AV nie je nad bodom St.A a nechápem prečo je nad bodom St.Z – vtom istom mieste kde je aj St.ZV.
Hádam som to neskomolil... ![]() |
|
![]() |
|
predcis ![]() Nováček ![]() Přihlášen: 18.srp.2005 Lokalita: Slovensko Používám: AutoCAD® Map 3D 2013 Stav: Offline Bodů: 14 |
![]() |
Chyba bude v názve premenných, skúste premenovať St.A na St_A.
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Ďakujem.... Je to tak!!!
![]() |
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Takhle to proběhne, když to zadám do příkazového řádku (ve "startovacím" prázdném výkresu):
Command: (setq St.A (trans (getpoint "\nZadaj bod, os PRVÉHO stlpiku na stupni:
") 1 0)) Zadaj bod, os PRVÉHO stlpiku na stupni: (kliknul jsem někam=>158.0 139.0 0.0)
Command: (setq St.Z (trans (getpoint "\nZadaj bod, os POSLEDNÉHO stlpiku na stupni: ") 1 0))
Zadaj bod, os POSLEDNÉHO stlpiku na stupni: (kliknul jsem někam jinam=>405.0 71.0 0.0)
Pokud chci zkontrolovat, zda je vše OK, tak:
Command: !st.a
(405.0 71.0 0.0) Command: !st.z
(405.0 71.0 0.0) Osobně tečkované proměnné nepoužívám, jenom číslované (např. B1, B2, ...atd.)
Při psaní nového lispu si ho prvně zkuste "odkrokovat" postupně na příkazovém řádku... ![]() Upravil Ferdinand - 22.dub.2008 v 10:42 |
|
-FerTh-
|
|
![]() |
|
Jan Liska ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Diskutér ![]() Přihlášen: 01.říj.2004 Lokalita: Czech Republic Používám: Inventor,Producstream Stav: Offline Bodů: 65 |
![]() |
Tečku nelze použít v názvu proměnné, viz: AutoLISP uses symbols to refer to data. Symbol names are not case sensitive and may consist of any sequence of alphanumeric and notation characters, except the following: A symbol name cannot consist only of numeric characters.
|
|
Jan Liška
Autodesk Consulting |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Dobrý deň.
1) Mňa to zvláštne premiestňovanie bodov z jedného na druhý neprestane prenasledovať! Program mi fungoval bezchybne (pokiaľ som zachoval ideálne podmienky)... Ako náhle som pridal podmienky do programu, začalo to robiť, teda nerobiť nič! A to som si dával pozor aby sa mi vo funkciach neobjavovali: "-" "." Bod L2_uprav má presne tie isté súradnice ako L1_uprav! Je tam dosť podmienok, ale hádam tam chybu nemám. Aj som si to skontroloval, ale človek nikdy nevie... (defun c:N16H () ;;; VSTUPNE UDAJE ;;;VYBER ENTITY (prompt "\nOznac vrchnu hranu schodnice!") (setq UHOL (ssget)) (setq entita (ssname UHOL 0)) (setq zoznam_ent (entget entita)) (setq aaa (cdr (assoc 10 zoznam_ent))) (setq bbb (cdr (assoc 11 zoznam_ent))) (setq ay (nth 1 aaa)) (setq by (nth 1 bbb)) (if(= ay by) (progn (setq uhol1 360.0) (setq ALFA uhol1) (princ uhol1) (princ (float ALFA)) )) (ssdel entita UHOL) (setq v (getdist "\nZadaj vysku [od vrchnej hrany schodnice po spodnu hranu madla>: ")) (setq n (getreal "\nZadaj počet prutov [3,4,5,6>:")) ;____________________________ ;;; VSTUPNE UDAJE (setq L1_uprav (trans (getpoint "\nZadaj dlzku [od stlpa>: ") 1 0)) (setq L2_uprav (trans (getpoint "\nZadaj dlzku [po stlp>: ") 1 0)) (setq L (abs (distance L1 L2))) (setq L_poloha_1 (nth 0 L1)) (setq L_poloha_2 (nth 0 L2)) ;;; VYPOCTY (setq vv (+ v 16.0)) (setq xv1 (- (/ vv (+ n 1.0)) 8.0)) (setq xvx (/ vv (+ n 1.0))) (if (< L_poloha_1 L_poloha_2) (progn (setq L1_uprav_1 L1_uprav) (setq L2_uprav_2 L2_uprav) )) (if (> L_poloha_1 L_poloha_2) (progn (setq L1_uprav_1 L2_uprav) (setq L2_uprav_2 L1_uprav) )) (setq L_stred (list (+ (car L1) (/ L 2.0)) (cadr L1))) (setq orient (getpoint "\nZadaj na ktroej strane bude prút zvvrtany iba 15mm: ")) (setq orient_A (nth 0 orient)) (setq L_stred_A (nth 0 L_stred)) (if (> L_stred_A orient_A) (progn (setq L1 L1_uprav_1) (setq L2 L2_uprav_2) )) (if (< L_stred_A orient_A) (progn (setq L1 L2_uprav_2) (setq L2 L1_uprav_1) )) ;;; SURADNICE BODOV (setq o1 (trans (list (car L1) (+ (cadr L1) xv1)) 1 0)) (if (< orient_A L_stred_A) (progn (setq o2 (trans (list (- (car o1) 15.0) (cadr o1)) 1 0)) )) (if (> orient_A L_stred_A) (progn (setq o2 (trans (list (+ (car o1) 15.0) (cadr o1)) 1 0)) )) (setq s2 (trans (list (car o2) (- (cadr o1) 8.0)) 1 0)) (setq s3 (trans (list (car o2) (+ (cadr o1) 8.0)) 1 0)) (setq o10 (trans (list (car L2) (+ (cadr L2) xv1)) 1 0)) (if (< orient_A L_stred_A) (progn (setq s12 (trans (list (+ (car o10) 35.0) (cadr o10)) 1 0)) )) (if (> orient_A L_stred_A) (progn (setq s12 (trans (list (- (car o10) 35.0) (cadr o10)) 1 0)) )) (setq s11 (trans (list (car s12) (- (cadr s12) 8.0)) 1 0)) (setq s13 (trans (list (car s12) (+ (cadr s12) 8.0)) 1 0)) (if (< orient_A L_stred_A) (progn (setq v10 (trans (list (- (car s11) 20.0) (cadr s11)) 1 0)) (setq v11 (trans (list (- (car s13) 20.0) (cadr s13)) 1 0)) (setq o11 (trans (list (- (car s12) 20.0) (cadr s12)) 1 0)) )) (if (> orient_A L_stred_A) (progn (setq v10 (trans (list (+ (car s11) 20.0) (cadr s11)) 1 0)) (setq v11 (trans (list (+ (car s13) 20.0) (cadr s13)) 1 0)) (setq o11 (trans (list (+ (car s12) 20.0) (cadr s12)) 1 0)) )) ;______________________________________________________________ ;;; VYKRESLENIE (setq ent1 (entmakex (list (cons 0 "line") (cons 8 "stlp") (cons 10 o1) (cons 11 o2)))) (setq ent2 (entmakex (list (cons 0 "line") (cons 8 "stlp") (cons 10 s2) (cons 11 s3)))) (setq ent3 (entmakex (list (cons 0 "line") (cons 8 "stlp") (cons 10 o10) (cons 11 s12)))) (setq ent4 (entmakex (list (cons 0 "line") (cons 8 "stlp") (cons 10 s11) (cons 11 s13)))) (setq ent5 (entmakex (list (cons 0 "line") (cons 8 "NRZ") (cons 10 s3) (cons 11 v11)))) (setq ent6 (entmakex (list (cons 0 "line") (cons 8 "NRZ") (cons 10 s2) (cons 11 v10)))) (setq ent7 (entmakex (list (cons 0 "line") (cons 8 "NRZ") (cons 10 v11) (cons 11 v10)))) (setq ent8 (entmakex (list (cons 0 "line") (cons 6 "DASHDOT") (cons 8 "koty") (cons 10 o2) (cons 11 o11)))) (setq n (rtos n)) (princ n) ;;; KOPIROVANIE "N" PRUTOV (command "_array" ent1 ent2 ent3 ent4 ent5 ent6 ent7 ent8 ent9 ent10 "" "R" n "1" xvx) );;;KONIEC PROGRAMU 2) Ešte mám potom otázku ku kótovaniu uhlu. Urobil som si program, kde mi stačí vybrať obe priamky naraz. Ale ťahá mi to priamky (kót) aj na miestach kde vybrané priamky sú. Je to preto, lebo som musel preskočiť vyberanie objektov a musel som to zadávať bodovo... A tomu sa chcem vyhnúť. Zistil som, že "_dimangular" pri výbere nechce mená entít. Čo potom chce??? A ako to naprogramovať tak aby dostal to čo chce a ja tiež :-) 3) Ako sa dá aby si Autocad zapamätal funkciu. Čo myslím. Napr.: kružnica. Zadáte priemer a pamätá si ho až kým výkres nezavriete. Vopred ďakujem za pomoc. ![]() |
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
To bude asi v sekci ;;; VSTUPNE UDAJE(setq L1_uprav (trans (getpoint "\nZadaj dlzku [od stlpa>: ") 1 0)) (setq L2_uprav (trans (getpoint "\nZadaj dlzku [po stlp>: ") 1 0))
zkusit mezi ně vpíchnout "nevinnou" funkci např.
;;; VSTUPNE UDAJE
(setq L1_uprav (trans (getpoint "\nZadaj dlzku [od stlpa>: ") 1 0)) (command "_redrawall")
(setq L2_uprav (trans (getpoint "\nZadaj dlzku [po stlp>: ") 1 0)) Proč je tam to "trans" a ta čísla "1 0" ? "Obyčejné" zadání nefunguje?
(setq L1_uprav (getpoint "\nZadaj dlzku [od stlpa>: "))
|
|
-FerTh-
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Nepoteším vás... Tá nevinná funkcia
(command "_redrawall") nemá vplyv na ten bod L2_uprav. Stále mi to hádže "Zadaj dlzku [po stlp>: ; error: bad argument type: 2D/3D point: nil" "Proč je tam to "trans" a ta čísla "1 0" ? "Obyčejné" zadání nefunguje?" Funguje, ale istota :-) Ak je vo výkrese nastavený iný systém súradníc tak (trans xyz 1 0) slúži na globálne súradnice. Nechcem sa vnucovať, ale mám tam aj ďalšie dve otázky... ![]() |
|
Michal MUCHA
|
|
![]() |
|
svarc.vl ![]() Zasloužilý člen ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (ÚL) Používám: Autocad Mechanical 2010 Stav: Offline Bodů: 204 |
![]() |
když máte
;;; VSTUPNE UDAJE
(setq L1_uprav (trans (getpoint "\nZadaj dlzku [od stlpa>: ") 1 0)) (setq L2_uprav (trans (getpoint "\nZadaj dlzku [po stlp>: ") 1 0)) (setq L (abs (distance L1 L2))) (setq L_poloha_1 (nth 0 L1)) (setq L_poloha_2 (nth 0 L2)) Ale délku počítáte z bodů L1 a L2 a načítáte L1_uprav a L2_uprav
Máte ošetřené úchopy a prioritu zadávání souřadnic v nastavení-uživatelské nastavení (příkaz _options) ??
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
No super! Ja som to riadne pomotal!!!
![]() ![]() A ešte jedna vec. Ku koncu programu mám príkaz: (command "_array" ent1 ent2 ent3 ent4 ent5 ent6 ent7 ent8 ent9 ent10 "" "R" n "1" xvx) No tu mi to štrajkuje a vypisuje: Select objects: 1 found, 8 total – tu to vykreslí poslednú entitu Select objects: Command: Command: N16H Unknown command "N16H". Press F1 for help. Command: R Unknown command "R". Press F1 for help. Command: 6 Unknown command "6". Press F1 for help. Command: 1 Unknown command "1". Press F1 for help. Command: 116.571429 Ako keby nepoznalo príkaz „_ array“ ... Ešte raz ďakujem za pomoc... |
|
Michal MUCHA
|
|
![]() |
|
svarc.vl ![]() Zasloužilý člen ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (ÚL) Používám: Autocad Mechanical 2010 Stav: Offline Bodů: 204 |
![]() |
Zadejte do příkazu _array ....... "_R" (R s podtrzitkem)
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Ďakujem všetkým za rady, je to funkčné a hlavne robí to, to čo má.
![]() |
|
Michal MUCHA
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,445 sekund.