Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

Xoay text thuộc tính trong block


  • Please log in to reply
12 replies to this topic

#1 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3825 Bài viết
Điểm đánh giá: 4349 (đỉnh cao)

Đã gửi 22 June 2007 - 12:19 AM

Lệnh XO của lisp dưới đây sẽ xoay góc nghiêng của Attribute Block về 0.

(defun c:XO( / ssdt sodt index tt entdt)    (setq ssdt (ssget)	sodt (sslength ssdt)	index 0  )  (repeat sodt    (setq entdt (ssname ssdt index)	  index (1+ index)	  entdt (entnext entdt)	  tt (entget entdt)	  tt (subst (cons 50 0.0) (assoc 50 tt) tt)    )    (entmod tt)    (entupd entdt)  )  (princ))

Sử dụng đặc hiệu trong trường hợp block ký hiệu trục nằm nghiêng.
Hình đã gửi
  • 0

#2 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 252 (khá)

Đã gửi 22 June 2007 - 03:40 PM

Lệnh XO của lisp dưới đây sẽ xoay góc nghiêng của Attribute Block về 0.

(defun c:XO( / ssdt sodt index tt entdt)    (setq ssdt (ssget)	sodt (sslength ssdt)	index 0  )  (repeat sodt    (setq entdt (ssname ssdt index)	  index (1+ index)	  entdt (entnext entdt)	  tt (entget entdt)	  tt (subst (cons 50 0.0) (assoc 50 tt) tt)    )    (entmod tt)    (entupd entdt)  )  (princ))

Sử dụng đặc hiệu trong trường hợp block ký hiệu trục nằm nghiêng.
Hình đã gửi




Cái này chỉ dùng cho những Block có điểm chèn trùng với tâm Block (BLock có tính đối xứng)
Nếu gặp những Block không có tính đối xứng thì sao???
  • 0

#3 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3825 Bài viết
Điểm đánh giá: 4349 (đỉnh cao)

Đã gửi 22 June 2007 - 04:34 PM

Cái này chỉ dùng cho những Block có điểm chèn trùng với tâm Block (BLock có tính đối xứng)
Nếu gặp những Block không có tính đối xứng thì sao???


Lệnh này dùng với mọi block có điểm chèn bất kỳ và hình bất kỳ!

Lệnh XO của lisp dưới đây sẽ xoay góc nghiêng của Attribute Block về 0.

Lệnh này dùng để xoay góc nghiêng của Attribute Block trong Block về 0, chứ không hề tác động hoặc lấy thông tin nào từ block mẹ. Ngay trong file ví dụ trên, điểm chèn cũng không nằm tại tâm vòng tròn mà nằm lệch vào đầu mút của nét line, ký hiệu trục trong ví dụ trên cũng không đối xứng tâm vì ngoài vòng tròn còn có kèm thêm một mẩu line ở đầu.

vndesperados hãy đọc mã lệnh chương trình đi (mã có lẽ là đủ ngắn và clear để đọc hiểu), hoặc nếu không đọc được thì cũng nên test qua chương trình đã, đừng suy đoán.
  • 0

#4 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 252 (khá)

Đã gửi 22 June 2007 - 04:56 PM

Lệnh này dùng với mọi block có điểm chèn bất kỳ và hình bất kỳ!

Lệnh này dùng để xoay góc nghiêng của Attribute Block trong Block về 0, chứ không hề tác động hoặc lấy thông tin nào từ block mẹ. Ngay trong file ví dụ trên, điểm chèn cũng không nằm tại tâm vòng tròn mà nằm lệch vào đầu mút của nét line, ký hiệu trục trong ví dụ trên cũng không đối xứng tâm vì ngoài vòng tròn còn có kèm thêm một mẩu line ở đầu.

vndesperados hãy đọc mã lệnh chương trình đi (mã có lẽ là đủ ngắn và clear để đọc hiểu), hoặc nếu không đọc được thì cũng nên test qua chương trình đã, đừng suy đoán.



http://www.cadviet.com/upfiles/Blk001_1.zip

Nhờ bác test trên block này đi.
Cái này mằm trong một phần chương trình ghi diện tích mà mình đã post lên diễn đàn đó

Mà đúng là lúc nãy chỉ đọc thôi, không test
Bây giờ mới test thật nè, mà cái block này là có sẵn chứ không cố tạo ra để chơi bác đâu.

Mô tả block cho bác luôn
Đó là block dùng 6 cái ATT
Ba cái hiển thị:
Một cái ghi ký hiệu
Một cái ghi diện tích
Một cái ghi dân số
Ba cái ẩn
Một cái ghi giá trị handle của đối tượng mà Block gắn vào
Một cái ghi đơn vị DT
Một cái ghi đơn vị dân số
Cực kỳ trong sáng chứ không có gì khuất tất...
  • 0

#5 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3825 Bài viết
Điểm đánh giá: 4349 (đỉnh cao)

Đã gửi 22 June 2007 - 05:05 PM

http://www.cadviet.com/upfiles/Blk001_1.zip

Nhờ bác test trên block này đi.
Cái này mằm trong một phần chương trình ghi diện tích mà mình đã post lên diễn đàn đó


Tại sao vndesperados không test luôn!

trước và sau khi xoay:
Hình đã gửi
  • 0

