Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 4873 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD diskuze, rady, výměna zkušeností

 
CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy Arkance Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenolisp - změna des. tečky na čárku

 Odpovědět Odpovědět archiv
Autor
Mantlík Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (Pha)
Používám:
ACAD/Map/Civil R10-> 2020
Stav: Online
Bodů: 2319
Přímý odkaz na tuto zprávu Téma: lisp - změna des. tečky na čárku
    Zasláno: 07.led.2005 v 11:10

Dobrý den

Prosím o radu s následujícím problémem

Mám jednu jednoduchou funkci, jejímž výsledkem jsou dvě číselné hodnoty (s 2  desetinnými místy). Převedu si je na řetězec a spolu s několika fixními texty (jednotky) spojím do jednoho řetězce a jako text vložím do výkresu.

Je pravdou, že by tam mohla zůstat desetinná tečka, ale vzhledem k místním zvyklostem bych tam chtěl dát čárku. Kam to umístit, bych věděl, ale nějak mne nenapadá jednoduché řešení - jen (snad) rozříznout řetězec na část před tečkou a za tečkou a mezi ně vložit čárku. Nestkali jste se už někdo tím?

Děkuji

J. Mantlík

Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 07.led.2005 v 11:50

Domnívám se, že v lispu přímé řešení neexistuje. Já používám (pro "inverzní" funkci) toto:

(defun inter(string / ii,ll,str)
 (if (/= string "")(progn
   (setq ll (strlen string) ii 1 str string string "")
 (while (<= ii ll)
    (if (= (substr str ii 1) ",")
        (setq string (strcat string "."))
        (setq string (strcat string (substr str ii 1)))
     )
    (setq ii (1+ ii))
)))
(setq string string)
)

Zpět nahoru
Jan Liska Zobrazit panel
Diskutér
Diskutér

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
Inventor,Producstream
Stav: Offline
Bodů: 65
Přímý odkaz na tuto zprávu Zasláno: 07.led.2005 v 11:59

Dobrý den,

můžete také použít funkci VisualLispu vl-string-subst, např.

(vl-string-subst "," "." "123.456")

s pozdravem

Jan Liška
Autodesk Consulting
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 07.led.2005 v 12:09

Děkuji panu Liškovi, že mne upozornil tak kulantně :-) ("můžete také" místo "co to navrhujete za zvrhlost"). Je vidět, že mé znalosti LISPu zatuhly před pár lety.

Zpět nahoru
Mantlík Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (Pha)
Používám:
ACAD/Map/Civil R10-> 2020
Stav: Online
Bodů: 2319
Přímý odkaz na tuto zprávu Zasláno: 07.led.2005 v 14:16

Děkuji

Ale protože mé znalosti jsou o dost menší, než p. Seinera, musím se ještě zeptat.

Je možno místo posledního řetězce ve výrazu (použil jste "123.456") použít proměnnou, obsahující řetězec?

např. tedy

(vl-string-subst "," "." p)

 

J. Mantlík

Zpět nahoru
Jan Liska Zobrazit panel
Diskutér
Diskutér

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
Inventor,Producstream
Stav: Offline
Bodů: 65
Přímý odkaz na tuto zprávu Zasláno: 07.led.2005 v 14:26

Samozřejmě. vl-string-subst je funkce jako každá jiná, tzn. pro každý z parametrů lze použít proměnnou. Funkce je definována VisualLispem, proto to předpona vl-.

S pozdravem

Jan Liška
Autodesk Consulting
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 5147:VIPSnadné dočasné přepnutí numerické klávesnice na desetinnou tečku.
Tip 5136:Jak v Revitu nastavit použití desetinné čárky (ne tečky)?
Tip 10404:Nefunkční ukládání ve vodařském rozšíření Hydrographs.
Tip 2316:Jak přepnout desetinnou čárku na numerické klávesnici na tečku?
Tip 3471:Tentýž výkres má v kótách na jednom počítači desetinné tečky a na jiném čárky.
Tip 1094:Mohu v 3D Studiu VIZ používat desetinnou tečku místo čárky?


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,156 sekund.