0 Members and 1 Guest are viewing this topic.
what if you change the text style, i switched it to the one my company uses and it screws up the centering of the textLT-E (arial narrow with italics)
Here is a quickie:Code: [Select](defun c:makelt (/ str file fn exprt) (setq str (getstring T "\n Enter string for linetype: ") file (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_mylt.lin" ) fn (open file "w") exprt (getvar 'expert) ) (write-line (strcat "*" str ", ---" str "---") fn) (write-line (strcat "A,0.5,-0.05,[\"" str "\",STANDARD,S=0.1,R=0.0,X=-0.0,Y=-.05]," (rtos (* -0.1 (strlen str))2 3) ) fn ) (close fn) (setvar 'expert 5) (command ".-linetype" "load" "*" file "") (setvar 'expert exprt) (vl-file-delete file) (princ))
(defun c:makelt (/ str file fn exprt) (setq str (getstring T "\n Enter string for linetype: ") file (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_mylt.lin" ) fn (open file "w") exprt (getvar 'expert) ) (write-line (strcat "*" str ", ---" str "---") fn) (write-line (strcat "A,0.5,-0.05,[\"" str "\",STANDARD,S=0.1,R=0.0,X=-0.0,Y=-.05]," (rtos (* -0.1 (strlen str))2 3) ) fn ) (close fn) (setvar 'expert 5) (command ".-linetype" "load" "*" file "") (setvar 'expert exprt) (vl-file-delete file) (princ))
(defun c:makelt (/ dashlen def exprt file fn i ltdef str strw txtgap txthgt txtstyle x rjp-txtwdth _rtos rjp-substrsnvalid ) (vl-load-com) (defun rjp-txtwdth (str hgt style / d e pts) ;;Returns textstring width, gap from insertion point to start of text, and height (if (setq e (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText") '(8 . "rjp-tmptxtlayer") '(10 0. 0. 0.) (cons 40 hgt) (cons 1 str) (cons 7 style) ) ) ) (progn (setq pts (textbox (entget e))) (setq d (distance (car pts) (list (caadr pts) (cadar pts)))) (entdel e) ) ) (list d (caar pts) (- (cadadr pts) (abs (cadar pts)))) ) (defun rjp-substrsnvalid (str / bad) (setq bad (mapcar '(lambda (x) (cons (chr x) (chr (- x 6)))) (vl-string->list "<>/\\:?*|,=~;\"")) ) (apply 'strcat (mapcar '(lambda (x) (if (snvalid x) x (strcat "inv_" (cdr (assoc x bad))) ) ) (mapcar 'chr (vl-string->list str)) ) ) ) (defun _rtos (real) (vl-prin1-to-string real)) ;; Check for metric (if (zerop (getvar 'measurement)) (setq i 1) (setq i 25.4) ) ;;Set these numbers to preference (setq dashlen 0.25) (setq txtgap 0.025) (setq txthgt 0.075) ;;------------------------------- (setq txtstyle (getvar 'textstyle)) (if (and (setq str (getstring t "\nEnter string to use in linetype: ")) (not (zerop (strlen str))) (setq def (rjp-substrsnvalid str)) (setq txthgt (* i (cond ((getreal (strcat "\nEnter height of text [<" (_rtos txthgt) ">]: "))) (txthgt) ) ) ) (setq dashlen (* i (cond ((getreal (strcat "\nEnter dash length [<" (_rtos dashlen) ">]: "))) (dashlen) ) ) ) (setq strw (rjp-txtwdth str txthgt txtstyle)) (setq file (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_mylt.lin")) (setq fn (open file "w")) (setq exprt (getvar 'expert)) ) (progn (setq ltdef (strcat "\n*" def ", ---" str "---\n" "A," (_rtos dashlen) ",-" (_rtos (abs (- txtgap (cadr strw)))) ",[\"" str "\"," txtstyle ",S=" (_rtos txthgt) ",R=.0,X=-.0,Y=-" (_rtos (* (caddr strw) 0.5)) "],-" (_rtos (+ txtgap (car strw) (cadr strw))) ) ) (write-line ltdef fn) (close fn) (setvar 'expert 5) (cond ((not (tblsearch "ltype" def)) (command "._-linetype" "load" "*" file "") (princ ltdef) (princ (strcat "\nLinetype " def " loaded...")) ) ((and (not (initget 1 "Y N")) (eq (getkword "\nLinetype exists... Reload it? [Y/N]") "Y")) (command "._-linetype" "load" "*" file "") (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acactiveviewport) (princ ltdef) (princ (strcat "\nLinetype " def " reloaded...")) ) ) (setvar 'expert exprt) (vl-file-delete file) ) ) (princ))