Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/15/2025 in Posts

  1. The 'edit_box' does not generate an event when editing in AutoCAD. To get the content of the edit_box you must do it when leaving the box, after pressing the accept button. You could do that like this: (action_tile "accept" "(if (wcmatch (setq custSc (get_tile \"other\")) \"#,##,###,####,#####\") (progn (setq sng \"other\") (setq sngReturn (atoi custSc))))")
    1 point
  2. 1 point
  3. (defun c:AlignTxtToCircleAllDrawing (/ n conj conj1 ent ent1 lstent pto rad pt1 pt2 x pto selEnt distMin AlignTxtToCircle 1x1? osmant) (defun AlignTxtToCircle (circle textObj / mtextObj centerPoint textHeight circles texts opt centroTexto ) (defun centroTexto (lstent / cajatx difx dify SO SE NE NO ptC) (if (= (cdr (assoc 0 lstent)) "MTEXT") (setq NO (cdr (assoc 10 lstent)) ptC (list (+ (car NO) (/ (cdr (assoc 41 lstent)) 2.0)) (- (cadr NO) (/ (cdr (assoc 40 lstent)) 2.0)) ) ) (setq cajatx (textbox lstent) difx (- (car (cadr cajatx)) (car (car cajatx))) dify (- (cadr (cadr cajatx)) (cadr (car cajatx))) SO (polar (cdr (assoc 10 lstent)) (- (cdr (assoc 50 lstent)) (/ pi 2)) (abs (cadr (car cajatx))) ) NE (polar (polar so (cdr (assoc 50 lstent)) difx) (+ (cdr (assoc 50 lstent)) (/ pi 2)) dify) ptC (polar SO (angle SO NE) (/ (distance SO NE) 2.0)) ) ) ptC ) (defun obj->txMC (ent / lstent tipObj vlaEnt texto estilo capa ang ptins altura) (cond ((= (setq tipObj (cdr (assoc 0 (setq lstent (entget ent))))) "TEXT" ) (vlax-put-property (vlax-ename->vla-object ent) "Alignment" 10 ) (vlax-put-property (vlax-ename->vla-object ent) "TextAlignmentPoint" (VLAX-3D-POINT (cdr (assoc 10 lstent))) ) ent ) ((= tipObj "MTEXT") (setq texto (if (setq pos (vl-string-search ";" (cdr (assoc 1 lstent))) ) (if (setq pos (vl-string-search "}" (setq texto (substr (cdr (assoc 1 lstent)) (+ pos 2) ) ) ) ) (substr texto 1 pos) texto ) (cdr (assoc 1 lstent)) ) estilo (cdr (assoc 7 lstent)) capa (cdr (assoc 8 lstent)) ang (cdr (assoc 50 lstent)) ptins (cdr (assoc 10 lstent)) altura (cdr (assoc 40 lstent)) vlaEnt (vla-AddText (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object) ) ) texto (VLAX-3D-POINT ptins) altura ) ) (vlax-put vlaEnt "ROTATION" ang) (vlax-put vlaEnt "LAYER" capa) (vlax-put vlaEnt "STYLENAME" estilo) (vlax-put-property vlaEnt "Alignment" 10) (vlax-put-property vlaEnt "TextAlignmentPoint" (VLAX-3D-POINT ptins) ) (vla-delete (vlax-ename->vla-object ent)) (vlax-vla-object->ename vlaEnt) ) (T (alert "Tipo de objeto no es TEXT ni MTEXT") nil ) ) ) (redraw selEnt 3) ;;; (if 1x1? ;;; (grdraw ;;; (centroTexto (entget selEnt)) ;;; (cdr (assoc 10 (entget ent))) ;;; 1 ;;; 2 ;;; ) ;;; ) ;;; (initget 1 "SKIP SELECT YES") (if (or (not 1x1?) (member (setq opt (strcase (getstring "\n*** Align this text? [sKip/Select other/<Yes>] : "))) '("Y" "") ) ) (if (or (and selEnt (setq textObj (obj->txMC selEnt))) (and (setq selEnt (car (entsel "\nText not found. Select text..."))) (wcmatch (cdr (assoc 0 (entget selEnt))) "*TEXT") (setq textObj (obj->txMC selEnt))) ) (vl-cmdf "_move" textObj "" (cdr (assoc 11 (entget textObj))) (cdr (assoc 10 (entget ent))) ) (princ "\n*** OMITED ***") ) (if (and (not (redraw selEnt 4)) (member opt '("S" "SELECT")) ) (if (and (setq selEnt (car (entsel))) (wcmatch (cdr (assoc 0 (entget selEnt))) "*TEXT") ) (if (and (not (redraw selEnt 3)) (setq textObj (obj->txMC selEnt)) ) (vl-cmdf "_move" textObj "" (cdr (assoc 11 (entget textObj))) (cdr (assoc 10 (entget ent))) ) ) ) ) ) (redraw selEnt 4) ) (setq n 0 osmant (getvar "OSMODE")) (setvar "OSMODE" 0) (princ "\nSelect circles...") (if (setq conj (ssget '((0 . "CIRCLE") (8 . "*")))) (progn ;;; (initget 1 "NO YES") ;;; (setq 1x1? (getkword "\nDo you want analyze circle by circle? [No/<Yes>]: ")) ;;; (if (= 1x1? "YES") ;;; (setq 1x1? T) ;;; (setq 1x1? nil) ;;; ) (while (setq ent (ssname conj n)) (setq lstent (entget ent) pto (cdr (assoc 10 lstent)) rad (cdr (assoc 40 lstent)) selEnt nil distMin nil n (+ n 1) ) (if 1x1? (vl-cmdf "_zoom" (setq pt1 (list (- (car pto) (* rad 10.0)) (- (cadr pto) (* rad 10.0)))) (setq pt2 (list (+ (car pto) (* rad 10.0)) (+ (cadr pto) (* rad 10.0))))) (setq pt1 (list (- (car pto) (* rad 10.0)) (- (cadr pto) (* rad 10.0))) pt2 (list (+ (car pto) (* rad 10.0)) (+ (cadr pto) (* rad 10.0))) ) ) (if (setq conj1 (ssget "_W" pt1 pt2 '((0 . "*TEXT")))) (progn (foreach ent1 (mapcar 'cadr (vl-remove-if-not (function (lambda (x) (member (car x) '(0 2 3)))) (ssnamex conj1))) (if distMin (if (< (setq dist (distance pto (setq pto1 (cdr (assoc 10 (entget ent1)))))) distmin) (setq selEnt ent1 distMin dist) ) (setq distMin (distance pto (cdr (assoc 10 (entget ent1)))) selEnt ent1 ) ) ) (AlignTxtToCircle ent selEnt) (redraw) ) ) ) ) ) (setvar "OSMODE" osmant) (redraw) (princ) )
    1 point
×
×
  • Create New...