Vytisknout stránku | Zavřít okno

sipka1

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=5563
Datum vytištění: 26.čer.2026 v 23:41


Téma: sipka1
Odeslal: Ferdinand
Předmět: sipka1
Datum odeslání: 28.lis.2007 v 14:55
Navazuji na téma http://www.cadforum.cz/forum/forum_posts.asp?TID=5546 - Šipka - směr - pomocí PLINE  ze sekce AutoCAD .
Teď jsem měl trochu času, tak jsem to sepsal do lispu.
http://www.cadforum.cz/forum/uploads/20071128_145443_sipka1.lsp - uploads/20071128_145443_sipka1.lsp


-------------
-FerTh-



Odpovědi:
Odeslal: Radim Cech
Datum odeslání: 28.lis.2007 v 15:19

Máte tam asi nějakou mouchu, se to při opakovaném používání chová divně. Nechytá se to pokaždé za stejný bod. Jinak je to zajímavé řešení, ale přimlouval bych se za chytání za vrchol šipky, aby to tažení pro zvětšení šlo od vstupu a ne do vstupu, když to dám před objekt. A pak než 3x solid, to už je lepší SOLID šrafa.

Ale  LTčkáři mají smůlu, což při řešení na řádku nebyli.
 


-------------
R.C.

OSTRAVA


Odeslal: Radim Cech
Datum odeslání: 28.lis.2007 v 15:29
Je to asi zapnutým uchopovacím bodem. Jakmile jsem jej zrušil a šipku ukážu buď bez zpřesnění a nebo si uchopovací bod zvolím až před ukázáním místa, pak má šipka správný tvar. První nebo poslední bod "stopky" šipky splyne s místem ukázání. Stačím mit uchopovací režim se zapnutým koncovým a prusečným bodem.

-------------
R.C.

OSTRAVA


Odeslal: Ferdinand
Datum odeslání: 30.lis.2007 v 13:52
Doplnil jsem to a teď to vypadá takhle
http://www.cadforum.cz/forum/uploads/20071130_135220_sipka2.lsp - uploads/20071130_135220_sipka2.lsp


-------------
-FerTh-


Odeslal: Radim Cech
Datum odeslání: 30.lis.2007 v 14:42

Nerad neguji, ale ta verze vyplněná nějak nefunguje. Nekreslí to vůbec nic, co by ve finále připomínalo šipku.



-------------
R.C.

OSTRAVA


Odeslal: Ferdinand
Datum odeslání: 03.pro.2007 v 14:53
Omlouvám se, bylo to v pořadí kreslení entit. http://www.cadforum.cz/forum/uploads/20071203_145222_sipka2.lsp - uploads/20071203_145222_sipka2.lsp

-------------
-FerTh-


Odeslal: PepaR
Datum odeslání: 03.pro.2007 v 17:33
Odkaz je nefunkční.

-------------
PepaR
https://www.jremes.cz" rel="nofollow - jremes.cz | https://www.stavlab.cz" rel="nofollow - stavlab.cz


Odeslal: Vladimír Michl
Datum odeslání: 03.pro.2007 v 18:38
Opraveno (pro Ferdinanda: pošlete mi prosím PM zprávu, jak se vám podařilo tam dostat starý formát URL odkazu přílohy - někde možná máme chybku v rozhraní fóra)

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Radim Cech
Datum odeslání: 04.pro.2007 v 16:50
Ale zase to nejde. Havaruje to na C:BODY, asi volání funkce.
 
A pokud můžu, nechte volání funkce SIPKA


-------------
R.C.

OSTRAVA


Odeslal: Ferdinand
Datum odeslání: 05.pro.2007 v 13:54
Možná v Civilu se to chová trocho odlišně Question - nevím, Civil neznám. Jasně, příkaz může být nadefinován třebas pod zkratkou SIP - stačí v Notepadu zeditovat... Ale vycházel jsem z obecné zkušenosti, že lispy mívají několik variant - a ty odlišuji číselným indexem na konci. Konečnou (tj. funkční) verzi pak "zfinalizuji" do přijatelnějšího názvu/zkratky. Napadá mne jedna věc: zkusit dát sekvenci C:BODY hned na začátek lispu, před vlastní výkonné jádro.

-------------
-FerTh-


Odeslal: Radim Cech
Datum odeslání: 05.pro.2007 v 14:04
CIVIL je "jen" vylepšený AutoCAD, tím to být nemůže.
Už to fungovalo, akorát to nějak havarovalo s jedním bodem šipky. Proto mně překvapilo, že to teď nejede vůbec
 


-------------
R.C.

OSTRAVA


Odeslal: zdrk
Datum odeslání: 05.pro.2007 v 17:37
Zkusil jsem to dnes na plné verzi cadu 2007 a též to vypíše je chybu C:BODY, jak pro prázdnou tak i pro vyplněnou verzi šipky.


