Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
khimacho114

Xin Lisp Chỉnh Tâm Của Text Trùng Tâm Đường Tròn

Các bài được khuyến nghị

khimacho114    3

chào mọi người, nhờ các bác giúp mình lisp khi chọn text với đường tròn cho ra kết quả bán kính của đường tròn bằng chiều cao của text , tâm của đườn tròn trùng tâm của  text (dạng middle center ).thank

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bee    108

chào mọi người, nhờ các bác giúp mình lisp khi chọn text với đường tròn cho ra kết quả bán kính của đường tròn bằng chiều cao của text , tâm của đườn tròn trùng tâm của  text (dạng middle center ).thank

Thử cái này xem: ^_^ viết nhanh chỉ dùng cho 1 text với 1 đường tròn . Chọn đối tượng lần đầu có thể chọn hết các đường tròn. 

Chúc ngon miệng. ^_^

(defun c:test (/ ss n ename center radius pt1 pt2 ss1)
  (setvar "CMDECHO" 0)
  (princ "\nChon duong tron: ")
  (if (setq ss (ssget '((0 . "CIRCLE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq ename (ssname ss n))
	(setq center (cdr (assoc 10 (entget ename))))
	(setq radius (cdr (assoc 40 (entget ename))))
	(setq pt1 (polar center (/ (* pi 3) 4) (/ (* 3 radius) 4)))
	(setq pt2 (polar pt1 (angle pt1 center) (/ (* 3 radius) 2)))
	(setq ss1 (ssget "C" pt1 pt2 '((0 . "TEXT"))))
	(if ss1
	  (progn
	    (command "_justifytext" ss1 "" "MC"
		     "move" (ssname ss1 0) "" "_none" (cdr (assoc 11 (entget (ssname ss1 0)))) "_none" center)
	    (entmod (subst (assoc 40 (entget (ssname ss1 0)))
			   (assoc 40 (entget ename))
			   (entget ename))
		    )
	    )
	  )
	
	(setq n (1+ n))
	);repeat
      );progn
    );if
  (command "zoom" "P")
  (princ)
  )
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
khimacho114    3

 

Thử cái này xem: ^_^ viết nhanh chỉ dùng cho 1 text với 1 đường tròn . Chọn đối tượng lần đầu có thể chọn hết các đường tròn. 

Chúc ngon miệng. ^_^

(defun c:test (/ ss n ename center radius pt1 pt2 ss1)
  (setvar "CMDECHO" 0)
  (princ "\nChon duong tron: ")
  (if (setq ss (ssget '((0 . "CIRCLE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq ename (ssname ss n))
	(setq center (cdr (assoc 10 (entget ename))))
	(setq radius (cdr (assoc 40 (entget ename))))
	(setq pt1 (polar center (/ (* pi 3) 4) (/ (* 3 radius) 4)))
	(setq pt2 (polar pt1 (angle pt1 center) (/ (* 3 radius) 2)))
	(setq ss1 (ssget "C" pt1 pt2 '((0 . "TEXT"))))
	(if ss1
	  (progn
	    (command "_justifytext" ss1 "" "MC"
		     "move" (ssname ss1 0) "" "_none" (cdr (assoc 11 (entget (ssname ss1 0)))) "_none" center)
	    (entmod (subst (assoc 40 (entget (ssname ss1 0)))
			   (assoc 40 (entget ename))
			   (entget ename))
		    )
	    )
	  )
	
	(setq n (1+ n))
	);repeat
      );progn
    );if
  (command "zoom" "P")
  (princ)
  )

đúng cái mình đang cần, cảm ơn bạn nhiều

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×