JuliaShelton Posted October 27, 2015 Posted October 27, 2015 Does anyone know how I can create a double parallel line type? without being forced to use offset or a polyline with a width? The situation is this: I have an entire cities worth of sidewalk data - unfortunately it is a single line. I need it to be 2 lines. I don't particularly want to go through and offset all of these lines as it would take me forever and a day. I also cant use a polyline with a width as every vertex then gets a vertical line. Using a polyline with a fill is also out - the client doesn't like it. I wanted to create a custom line type so when I import the sidewalk data I can simply assign the double line to the layer and be done. when I use the custom line tool however CAD only recognizes one of the lines. Even if I put 2 points at the ends of the line centered between them. Any ideas? Quote
ReMark Posted October 27, 2015 Posted October 27, 2015 Does Map 3D have a Multiline command (MLINE)? Does the single line in the existing drawing represent the centerline of the sidewalk? Two possible solutions existing for offsetting lines and they rely on custom lisp routines created by forum member Lee Mac. They're called Double Offset and Dynamic Offset and both can be found here... http://lee-mac.com/programs.html Quote
JuliaShelton Posted October 27, 2015 Author Posted October 27, 2015 it does have an mline command but that requires me to redraw all the sidewalks I think the dynamic offset might work (at least I can offset the whole market at once...) I'll give it a try! Thanks! Quote
Murph_map Posted October 27, 2015 Posted October 27, 2015 If you are mapimporting a shape file for the sidewalks you can use the data connect instead and create the double line style in the style editor. Quote
BIGAL Posted October 28, 2015 Posted October 28, 2015 A couple of contradictions is every sidewalk made up of single lines ? If its made up of plines then easy you can do all in one go provided the rule is the same that the pline is central or a fixed offset and always drawn in one direction. This would be done via a simple lisp. If individual lines a bit more complex as convert to plines first using join then do the two offsets. Provided the lines do not touch another sidewalk section line it again could possibly be automated. Post a dwg Quote
JuliaShelton Posted October 28, 2015 Author Posted October 28, 2015 Murph_map - I've tried using the style editor and can never get the 2 lines to be offset from each other. Bigal - yes every sidwalk is shown as a single lines. I can convert it to Plines - and yes it would be a fixed offset, always in one direction. Sample of the data I'm working with: sidewalks.dwg Quote
BIGAL Posted October 29, 2015 Posted October 29, 2015 shown as a single lines A quick look and they appear to have been drawn anticlockwise and are plines so a window pick selection take first pline work out left/right then join others and offset. Need a little bit of time. Anybody else step in ! Would put offset on a different layer so left right can be altered. Interesting changed lines to a different layer then PE M pick all J 0.0 now all linked plines where applicable so offset is easy except for in/out Quote
BIGAL Posted October 31, 2015 Posted October 31, 2015 (edited) This not perfect because the dwg is not perfect, I still need to convert the longer lines to plines. (defun c:multpl ( / ss x obj len) (command "-layer" "m" "bm_sidewalk2" "c" 1 "bm_sidewalk2" "m" "bm_sidewalk3" "c" 5 "bm_sidewalk3" "") (setq ss (ssget "X" (list (cons 0 "LINE")(cons 8 "bm_sidewalk")))) (repeat (setq x (sslength ss)) (setq obj (vlax-ename->vla-object (ssname ss (setq x (- x 1))))) (if (< (vla-get-length obj) 34.0)(vla-put-layer obj "bm_sidewalk2")) ) (command "-layer" "off" "bm_sidewalk2" "") ;remove ticks (setq ss nil) (setq ss (ssget "X" (list (cons 0 "lwpolylINE,polyline")(cons 8 "bm_sidewalk")))) (command "Pedit" "m" ss "" "J" 0.0 "") ; join all plines (setq ss nil) (setq ss (ssget "X" (list (cons 0 "lwpolylINE,polyline")(cons 8 "bm_sidewalk")))) ; now do offset (setq pt (getpoint "pick outside")) (repeat (setq x (sslength ss)) (command "offset" 10 (ssname ss (setq x (- x 1))) pt "") (command "chprop" "Last" "" "LA" "bm_sidewalk3" "") ) ) Edited October 31, 2015 by BIGAL Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.