Hoi,
'k heb eerder een vraag i.pv. een probleem.
ik weet dat je in ACAD tekst kan:
onderstrepen = %%u
en
"boven"strepen = %%o
maar kan je een tekst ook doorstrepen???
(en dan bedoel ik niet met "line" er een lijntje door trekken hé :wink: )
Groetjes,
Markske
?? ..toch maar een lijntje erdoortrekken ?
zie: http://www.autocadforum.com/autocadforum/viewforum.php?f=5
'teksten doorhalen'
ARCOLUX
Citaat van: ArcoLuxzie: http://www.autocadforum.com/autocadforum/viewforum.php?f=5
'teksten doorhalen'
ARCOLUX
Hey!!!
Thanks ArcoLux!!!
Niet alleen heb je me de oplossing aangegeven, maar je hebt me gelijk ook laten kennismaken met een (voor mij) nieuw CAD-forum.
En voor de volledigheid wil ik dan ook ineens
Bart en
HofCAD bedanken voor deze Lisp...
Groetjes,
Markske
(defun c:Klijn ()
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" "0_GEEL-TEKSTSTREEP" "")
(command "-layer" "m" "0_GEEL-TEKSTSTREEP" "c" "y" "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
""
)
(command "_LINE"
(list (+ (car p1) (car tbL))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbL)))
""
)
(setvar "CLAYER" c_laag)
)
)
(princ)
)
Oops... misschien was ik iets te voorbarig met mijn vreugde :?
Bij mij werkt deze Lisp-routine toch nog niet helemaal zoals het moet :cry:
Moet hij misschien nog een beetje worden bijgeschroefd, of ligt het misschien aan mij, want ik heb me nog niet echt kunnen verdiepen in het Lisp-gebeuren :(
Heeft er iemand anders problemen met deze Lisp???
Groetjes,
Markske
Citaat van: Markske
(defun c:Klijn ()
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" "0_GEEL-TEKSTSTREEP" "")
(command "-layer" "m" "0_GEEL-TEKSTSTREEP" "c" "y" "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
""
)
(command "_LINE"
(list (+ (car p1) (car tbL))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbL)))
""
)
(setvar "CLAYER" c_laag)
)
)
(princ)
)
Citaat van: MarkskeOops... misschien was ik iets te voorbarig met mijn vreugde :?
Bij mij werkt deze Lisp-routine toch nog niet helemaal zoals het moet :cry:
Moet hij misschien nog een beetje worden bijgeschroefd, of ligt het misschien aan mij, want ik heb me nog niet echt kunnen verdiepen in het Lisp-gebeuren :(
Heeft er iemand anders problemen met deze Lisp???
Groetjes,
Markske
Goede morgen Markske :D ,
Kun je ons niet laten weten, waarom het programma KLIJN bij jou het niet goed doet? :shock:
Toen ik voor het eerst je vraagstelling zag, dacht ik al meteen dat deze
lisp niet voor je was. :idea:
Want je vermelde expliciet 'Geen lijntjes er door trekken'. 8)
Het lisp-programma klijn werkt bij mij overigens perfect bij text entiteiten,
en dus geen mtext entiteiten.
In de onderstaande lisp, heb ik eigenlijk alleen maar de CMDECHO uit
en later weer terug gezet en dus is de werking nog steeeds als vroeger
Groetjes HofCAD
CS
I.
PS Ik ben jaloers op je plaatje(je avatar) :( .
(defun c:Klijn (/ ~CMD C_laag textent p1 tb tbl tbr)
(setq ~CMD (getvar "CMDECHO"))(setvar "CMDECHO" 0)
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" "0_GEEL-TEKSTSTREEP" "")
(command "-layer" "m" "0_GEEL-TEKSTSTREEP" "c" "y" "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
""
)
(command "_LINE"
(list (+ (car p1) (car tbL))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbL)))
""
)
(setvar "CLAYER" c_laag)
)
)
(setvar "CMDECHO" ~CMD)
(princ)
)
Bij mij werkt 't.
Wat is bij jou het probleem? :?:
Hoi-hoi,
ik kan het jullie beter laten zien i.p.v. het uit te leggen, denk ik
http://k.1asphost.com/Markske/klijn-test.dwg
('k hoop dat je m'n "probeer"-tekening op deze manier kan downloaden)
ik heb eerst eens een tekst geschreven met het commando DTEXT
daarna heb ik die tekst een aantal keren gekopieerd, tekst-inhoud gewijzigd, ander lettertype gebruikt, enz...
soms lukt het met op deze teksten het commando "klijn" er op toe te passen, maar soms krijg ik ook wel héél rare "doorstrepingen" :D
ik dacht eerst dat het zou kunnen liggen aan een schaalinstelling (bij wanneer ik enkel maar een geel puntje kreeg), maar zoals je in m'n voorbeeld-tek. kan zien durft hij ook wel schuine lijnen te trekken...
Kan het misschien zijn omdat ik nog met ACAD2000 werk??
probeer het een als je osnaps allemaal uit staan.
(deze kunnen in combinatie met bepaalde systeemvariabele roet in het eten gooien.
zo ja probeer het dan een zo
(defun c:Klijn ()
(setq c_laag (getvar "CLAYER"))
(setq magneet (getvar "osmode"))
(setvar "osmode" 0)
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" "0_GEEL-TEKSTSTREEP" "")
(command "-layer" "m" "0_GEEL-TEKSTSTREEP" "c" "y" "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
""
)
(command "_LINE"
(list (+ (car p1) (car tbL))
(+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbL)))
""
)
(setvar "CLAYER" c_laag)
(setvar "osmode" magneet)
)
)
(princ)
)
Citaat van: MarkskeHoi-hoi,
ik kan het jullie beter laten zien i.p.v. het uit te leggen, denk ik
http://k.1asphost.com/Markske/klijn-test.dwg
('k hoop dat je m'n "probeer"-tekening op deze manier kan downloaden)
ik heb eerst eens een tekst geschreven met het commando DTEXT
daarna heb ik die tekst een aantal keren gekopieerd, tekst-inhoud gewijzigd, ander lettertype gebruikt, enz...
soms lukt het met op deze teksten het commando "klijn" er op toe te passen, maar soms krijg ik ook wel héél rare "doorstrepingen" :D
ik dacht eerst dat het zou kunnen liggen aan een schaalinstelling (bij wanneer ik enkel maar een geel puntje kreeg), maar zoals je in m'n voorbeeld-tek. kan zien durft hij ook wel schuine lijnen te trekken...
Kan het misschien zijn omdat ik nog met ACAD2000 werk??
Beste Markske,
Ik snap er helemaal niks van?
Want ik je tekening gedownload en er gewoon KLIJN op toegepast,
en het werkt goed.
Aan je AutoCAD versie kan het niet liggen, want daar werk ik ook nog
regelmatig mee.
Groetjes HofCAD
CS
I
Yes, Bart... je hebt gelijk
Het probleem was idd dat mijn OSNAP nog aanstond (soms zit het in kleine dingetjes hé)
Maar met jouw aanpassingen in de Lisp is het opgelost :D
Volgend vraagje: Om nu in het midden van m'n tekst een horizontale lijn te trekken moet ik waarschijnlijk het één en ander veranderen in je Lisp... ik vermoed dat het gaat om wat ik hieronder in het rood heb aangeduid?
(defun c:Klijn ()
(setq c_laag (getvar "CLAYER"))
(setq magneet (getvar "osmode"))
(setvar "osmode" 0)
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb) )
(command "-layer" "t" "0_GEEL-TEKSTSTREEP" "")
(command "-layer" "m" "0_GEEL-TEKSTSTREEP" "c" "y" "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbR) (abs (cadr tbL)))
)
""
)
(setvar "CLAYER" c_laag)
(setvar "osmode" magneet)
)
)
(princ)
)
Toch al hartelijk bedankt idereen :D
Citaat van: MarkskeVolgend vraagje: Om nu in het midden van m'n tekst een horizontale lijn te trekken moet ik waarschijnlijk het één en ander veranderen in je Lisp...
Beste Markske
Op je verzoek hier onderstaand twee LISP-programmaatjes,
voor een middenstreep en kruisstrepen door text entiteiten.
Groetjes HofCAD
CS
I(defun c:MLtxt (/ ~CMD ~OSM C_laag textent p1 tb tbl tbr lay clay)
(setq lay "0_GEEL-TEKSTSTREEP1" clay "YELLOW")
;;;Laagnaam en Laagkleur eventueel veranderen
(setq ~CMD (getvar "CMDECHO") ~OSM (getvar "OSMODE"))
(setvar "CMDECHO" 0)(setvar "OSMODE" 0)
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" lay "")
(command "-layer" "m" lay "c" clay "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (/ (+ (cadr tbL) (cadr tbR)) 2.0)))
(list (+ (car p1) (car tbR)) (+ (cadr p1) (/ (+ (cadr tbL) (cadr tbR)) 2.0)))
""
)
(setvar "CLAYER" c_laag)
)
)
(setvar "OSMODE" ~OSM) (setvar "CMDECHO" ~CMD)
(princ)
)
(defun c:KLtxt (/ ~CMD ~OSM C_laag textent p1 tb tbl tbr lay clay)
(setq lay "0_GEEL-TEKSTSTREEP1" clay "YELLOW")
;;;Laagnaam en Laagkleur eventueel veranderen
(setq ~CMD (getvar "CMDECHO") ~OSM (getvar "OSMODE"))
(setvar "CMDECHO" 0)(setvar "OSMODE" 0)
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" lay "")
(command "-layer" "m" lay "c" clay "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbL)))
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbR)))
""
)
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (cadr tbR)))
(list (+ (car p1) (car tbR)) (+ (cadr p1) (cadr tbL)))
""
)
(setvar "CLAYER" c_laag)
)
)
(setvar "OSMODE" ~OSM) (setvar "CMDECHO" ~CMD)
(princ)
)
Hoi HofCAD,
bedankt voor die twee Lisp-rouines, ze werken perfect :D
Voor een beetje zelfstudie heb ik ze eens naast elkaar gezet en met elkaar vergeleken, maar ik kan er toch niet uithalen hoe je beslist om de lijn in het center te trekken... ik moet echt eens dringend aan die cursus Lisp beginnen denk ik :wink:
in iedergeval nogmaals bedankt voor je hulp HofCAD!!!
Groetjes,
Markske
ps: toch even vermelden dat het hier om een lisp-routine om "horizontale" tekst de doorstrepen... geen geroteerde tekst :wink:
Citaat van: MarkskeHoi HofCAD
ps: toch even vermelden dat het hier om een lisp-routine om "horizontale" tekst de doorstrepen... geen geroteerde tekst :wink:
Beste Markske,
Wil je hebben, dat ik dat ook voor je probeer te regelen.
Allee da kunde ge kreegen hur.
Groetjes HofCAD
CS
IPS Probeer het onderstaande eens uit.
(defun c:MLtxt (/ ~CMD ~OSM C_laag textent p1 tb tbl tbr lay clay rot)
(setq lay "0_GEEL-TEKSTSTREEP1" clay "YELLOW")
;;;Laagnaam en Laagkleur eventueel veranderen
(setq ~CMD (getvar "CMDECHO") ~OSM (getvar "OSMODE"))
(setvar "CMDECHO" 0)(setvar "OSMODE" 0)
(setq c_laag (getvar "CLAYER"))
(setq textent (car (entsel "\nSelecteer tekst: ")))
(if (= (cdr (assoc 0 (entget textent))) "TEXT")
(progn
(setq p1 (cdr (assoc 10 (entget textent))))
(setq rot (cdr (assoc 50 (entget textent))))
(setq tb (textbox (list (cons -1 textent)))
tbL (car tb)
tbR (cadr tb)
)
(command "-layer" "t" lay "")
(command "-layer" "m" lay "c" clay "" "")
(command "_LINE"
(list (+ (car p1) (car tbL)) (+ (cadr p1) (/ (+ (cadr tbL) (cadr tbR)) 2.0)))
(list (+ (car p1) (car tbR)) (+ (cadr p1) (/ (+ (cadr tbL) (cadr tbR)) 2.0)))
""
)
(if (numberp rot) (command "_ROTATE" "L" "" p1 (/ (* rot 180) Pi)))
(setvar "CLAYER" c_laag)
)
)
(setvar "OSMODE" ~OSM) (setvar "CMDECHO" ~CMD)
(princ)
)
sjongejongejonge HofCAD...
Heeft iemand vandaag al tegen je gezegd hoe goed je eigelijk wel bent??
Wel...
Ik vind je donders goed :wink:
Thanks mate!!!
Greetzzz,
Markske ('n Belgske dat al 'n tijdje in NL werkt :wink: )
Citaat van: Markskesjongejongejonge HofCAD...
Markske ('n Belgske dat al 'n tijdje in NL werkt :wink: )
Beste Markske,
Je draagt dus een steentje bij in de nederlandse economie, een soort
veredeld ontwikkelingswerk.
Namens het ministerie van economische zaken en namens mij, onze
dank daarvoor.
Ik had eigenlijk verwacht, dat je ook wel zou willen dat gestapelde tekst
(tekststijl vertical) ook zou kunnen.
Verder dat het selecteren wat netter zou gaan, en een betere foutafhandeling
zou plaats vinden.
Omdat ik je avatar geweldig vind, en ik zeer goede Oude Geuze
kan drinken in het Oude Arsenaal bespaar ik je de moeite. :D
Kijk eens naar mijn laatste versie
http://www.autocadforum.nl/autocadforum/viewtopic.php?p=2179#2179en probeer het eens uit.
Groetjes HofCAD
CS
I