FastFiber

tekst doorstrepen

Gestart door Markske, wo 13 04 2005, 07:55:05

Vorige topic - Volgende topic

Markske

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

cadtools@gmail.com

?? ..toch maar een lijntje erdoortrekken ?

ArcoLux


Markske

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)
)

Markske

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)
)

HofCAD

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 CSI.

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)
)
ACADcadabra

Joop

Bij mij werkt 't.
Wat is bij jou het probleem? :?:
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Markske

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??

bart

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)
)
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

HofCAD

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 CSI
ACADcadabra

Markske

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

HofCAD

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 CSI


(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)
)
ACADcadabra

Markske

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:

HofCAD

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 CSI

PS 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)
)
ACADcadabra

Markske

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: )

yoin