nalsur8 Posted January 26, 2014 Share Posted January 26, 2014 hi, help/guide me how to change the circle to slot (defun C:bl (/ ds lg pt1 pt2 ang pt3 ht cd pt4 pt5 os dr tx) (command "undo" "m") (setq os (getvar "osmode")) (setvar "osmode" 0) (setq ds (getvar "dimscale")) (if (= ds 0.0) (setq ds 1)) (setq lg (* ds (getvar "dimasz"))) (setq pt1 (getpoint "\nLeader Start Point: ")) (setq pt2 (getpoint pt1 "\nLeader Ending Point: ")) (setq ang (angle pt1 (list (car pt2) (cadr pt1)))) (setq pt3 (polar pt2 ang lg)) (if (not num) (setq num (getint "\nStarting Item #: ")) (setq num (+ num 1))) (setq ht (* ds (getvar "dimtxt"))) (setq cd (/ (* (getvar "dimtxt") ds) 0.4)) (setq pt4 (polar pt3 ang (/ cd 2))) (COMMAND "leader" pt1 pt2 pt3 "" "" "n") (command "circle" "2p" pt3 (polar pt3 ang cd)) (command "text" "m" pt4 ht "0" num) (setvar "osmode" os) ) Quote Link to comment Share on other sites More sharing options...
Tharwat Posted January 26, 2014 Share Posted January 26, 2014 Try this ... Are you really still using Autocad 2002 as shown in your profile ? (defun c:Test (/ a b c d num pt ds lg p1 p2 ang p3 ht cd p4 pt5) ;; Tharwat 26. Jan. 2014 ;; (if (= (setq ds (getvar "dimscale")) 0.0) (setq ds 1.) ) (setq lg (* ds (getvar "dimasz"))) (if (setq num (getint "\n Starting Item #: ")) (while (and (setq p1 (getpoint "\n Leader Start Point: ")) (setq p2 (getpoint p1 "\n Leader Ending Point: ")) ) (setq ang (angle p1 (list (car p2) (cadr p1))) p3 (polar p2 ang lg) ht (* ds (getvar "dimtxt")) cd (/ (* (getvar "dimtxt") ds) 0.4) p4 (polar p3 ang (/ cd 2.)) ) (command "_.leader" "_none" p1 "_none" p2 "_none" p3 "" "" "n") (setq a (polar p4 (+ ang (* pi 0.5)) (/ cd 2.)) b (polar a ang (distance p2 p3)) c (polar b (+ ang (* pi 1.5)) cd) d (polar c (+ pi ang) (distance p2 p3)) ) (entmakex (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 10 a) (cons 10 b) '(42 . -1) (cons 10 c) (cons 10 d) '(42 . -1) ) ) (entmakex (list '(0 . "TEXT") (cons 10 (setq pt (mapcar '(lambda (p q) (/ (+ p q) 2.)) (mapcar '(lambda (p q) (/ (+ p q) 2.)) a b) (mapcar '(lambda (p q) (/ (+ p q) 2.)) d c) ) ) ) (cons 11 pt) (cons 40 ht) (cons 1 (itoa num)) (cons 50 0.) '(41 . 1.0) (cons 7 (getvar 'textstyle)) '(71 . 0) '(72 . 4) '(73 . 0) ) ) (setq num (+ num 1)) ) ) (princ) ) Quote Link to comment Share on other sites More sharing options...
nalsur8 Posted January 26, 2014 Author Share Posted January 26, 2014 Tharwat: Thanks about the code, my profile already update.. Program from Lee-Mac http://www.lee-mac.com/numinc.html very usefull to use it but it's no have for Leader option, if have user can choose on/off if they want to attach the leader, hope Lee-Mac can update to add some option Quote Link to comment Share on other sites More sharing options...
Tharwat Posted January 26, 2014 Share Posted January 26, 2014 You asked for slot object instead of circle and I did something in that regard , did my codes meet your needs before you ask another guy for something else ? Quote Link to comment Share on other sites More sharing options...
nalsur8 Posted January 26, 2014 Author Share Posted January 26, 2014 thanks Tharwat, your code is what i'm looking Quote Link to comment Share on other sites More sharing options...
Tharwat Posted January 26, 2014 Share Posted January 26, 2014 thanks Tharwat, your code is what i'm looking Good for you . Quote Link to comment Share on other sites More sharing options...
nalsur8 Posted February 13, 2014 Author Share Posted February 13, 2014 Tharwat: i edited the code add same function, how to convert to DCL so user can input data from dialog (defun c:bll (/ a b c d num pt ds lg p1 p2 ang p3 ht cd p4 pt5) ;; Tharwat 26. Jan. 2014 ;; ;; edited by nalsur8 11/02/2014 ;;===== add 12022014 ====== (setq os (getvar "osmode")) ;saves current osnap settings (setvar "osmode" 512) (if(not job#) (setq job# (getstring "\nJob Number :")) (setq job# job#) );if (if (= (setq ds (getvar "dimscale")) 0.0) (setq ds 1.) ) (setq lg (+(* ds (getvar "dimasz"))3)) (if(not num) (setq num (getint "\n Starting Item #: ")) (setq num num) );if (setq split(getstring "\nSaparate Plate? Y,N :")) (if(= split "Y") (progn (initget 1 "A B C D") (setq plate# (getkword "Plate A,B,C,D <A>:")) );progn (setq plate# "") );if (while (and (setq p1 (getpoint "\n Leader Start Point: ")) (setq p2 (getpoint p1 "\n Leader Ending Point: "))) (if(< num 10) (setq num1 "-0") (setq num1 "-") ) (setq ang (angle p1 (list (car p2) (cadr p1)))) (setq p3 (polar p2 ang lg)) (setq ht (* ds (getvar "dimtxt"))) (setq cd (/ (* (getvar "dimtxt") ds) 0.4)) (setq p4 (polar p3 ang (/ cd 2.))) (command "_.leader" "_none" p1 "_none" p2 "_none" p3 "" "" "n") (setq a (polar p4 (+ ang (* pi 0.5)) (/ cd 2.))) (setq b (polar a ang 52.));(distance p2 p3))); change long slot (setq c (polar b (+ ang (* pi 1.5)) cd)) (setq d (polar c (+ pi ang)52.));(distance p2 p3))); change long slot (entmakex (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 10 a) (cons 10 b) '(42 . -1) (cons 10 c) (cons 10 d) '(42 . -1) ) ) ;;; (command "circle" p4 "d" 3"");p============= (entmakex (list '(0 . "TEXT") (cons 10 (setq pt (mapcar '(lambda (p q) (/ (+ p q) 2.)) (mapcar '(lambda (p q) (/ (+ p q) 2.)) a b) (mapcar '(lambda (p q) (/ (+ p q) 2.)) d c) ) ) ) (cons 11 pt) (cons 40 ht) (cons 1 (strcat job# num1(itoa num)plate#));edit here for text (cons 50 0.) '(41 . 1.0) (cons 7 (getvar 'textstyle)) '(71 . 0) '(72 . 4) '(73 . 0) ) ) (setq num (+ num 1)) );while (setq plate# nil) ;;; );if (princ) (setvar "osmode" os) ) DCL code ballon_slot : dialog{ label="Ballon Slot"; :row{ :boxed_column{label="Setting"; :column{ fixed_width=true; :row{ :text{label="Job Number (Prefix)";} :edit_box{key="jobno";fixed_width=true;} } :row{ :text{label="Plate Stage (Suffix)";} :toggle{key="?????";} :edit_box{key="suffix";fixed_width=true;} } :row{ :text{label="Start No";} :edit_box{key="start_no";fixed_width=true;} } } } :column{ :button{label="OK";key="accept";is_default=true;} :button{label="Cancel";key="cancel";is_cancel=true;} :text{} :text{} :text{} :text{} } } } Quote Link to comment Share on other sites More sharing options...
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.