#6 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 252 (khá)

Đã gửi 22 June 2007 - 05:24 PM

Tại sao vndesperados không test luôn!

trước và sau khi xoay:
Hình đã gửi


(defun c:XO( / ssdt sodt index tt entdt)
(setq ssdt (ssget)
sodt (sslength ssdt)
index 0
)
(repeat sodt
(setq entdt (ssname ssdt index)
index (1+ index)
entdt (entnext entdt)
tt (entget entdt)
tt (subst (cons 50 0.0) (assoc 50 tt) tt)
)
(entmod tt)
(entupd entdt)
)
(princ)
)

Block này hiển thị đến 3 thông tin luôn. Đó mới chỉ là ký hiệu thôi. Còn thông tin về dân số và diện tích nằm trong 2 phần 1/4 hình tròn
Bác nhập đủ rồi test thử lại xem sao
  • 0

#7 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 3825 Bài viết
Điểm đánh giá: 4349 (đỉnh cao)

Đã gửi 22 June 2007 - 05:32 PM

Ý tôi muốn nói ở đây là lisp trên chạy rất tốt với mọi block.

Nó chỉ hiệu chỉnh 1 thuộc tính đầu tiên trong block. Muốn hiệu chỉnh tất cả các thuộc tính trong block (không phải ai cũng muốn), cần phải thêm một chút mã lệnh.
  • 0

#8 vndesperados

vndesperados

    biết lệnh xref

  • Members
  • PipPipPipPipPipPipPip
  • 547 Bài viết
Điểm đánh giá: 252 (khá)

Đã gửi 22 June 2007 - 05:43 PM

Đùa bác tý thôi, nếu bác giận thì xin lỗi nhé
Có bài tóan này nè:
Trong một bản vẽ có nhiều block
Bây giờ muốn thay đổi lại điểm chèn (tâm) của block mà không làm thay đổi vị trí của block
Các block có thể có nhiều góc xoay và scale khác nhau.
Giả thích rõ ra nhé
Ví dụ có 1 block có điểm chèn nằm lệch. Sau khi đã chèn rất nhiều block đó vào bản vẽ thì người ta mới phát sinh nhu cầu thay đổi lại điểm chèn (tâm) của block mà không làm thay đổi vị trí của block đó.
  • 0

#9 hugo75

hugo75

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: -4 (bình thường)

Đã gửi 16 June 2011 - 05:55 PM

Lệnh XO của lisp dưới đây sẽ xoay góc nghiêng của Attribute Block về 0.

(defun c:XO( / ssdt sodt index tt entdt)    (setq ssdt (ssget)	sodt (sslength ssdt)	index 0  )  (repeat sodt    (setq entdt (ssname ssdt index)	  index (1+ index)	  entdt (entnext entdt)	  tt (entget entdt)	  tt (subst (cons 50 0.0) (assoc 50 tt) tt)    )    (entmod tt)    (entupd entdt)  )  (princ))

Sử dụng đặc hiệu trong trường hợp block ký hiệu trục nằm nghiêng.
Hình đã gửi

Nhờ bác Hoành hoặc bác nào biết sửa lại cho có thể nhập góc xoay vào được.Thanks.
  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4221 Bài viết
Điểm đánh giá: 3716 (đỉnh cao)

Đã gửi 17 June 2011 - 05:53 AM

Nhờ bác Hoành hoặc bác nào biết sửa lại cho có thể nhập góc xoay vào được.Thanks.

Sửa lại theo yêu cầu của bạn 1 tí
(defun c:XO( / ssdt sodt index tt entdt ang)    (setq ssdt (ssget '((0 . "INSERT") (66 . 1)))	sodt (sslength ssdt)	index 0	  )  (or *ang* (setq *ang* 0.0))  (setq ang (getangle (strcat "\n Nhap goc < " 				(rtos (/ (* 180 *ang*) pi) 2 2) " > :")))  (if ang (setq *ang* ang) (setq ang *ang*))  (repeat sodt    (setq entdt (ssname ssdt index)	  index (1+ index))    (while (/= (cdr(assoc 0 (entget entdt))) "SEQEND")    	(setq	    entdt (entnext entdt)	  tt (entget entdt)	  tt (subst (cons 50 ang) (assoc 50 tt) tt)    	)   	 (entmod tt)    	(entupd entdt)    )  )  (princ))

  • 1

#11 hugo75

hugo75

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: -4 (bình thường)

Đã gửi 17 June 2011 - 06:41 AM

Báo lỗi ; error: bad SSGET list value.Mong bác xem lại giúp.
  • 0

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4221 Bài viết
Điểm đánh giá: 3716 (đỉnh cao)

Đã gửi 17 June 2011 - 07:30 AM

Báo lỗi ; error: bad SSGET list value.Mong bác xem lại giúp.

Đã sửa lại code. Bạn download lại Lisp ở bài viết trên của Tue_NV
  • 0

#13 unikey1991

unikey1991

    biết zoom

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

Đã gửi 11 March 2014 - 05:57 PM

các bác cho em hỏi nhờ chút ạ

những Block có tên trùng nhau nhưng có góc quay khác nhau thì có cách nào xuất được tọa độ và những góc quay đó không ạ

Em cảm ơn ạ


  • 0