tmelancon Posted October 2, 2015 Posted October 2, 2015 Hello all, I work primarily in the piping industry and we do not use Autocad 3D Plant because we aren't in the design industry but rather more in the maintenance part of it. That being said we do not have the piping slope hatching functionality. See Photo for slope hatching example. We use this for 45 degrees, rolled 45 degrees and rolled 90 degree elbows. If someone can chime in a maybe share something that would be useful to us to aid in the automation of creating this hatch quickly I would greatly appreciate it. Quote
ROBP Posted October 2, 2015 Posted October 2, 2015 Hello all, I work primarily in the piping industry and we do not use Autocad 3D Plant because we aren't in the design industry but rather more in the maintenance part of it. That being said we do not have the piping slope hatching functionality. See Photo for slope hatching example. We use this for 45 degrees, rolled 45 degrees and rolled 90 degree elbows. If someone can chime in a maybe share something that would be useful to us to aid in the automation of creating this hatch quickly I would greatly appreciate it. have you tried region with batten hatch? Quote
rlx Posted October 2, 2015 Posted October 2, 2015 I never use iso's myself but for my colleagues I did write a program , RlxIso. If I have some spare time I can ask them how this should work and maybe update my program (if they are interested at all). To me it looks just like a isometric triangle with a user hatch at 90 degrees. Right now I'm in the middle of a major shutdown at the plant I'm working so not sure if I have any time soon. gr. Rlx Quote
rkent Posted October 2, 2015 Posted October 2, 2015 Maybe explain a little bit more in what you are wanting that the basic bhatch function won't provide. Whether the iso is 2d or a 3d view the bhatch works just fine, so I am guessing you are wanting more? Quote
tmelancon Posted October 6, 2015 Author Posted October 6, 2015 To clarify, right now my office is having to manually draw the right triangles (i.e. using simple line command or offset command) and then we apply hatching depending on whether the angle is a vertical angle or a horizontal angle. My question pertains to a lisp that can automate the creation of the triangle and the hatching ( I should have been more specific in the title, but thats what AutoCAD Plant 3D calls it). We can manually draw, trim and hatch these all day no problems as this is rudimentary cad operations, however. The downfall is when you have dozens of angles throughout a piping circuit and have dozens to complete each day. I need someone to help with a lisp routine to automate the triangle and the hatching in a click or two. Heres a screen shot from my program to show example. The first image was taken from AutoCAD Plant 3D and was just for reference. Quote
Lee Mac Posted October 6, 2015 Posted October 6, 2015 (edited) This looked like an interesting program to write - please try the following (adjust the settings at the top to suit): [color=GREEN];;----------------------=={ Isometric Triangle }==----------------------;;[/color] [color=GREEN];; ;;[/color] [color=GREEN];; Prompts the user to pick two points at a non-isometric angle and ;;[/color] [color=GREEN];; proceeds to construct a hatched isometric right-angled triangle, ;;[/color] [color=GREEN];; offset from the two given points by a distance specified in the ;;[/color] [color=GREEN];; code. ;;[/color] [color=GREEN];;----------------------------------------------------------------------;;[/color] [color=GREEN];; Author: Lee Mac, Copyright © 2015 - www.lee-mac.com ;;[/color] [color=GREEN];;----------------------------------------------------------------------;;[/color] [color=GREEN];; Version 1.0 - 2015-10-06 ;;[/color] [color=GREEN];; ;;[/color] [color=GREEN];; - First release. ;;[/color] [color=GREEN];;----------------------------------------------------------------------;;[/color] [color=GREEN];; Version 1.1 - 2015-10-10 ;;[/color] [color=GREEN];; ;;[/color] [color=GREEN];; - Removed restriction on non-isometric angles (e.g. 60 deg). ;;[/color] [color=GREEN];;----------------------------------------------------------------------;;[/color] ([color=BLUE]defun[/color] c:isotri ( [color=BLUE]/[/color] an1 an2 div err hat hpa off pat pi6 ply pt1 pt2 scl spc vt1 vt2 vt3 ) ([color=BLUE]setq[/color] off 1.0 [color=GREEN];; Triangle offset[/color] pat [color=MAROON]"ANSI31"[/color] [color=GREEN];; Hatch pattern name[/color] hpa ([color=BLUE]/[/color] [color=BLUE]pi[/color] 4.0) [color=GREEN];; Hatch angle[/color] scl 0.1 [color=GREEN];; Hatch scale[/color] ) ([color=BLUE]cond[/color] ( ([color=BLUE]not[/color] ([color=BLUE]and[/color] ([color=BLUE]setq[/color] pt1 ([color=BLUE]getpoint[/color] [color=MAROON]"\nPick 1st point: "[/color])) ([color=BLUE]setq[/color] pt2 ([color=BLUE]getpoint[/color] [color=MAROON]"\nPick 2nd point: "[/color] pt1)) ) ) ) ( ([color=BLUE]progn[/color] ([color=BLUE]defun[/color] div ( x m [color=BLUE]/[/color] r ) ([color=BLUE]setq[/color] r ([color=BLUE]rem[/color] x m)) ([color=BLUE]or[/color] ([color=BLUE]equal[/color] 0.0 r 1e-6) ([color=BLUE]equal[/color] m r 1e-6)) ) ([color=BLUE]setq[/color] an1 ([color=BLUE]angle[/color] pt1 pt2) pi6 ([color=BLUE]/[/color] [color=BLUE]pi[/color] 6.0) ) ([color=BLUE]and[/color] (div an1 pi6) ([color=BLUE]not[/color] (div an1 ([color=BLUE]+[/color] pi6 pi6)))) ) ([color=BLUE]princ[/color] [color=MAROON]"\nCannot generate triangle for isometric angle."[/color]) ) ( ([color=BLUE]or[/color] ([color=BLUE]<[/color] an1 pi6) ([color=BLUE]<[/color] ([color=BLUE]*[/color] 05 pi6) an1 ([color=BLUE]*[/color] 7 pi6)) ([color=BLUE]<[/color] ([color=BLUE]*[/color] 11 pi6) an1) ) ([color=BLUE]princ[/color] [color=MAROON]"\nCannot generate triangle for iso angles less than 90 degrees."[/color]) ) ( ([color=BLUE]progn[/color] ([color=BLUE]setq[/color] an2 ([color=BLUE]cond[/color] ( ([color=BLUE]<[/color] an1 ([color=BLUE]*[/color] 3 pi6)) pi6) ( ([color=BLUE]<[/color] an1 ([color=BLUE]*[/color] 5 pi6)) ([color=BLUE]*[/color] 5 pi6)) ( ([color=BLUE]<[/color] an1 ([color=BLUE]*[/color] 9 pi6)) ([color=BLUE]*[/color] 7 pi6)) ( ([color=BLUE]*[/color] 11 pi6)) ) ) ([color=BLUE]setq[/color] vt1 ([color=BLUE]polar[/color] pt1 an2 ([color=BLUE]/[/color] off ([color=BLUE]sin[/color] ([color=BLUE]abs[/color] ([color=BLUE]-[/color] an1 an2))))) vt2 ([color=BLUE]polar[/color] pt1 an2 ([color=BLUE]/[/color] ([color=BLUE]-[/color] ([color=BLUE]car[/color] pt2) ([color=BLUE]car[/color] pt1)) ([color=BLUE]cos[/color] an2))) vt3 ([color=BLUE]polar[/color] vt1 an1 ([color=BLUE]/[/color] ([color=BLUE]-[/color] ([color=BLUE]car[/color] vt2) ([color=BLUE]car[/color] vt1)) ([color=BLUE]cos[/color] an1))) ) ([color=BLUE]setq[/color] ply ([color=BLUE]vlax-invoke[/color] ([color=BLUE]setq[/color] spc ([color=BLUE]vlax-get-property[/color] ([color=BLUE]vla-get-activedocument[/color] ([color=BLUE]vlax-get-acad-object[/color])) ([color=BLUE]if[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'cvport)) 'paperspace 'modelspace) ) ) 'addlightweightpolyline ([color=BLUE]apply[/color] '[color=BLUE]append[/color] ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]reverse[/color] ([color=BLUE]cdr[/color] ([color=BLUE]reverse[/color] x)))) ([color=BLUE]list[/color] vt1 vt2 vt3) ) ) ) ) ([color=BLUE]vla-put-closed[/color] ply [color=BLUE]:vlax-true[/color]) ([color=BLUE]vl-catch-all-error-p[/color] ([color=BLUE]setq[/color] hat ([color=BLUE]vl-catch-all-apply[/color] '[color=BLUE]vlax-invoke[/color] ([color=BLUE]list[/color] spc 'addhatch [color=BLUE]achatchpatterntypepredefined[/color] pat [color=BLUE]:vlax-true[/color] [color=BLUE]achatchobject[/color]) ) ) ) ) ([color=BLUE]vla-delete[/color] ply) ([color=BLUE]princ[/color] [color=MAROON]"\nError creating hatch: "[/color]) ([color=BLUE]princ[/color] ([color=BLUE]vl-catch-all-error-message[/color] hat)) ) ( ([color=BLUE]vl-catch-all-error-p[/color] ([color=BLUE]setq[/color] err ([color=BLUE]vl-catch-all-apply[/color] '[color=BLUE]vlax-invoke[/color] ([color=BLUE]list[/color] hat 'appendouterloop ([color=BLUE]list[/color] ply)) ) ) ) ([color=BLUE]vla-delete[/color] hat) ([color=BLUE]vla-delete[/color] ply) ([color=BLUE]princ[/color] [color=MAROON]"\nError setting hatch boundary: "[/color]) ([color=BLUE]princ[/color] ([color=BLUE]vl-catch-all-error-message[/color] err)) ) ( [color=BLUE]t[/color] ([color=BLUE]vla-evaluate[/color] hat) ([color=BLUE]vla-put-patternangle[/color] hat hpa) ([color=BLUE]vla-put-patternscale[/color] hat scl) ) ) ([color=BLUE]princ[/color]) ) ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color]) A Quick Demo: Edited October 10, 2015 by Lee Mac Quote
tmelancon Posted October 7, 2015 Author Posted October 7, 2015 Humm I tried your code lee. I am selecting both end points of the line I wish to create the hatched triangle for but keep getting the message- "Cannot generate triangle for isometric angle."... In our industry we draw strictly in isometric and these are indeed isometric angles. However, when I draw lines straight up and straight right(90 and 180 degrees) then run the code and pick my two points, it pops in a isometric triangle like what is shown in the image that I will attach. Quote
tmelancon Posted October 7, 2015 Author Posted October 7, 2015 Now here is the depiction of what we would actually need.. Thanks again for everything by the way this is extremely generous of you. Excellent hard work! Quote
tmelancon Posted October 7, 2015 Author Posted October 7, 2015 Another example. With that being said, the user would also have to be able to change angle after selecting points, to illustrate a vertical or horizontal angle. .Again, if this isnt worth the time Lee I completely understand I was just using Cad Tutor as a resource in case some other piping designers out there (that aren't using Autocad Plant 3D) had something in mind. Quote
Lee Mac Posted October 7, 2015 Posted October 7, 2015 Looking at your results, you will probably need to reduce the triangle offset specified at the top of the code. I have added a GIF to my earlier post to demonstrate how the program should operate. Lee Quote
tmelancon Posted October 8, 2015 Author Posted October 8, 2015 Lee, what are your credentials you entered at the top, that looks pretty close to what I am wanting.. Outstanding!! Quote
Lee Mac Posted October 8, 2015 Posted October 8, 2015 Lee, what are your credentials you entered at the top, that looks pretty close to what I am wanting.. Outstanding!! I am running the code as posted - you will need to change the offset & scale to suit the size of your drawings (an offset of 10 units will be much too large if your lines are only 1 unit in length). Quote
tmelancon Posted October 8, 2015 Author Posted October 8, 2015 For some reason when I click the second point on the end point of my line is gives me the error "Cannot generate triangle for isometric angle." However, when I click just shy of that end point it generates the triangle? Any ideas as to why? Quote
Lee Mac Posted October 8, 2015 Posted October 8, 2015 For some reason when I click the second point on the end point of my line is gives me the error "Cannot generate triangle for isometric angle." However, when I click just shy of that end point it generates the triangle? Any ideas as to why? Yes, the triangle cannot be generated for multiples of 30 degrees, as the baseline of the triangle will run along these isometric lines, however, I realise I should remove 60 degrees etc from this restriction. Quote
tmelancon Posted October 8, 2015 Author Posted October 8, 2015 Sounds good I appreciate your efforts tremendously. We never know what angles are CAD technicians are going to draw these angles at. Now what they are supposed to draw them at and what the draw them at is a different story. LOL. See if you can make it to where there are no restrictions. Thanks LEE!! Quote
tmelancon Posted October 8, 2015 Author Posted October 8, 2015 I wonder if you can make a separate code modified to look like the hatching in my post #11, which is what we call a horizontal hatch for 90s that are rolled but are essentially at exact same elevations. I will call the first one ISOV and the horizontal one ISOH.. Thanks for everything LEE! Quote
Lee Mac Posted October 8, 2015 Posted October 8, 2015 Sounds good I appreciate your efforts tremendously. Thank you for your gratitude. See if you can make it to where there are no restrictions. Though as explained, lifting all restrictions on the angle is not possible as the baseline of the triangle will follow the isometric axis line (at 30 degrees, for example). Quote
tmelancon Posted October 8, 2015 Author Posted October 8, 2015 In your GIF I see you choosing both end points. When I try and replicate that action, I get the error in result. But in your GIF you clearly are able to perform the routine with two end points of the line at that specific angle. Any thoughts? 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.