gashaglava Posted March 13, 2012 Posted March 13, 2012 (edited) Is there a way to fillet lines continuous with crossing window ? I tried the option "C" after running a FILLET, but it normally joins the 2 selected lines and then exits the command. if I ran it with Multiple option, I'd have to pick every pair of lines precisely, which could be very tedious. Is there a way to make it continuous with crossing window? I would like to select another 2 lines with crossing window to fillet, and again, and again ... without having to enter the C option every time I've seen that stuff in Powertools for AutoCAD, even with some advanced possibilities, but I'm not sure the pack is available for purchase anymore. Thanks in advance ! Cheers Edited March 13, 2012 by gashaglava bad grammar :) Quote
eldon Posted March 13, 2012 Posted March 13, 2012 Whilst not being able to suggest an absolute solution to your wishes, have you tried making the Pickbox larger? Then you do not have to be so precise when picking the two lines. Quote
Tharwat Posted March 13, 2012 Posted March 13, 2012 Hope this help, and do not be surprised if lines went opposite way that you wanted (defun c:test (/ ss sn1 sn2 e1 e2 p p1 p2) (vl-load-com) ;;; Tharwat 14. March . 2012 ;;; (defun Entmoding (key value ent) (entmod (subst (cons key value) (assoc key ent) ent)) ) (if (and (progn (princ "\n ***** Select only two lines to connect *****") (setq ss (ssget "_:L" '((0 . "LINE")))) ) (eq (sslength ss) 2) ) (progn (setq sn1 (ssname ss 0)) (setq sn2 (ssname ss 1)) (setq p (vlax-safearray->list (vlax-variant-value (vla-intersectwith (vlax-ename->vla-object sn1) (vlax-ename->vla-object sn2) acExtendBoth ) ) ) ) (if (< (distance (cdr (assoc 10 (setq e1 (entget sn1)))) p) (distance (cdr (assoc 11 e1)) p) ) (progn (setq p1 (cdr (assoc 11 e1))) (Entmoding 10 p e1) ) (progn (setq p1 (cdr (assoc 10 e1))) (Entmoding 11 p e1) ) ) (if (< (distance (cdr (assoc 10 (setq e2 (entget sn2)))) p) (distance (cdr (assoc 11 e2)) p) ) (progn (setq p2 (cdr (assoc 11 e2))) (Entmoding 10 p e2) ) (progn (setq p2 (cdr (assoc 10 e2))) (Entmoding 11 p e2) ) ) ) (princ) ) (princ) ) Quote
alanjt Posted March 13, 2012 Posted March 13, 2012 (edited) I've had this macro in my startup for years... ;fillet (windowed) objects (defun c:fc()(command "_.fillet" "_c")(princ)) Edited March 14, 2012 by alanjt Quote
pBe Posted March 14, 2012 Posted March 14, 2012 If you dont mind pressing escape afterwards you can use something like this (defun c:fc () (command "fillet" "_multiple") (while (> (getvar "CMDACTIVE") 0) (command "c" pause pause) ) ) Quote
gashaglava Posted March 14, 2012 Author Posted March 14, 2012 eldon thnx, but I would like to avoid that pickbox if possible Tharwat close enough ! ... I ran the "Multiple" command, than your "test", and it works very well. It would be great option if it filleted the lines immediately after selection (as fillet normally does, with crossing window), without having to press enter after selection ... alanjt seems to me this IS it, but I don't know how to run it ... I usually put some .lsp files in appload->contents, and they would load on startup ... and I'm not familiar with making macros ... help ? pBe does not work, or I'm doing something wrong ... Thanks Miroslav Gacesa ACAD Architecture 2012 Quote
Lee Mac Posted March 14, 2012 Posted March 14, 2012 seems to me this IS it, but I don't know how to run it ... I usually put some .lsp files in appload->contents, and they would load on startup ... and I'm not familiar with making macros ... help ? Alan's code is still LISP, you can run it in the same way as you did with Tharwat's code, the command syntax is 'fc'. Quote
alanjt Posted March 14, 2012 Posted March 14, 2012 Alan's code is still LISP, you can run it in the same way as you did with Tharwat's code, the command syntax is 'fc'. There you go. Quote
pBe Posted March 14, 2012 Posted March 14, 2012 gashaglava, Just to be on the clear. What error mesage do you get when you run the snippet i posted? It's doing what its supposed to do when i tried on another CAD station Quote
MSasu Posted March 14, 2012 Posted March 14, 2012 @pBe: Your routine works with current fillet radius and I suspect that OP had it set to 0; he/she need to call FILLET command first or use FILLETRAD system variable to set it. Regards, Mircea Quote
pBe Posted March 14, 2012 Posted March 14, 2012 @pBe: Your routine works with current fillet radius and I suspect that OP had it set to 0; he/she need to call FILLET command first or use FILLETRAD system variable to set it. Regards, Mircea I would think there's more to it than that Mircea but thanks for the info ..... What else could be be causing the snippet to fail? .. anyone? Quote
gashaglava Posted March 14, 2012 Author Posted March 14, 2012 pBe, here's the error message : Command: fc Unknown command "FILLET". Press F1 for help. Enter command name to repeat: nil Quote
gashaglava Posted March 14, 2012 Author Posted March 14, 2012 Lee Mac, here's the error message I get when I run alan's code : Command: fc Unknown command "FILLET". Press F1 for help. Unknown command "C". Press F1 for help. Quote
gashaglava Posted March 14, 2012 Author Posted March 14, 2012 pBe, that's it ! works great Thanks ! Quote
pBe Posted March 14, 2012 Posted March 14, 2012 @gashaglava Cool beans. Glad it worked for you. @Mircea and @pBe Language variation.... i should have known. Quote
alanjt Posted March 14, 2012 Posted March 14, 2012 Updated to account for language barriers. Sorry, I wrote that one looooong ago. Quote
Tharwat Posted March 14, 2012 Posted March 14, 2012 Tharwat close enough ! ... I ran the "Multiple" command, than your "test", and it works very well. It would be great option if it filleted the lines immediately after selection (as fillet normally does, with crossing window), without having to press enter after selection ... Try this one without pressing Enter (defun c:test (/ a b ss sn1 sn2 e1 e2 p p1 p2) (vl-load-com) ;;; Tharwat 14. March . 2012 ;;; (defun Entmoding (key value ent) (entmod (subst (cons key value) (assoc key ent) ent)) ) (if (and (progn (princ "\n ***** Select only two lines to connect *****") (setq a (getpoint "\n First point:") b (getcorner "\n Second point:" a) ) (setq ss (ssget "_c" a b)) ) (eq (sslength ss) 2) ) (progn (setq sn1 (ssname ss 0)) (setq sn2 (ssname ss 1)) (setq p (vlax-safearray->list (vlax-variant-value (vla-intersectwith (vlax-ename->vla-object sn1) (vlax-ename->vla-object sn2) acExtendBoth ) ) ) ) (if (< (distance (cdr (assoc 10 (setq e1 (entget sn1)))) p) (distance (cdr (assoc 11 e1)) p) ) (progn (setq p1 (cdr (assoc 11 e1))) (Entmoding 10 p e1) ) (progn (setq p1 (cdr (assoc 10 e1))) (Entmoding 11 p e1) ) ) (if (< (distance (cdr (assoc 10 (setq e2 (entget sn2)))) p) (distance (cdr (assoc 11 e2)) p) ) (progn (setq p2 (cdr (assoc 11 e2))) (Entmoding 10 p e2) ) (progn (setq p2 (cdr (assoc 10 e2))) (Entmoding 11 p e2) ) ) ) (princ) ) (princ) ) Quote
gashaglava Posted March 14, 2012 Author Posted March 14, 2012 alanjt, close enough ! ... if it only wouldnt exit the command after filleting first pair of lines thanks anyway ! 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.