Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
4 replies to this topic

#1 khimacho114

khimacho114

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 29 September 2016 - 03:50 PM

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


  • 0

#2 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 29 September 2016 - 04:08 PM

Dùng lệnh tcircle xem nó vẽ cho cái mới luôn.


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 khimacho114

khimacho114

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 29 September 2016 - 04:59 PM

Dùng lệnh tcircle xem nó vẽ cho cái mới luôn.

bản vẽ có săn text với hình tròn rồi chỉ bị lêch tâm với bán kính khác thôi


  • 0

#4 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 195 Bài viết
Điểm đánh giá: 66 (tàm tạm)

Đã gửi 29 September 2016 - 09:58 PM

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)
  )

  • 1

#5 khimacho114

khimacho114

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 30 September 2016 - 03:06 PM

 

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


  • 0