omkeren van lijnrichting
als je een lijn tekent met een bepaald patroon als eigenschap, moet je deze in de juiste richting trekken.
anders komt het patroon aan de verkeerde kant van de lijn te staan.
dit geldt bijvoorbeeld voor het lijntype 'maaiveld'.
zo zullen er nog wel een aantal voorbeelden zijn.
nu heb ik in een model een aantal lijnen verkeerd om getekend.
het patroon staat dus aan de verkeerde kant.
is er een mogelijkheid om deze lijneigenschappen aan de juiste kant te krijgen zonder de lijnen allemaal over te moeten trekken? :mrgreen:
Beste Veebee,
er zijn twee mogelijkheden.
1. Teken één extra lijntje (met de juiste richting) aan de verkeerde lijn. Gebruik de optie Join (of PEdit -> join) om de verkeerde lijn aan het extra lijntje te plakken. Je moet hierbij dus WEL het extra lijntje als basis gebruikenj, zodat de lijn die er aangeplakt wordt de eigenschappen overneemt. Tot slot kun je het extra lijntje met trim weer verwijderen en je pline is omgekeerd.
2. Of je kunt de onderstaande lisproutine gebruiken, dit gaat veel sneller.
Groeten,
Reimer
;;; RPL.LSP a program to reverse the direction of polylines
;;; Program by Tony Hotchkiss. Enter RPL to start the program.
(defun c:rpl ()
(setq again nil)
(setq p-ent nil)
(prompt "\nSelect a polyline: ")
(while (not p-ent)
(setq p-ent (car (entsel)))
(if (not p-ent)
(prompt
"\nNo object selected; select again: "
) ;_ end of prompt
(progn
(if (and (/= (dxf 0 p-ent) "POLYLINE")
(/= (dxf 0 p-ent) "LWPOLYLINE")
) ;_ end of and
(progn
(prompt "\nNot a polyline, select again:"
) ;_ end of prompt
(setq p-ent nil)
) ; progn
) ;_ end of if
) ;_ end of progn
) ;_ end of if
) ;_ end of while
(setq etype (dxf 0 p-ent)
x-ent p-ent
is-closed (dxf 70 p-ent)
) ; setq
(if (= etype "LWPOLYLINE")
(progn
(setq num-vert (dxf 90 p-ent)
elist (entget p-ent)
elist (member (assoc 10 elist) elist)
vvlist nil
) ; setq
(repeat num-vert
(setq vlist (list (cdr (assoc 10 elist))))
(setq vlist
(append vlist
(list (cdr (assoc 42 elist)))
) ;_ end of append
) ;_ end of setq
(setq vvlist (append vvlist
(list vlist)
) ;_ end of append
) ;_ end of setq
(setq elist (cdr elist)
elist (member (assoc 10 elist) elist)
) ; setq
) ; repeat
) ; progn lwpolyline
(progn
(setq vvlist nil
p-ent (entnext p-ent)
) ; setq
(while (/= "SEQEND"
(cdr
(assoc 0 (entget p-ent))
) ;_ end of cdr
) ;_ end of /=
(setq vlist (list (dxf 10 p-ent)))
(setq vlist (append vlist
(list (dxf 42 p-ent))
) ;_ end of append
) ;_ end of setq
(setq vvlist (append vvlist
(list vlist)
) ;_ end of append
) ;_ end of setq
(setq p-ent (entnext p-ent))
) ; while
) ; progn polyline
) ; if
(setq p-list (mapcar 'car vvlist)
p-list (reverse p-list)
b-list (mapcar 'cadr vvlist)
b-list (reverse b-list)
b-first (car b-list)
b-list (cdr b-list)
b-list (append b-list (list b-first))
b-list (mapcar '- b-list)
) ; setq
(setq enlist (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length p-list))
(cons 70 (dxf 70 x-ent))
(cons 8 (dxf 8 x-ent))
) ; list
) ; setq
(setq elst nil)
(repeat (length p-list)
(setq
elst (append elst
(list (cons 10 (car p-list)))
) ;_ end of append
) ; setq
(setq
elst (append elst
(list (cons 42 (car b-list)))
) ;_ end of append
) ; setq
(setq p-list (cdr p-list))
(setq b-list (cdr b-list))
) ; repeat
(setq enlist (append enlist elst))
(entdel x-ent)
(entmake enlist)
(prompt "\nPolyline direction is reversed.\n ")
(princ)
) ; rpl
(defun dxf (code ename)
(cdr (assoc code (entget ename)))
) ;_ end of dxf
Beste Reimer,
Voor de tweede mogelijkheid had je hem beter naar het onderwerp
http://www.cadsite.be/smf/index.php?action=post;msg=6567;topic=850.0;sesc=149190684a6039a8b230c187b34b62a0
kunnen sturen, want de vraag ging over 'omkeren van lijnrichting'.
Waarbij volgens mij het o.a. zeker over een line entiteit gaat.
Het programma wat door jouw geplaatst is, werkt alleen met Polyline en LWPolyline
entiteiten.
Dus dan is PLREV.LSP (c) 1999-2004 van Tee Square Graphics
op http://www.turvill.com/t2/free_stuff/ (http://www.turvill.com/t2/free_stuff/) beter.
De beschrijving:
Reverse the direction of any Line, Polyline, or LWPolyline object.
Great for re-orienting appearance in complex linetypes.
*** Version 2.03a: Now preserves entity LTScale and Polyline widths,
and will reverse Circles and Arcs!***
Met vriendelijke groet, HofCAD CSI
:pintje: Allen een :engel: fijne Kerst :engel: en een voorspoedig en gezond 2009. :pintje:
deze lisp-routine werkt perfect: plrev.
bedankt voor de snelle reaktie.
dit zou een nieuw "standaard" commando zijn in autocad 2010 :lol:
plrev werkte niet voor mij de laatste keer dat ik het nodig had. (2009).
Maar zoals je kon lezen in de nieuwsbrief van december:
http://www.cadsite.be/diverse/nieuwsarchief/2008-12_archief.php
Zijn er bonus packs voor subscription klanten. Hiertussen zit een commando om de richting aan te passen.