Chuyển đến nội dung
Diễn đàn CADViet
tranducanh

Em xin trợ giúp chuyển lip cad từ tính m2 thành hecta ạ

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

Hiện em đang dùng lisp này để tính diện tích đất nhưng số hiện ra theo M2. Bác nào có thể chuyển nó về đơn vị hecta và đánh dấu "," trước 4 chữ số được không ạ?
VD: 12345m2= 1, 2345ha
Em xin cảm ơn ạ.Untitled-1.thumb.jpg.d8d3b7aa58219ceebf255b5eb7368f02.jpg

fao.lsp

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

của Bạn đây

(defun c:fao (/ bn ld as lt 2v 3d e p p1 p2 _att a en)
  (vl-load-com)
  (setq	bn "SDDMOI"
	ld "KHIEU"
	as "DTICH"
	lt "TENBLOCK"
  )					;Change by user
  (or *st* (setq *st* 1))
  (setq	2v vlax-ename->vla-object
	3d vlax-3D-point
  ) ;_ end of setq
  (while (not (setq s (ssget "_+.:E:S" (list (cons 2 bn)))))
    (princ "\nMiss!")
  ) ;_ end of while
  (setq	e    (2v (ssname s 0))
	*st* (cond ((getint (strcat "Start Number <" (itoa *st*) ">:")))
		   (*st*)
	     ) ;_ end of cond
	p    (getpoint "\nBase point :")
	p1   (3d p)
	_att (lambda (b tag v / r)
	       (foreach	at (vlax-invoke b 'GetAttributes)
		 (if (eq tag (vla-get-TagString at))
		   (setq r
			  (if v
			    (vla-put-textstring at v)
			    (vla-get-textstring at)
			  ) ;_ end of if
		   ) ;_ end of setq
		 ) ;_ end of if
	       ) ;_ end of foreach
	       r
	     ) ;_ end of lambda
  ) ;_ end of setq
  (while (setq p2 (acet-ss-drag-move s p "\nTo :"))
    (cond ((setq en (bpoly p2))
	   (setq a (vla-get-area (2v en)))
	   (entdel en)
	   (vla-move (setq n (vla-copy e)) p1 (3d p2))
	   (_att n
		 ld
		 (strcat
		   (_att n lt nil)
		   (if (< *st* 10)
		     "-0"
		     "-"
		   ) ;_ end of if
		   (itoa *st*)
		 ) ;_ end of strcat
	   ) ;_ end of _att
	   (_att n as (vl-string-translate "." "," (rtos (* a 0.0001) 2 4))); thay doi dong nay
	   (setq *st* (1+ *st*))
	  )
    ) ;_ end of cond
  ) ;_ end of while
) ;_ end of defun

 

  • Like 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

Anh Tien2005 cho em hỏi tại sao khi em dùng lệnh mà chữ HT em chuyển sang thành một chữ khác như là CC thì nó vẫn cứ quay lại thành HT ạ. Có cách nào giữ nguyên chữ em đã chuyển không anh?

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
6 giờ trước, tranducanh đã nói:

Anh Tien2005 cho em hỏi tại sao khi em dùng lệnh mà chữ HT em chuyển sang thành một chữ khác như là CC thì nó vẫn cứ quay lại thành HT ạ. Có cách nào giữ nguyên chữ em đã chuyển không anh?

 

Bạn xóa các dòng này thử có được không.

(_att n
		 ld
		 (strcat
		   (_att n lt nil)
		   (if (< *st* 10)
		     "-0"
		     "-"
		   ) ;_ end of if
		   (itoa *st*)
		 ) ;_ end of strcat
	   ) ;_ end of _att

Nếu không được thì post bản vẽ mấu lên

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
Vào lúc 22/3/2019 tại 22:02, tien2005 đã nói:

 

Bạn xóa các dòng này thử có được không.

  • cadvietlisp.lsp
    lisp help
  •  

(_att n
		 ld
		 (strcat
		   (_att n lt nil)
		   (if (< *st* 10)
		     "-0"
		     "-"
		   ) ;_ end of if
		   (itoa *st*)
		 ) ;_ end of strcat
	   ) ;_ end of _att

Nếu không được thì post bản vẽ mấu lên

À, hình như do em trước để mặc định Block nó là HT thì nó chuyển trả là HT bác, em chuyển nó sang CC nó theo rồi ạ. Cảm ơn bác nhiều nha ^^

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

×