Odeslal: Ferdinand
Datum odeslání: 06.pro.2007 v 08:12
Přeposílám sem - s opravou názvu funkce ze "sipka2" na "sip":
-- Předchozí soukromá zpráva --
Odeslal : Martin Bielina
Odesláno : 2007.pro.06 v 01:01

Nevím jestli to není s křížkem po funuse, ale našel jsem tu chybičku, která způsobovala chybové hlášení C:BODY. Nicméně autor Lispu nejsem, tak jen posílám opravený kód pro případné uveřejnění autorem.

Poznámka:
Uvnitř funkce C:BODY chyběla jedna závorka na setq
A navíc jsem udělal z BODY jen lokální subrutinu

;;kresleni sipky
;;-FerTh-20071128

(defun c:sip (/ ORM OSM)
(setq ORM (getvar "orthomode"))
(setq OSM (getvar "osmode"))
(setvar "osmode" 33)
(setvar "orthomode" 0)
(setvar "filedia" 0)

(initget "V P")

(SETQ keypart (getkword "\nŠipka bude [Vyplněná/Prázdná]: <V> "))
(if (= keypart nil)
    (setq keypart "V")
)

(cond     ((= keypart "P")          ;prazdna sipka
      (progn
        (BODY)
        (command "_zoom" "_W" W3 W4)
        (command "_pline" ZB B1 B5 B6 B7 B8 B2 "_C")
        (command "_zoom" "_P")
      )
        (setq part 1)
      )
     ((= keypart "V")          ;vyplnena sipka
      (progn
        (BODY)
        (command "_zoom" "_W" W3 W4)
        (command "_trace" 0.5 B3 B4 "")
        (command "_solid" B1 ZB B2 "" "")
        (command "_zoom" "_P")
      )
      (setq part 2)
     )
)

(command "_rotate" "_W" W1 W2 "" ZB pause)
(command "_scale" "_P" "" ZB pause)
(setvar "orthomode" ORM)
(setvar "osmode" OSM)
(setvar "filedia" 1)
)

;;podrutina pro ziskani bodu
(defun BODY ()
(command "_solid" pause ^c^c)
(setq ZB (getvar "lastpoint"))
(setq B1 (list (+ (car ZB) 1) (- (cadr ZB) 0.5)))
(setq B2 (list (+ (car ZB) 1) (+ (cadr ZB) 0.5)))
(setq B3 (list (+ (car ZB) 1) (cadr ZB)))
(setq B4 (list (+ (car ZB) 2) (cadr ZB)))
(setq B5 (list (+ (car ZB) 1) (- (cadr ZB) 0.25)))
(setq B6 (list (+ (car ZB) 2) (- (cadr ZB) 0.25)))
(setq B7 (list (+ (car ZB) 2) (+ (cadr ZB) 0.25)))
(setq B8 (list (+ (car ZB) 1) (+ (cadr ZB) 0.25)))
(setq W1 (list (car ZB) (- (cadr ZB) 0.5)))
(setq W2 (list (+ (car ZB) 2) (+ (cadr ZB) 0.5)))
(setq W3 (list (- (car ZB) 5) (- (cadr ZB) 5.0)))
(setq W4 (list (+ (car ZB) 7) (+ (cadr ZB) 5.0)))
)
 
Pozn.: lisp je ke stažení pod názvem "sip.lsp" na
http://www.iproject.cz/get.asp?/Soubory/CAD%5FForum/U%9Eivatelsk%E9%2Dupload/sip.lsp - tomto odkazu


-------------
-FerTh-


Odeslal: vbehun
Datum odeslání: 06.pro.2007 v 09:20
Dovolil jsem si odkomentovat řádek
---
        ;;(command "_trace" 0.5 B3 B4 "")
---
protože vyplněná šipka pod úhlem odlišným od 0/90/180/270° se nevykresluje správně.
Takto upravený lisp nakreslí při volbě "Vyplněná" pouze vyplněný trojúhelník, bez dalších čar.


Odeslal: Ferdinand
Datum odeslání: 06.pro.2007 v 13:51
Můj původní záměr byl, že 1. se vykreslí celá šipka (prázdná anebo plná - dle volby) v úhlu 0dg. (ukazuje doleva) a pak hotová se 2. otočí a 3. zvětší. Upravená verze dle vbehun by měla dělat (při volbě V) opravdu jen: 1.  vykreslí plný trojúhelníček v úhlu 0dg. (ukazuje doleva), 2. otočí a 3. zvětší - anebo (při volbě P): 1. vykreslí celou prázdnou šipku v úhlu 0dg. (ukazuje doleva) a pak hotovou 2. otočí a 3. zvětší. Takhle se docílí tvarově nesouhlasných "šipek". Poslední variantu viz http://www.iproject.cz/get.asp?/Soubory/CAD%5FForum/U%9Eivatelsk%E9%2Dupload/sip3.lsp - zde .


-------------
-FerTh-



Vytisknout stránku | Zavřít okno