Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Lisp xuất chiều dài Line ra Text có sẵn và có tiền tố, hậu tố


  • Please log in to reply
36 replies to this topic

#21 Dien nuoc

Dien nuoc

    biết pan

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

Đã gửi 03 October 2015 - 09:23 PM

Chao bac Kieu tan !

Em nhờ bác viết hộ em 1 lisp suất ra text với nội dung như sau:

- Pick điểm 1 , 

- Pick điểm 2 

Xuất ra text độ dài giữa 2 điểm ghi L = ...M  tại giữa 2 điểm vừa pick. Lưu ý  là 2 điểm pick đó bất kỳ xoay góc bao nhiêu đi mữa thì Text xuất ra sẽ xoay theo 2 điểm đó và Text chẵn VD: L=10M không suất ra L=10.2M

Mong sớm nhận được bài của bác


  • -2

#22 diepthiennhi

diepthiennhi

    Chưa sử dụng CAD

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

Đã gửi 27 November 2015 - 10:18 AM

E có Lisp trên dùng để tính chiều dài của Polyline và pick vào text có sẵn sẽ ra chiều dài của Polyline đó. E muốn nhờ các bác có thể sửa (hoặc có sẵn 1 Lisp nào đó) để khi pick vào text sẵn có nó sẽ ra giá trị chiều dài nhân hệ số 1.1 lẫn tiền tố và hậu tố. Ví dụ chiều dài là 5.20 nó sẽ ra là L=5.72m chẳng hạn. Thank's!


  • -2

#23 haminhhuong

haminhhuong

    biết zoom

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

Đã gửi 12 December 2015 - 11:23 AM

anh ơi có thể chuyển thành dạng mtext không ạ vì trên mặt bằng mtext sẽ có background làm nổi text lên?


  • 0

#24 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 258 Bài viết
Điểm đánh giá: 95 (tàm tạm)

Đã gửi 12 December 2015 - 10:11 PM

dùng lệnh textmask đi Bạn. cũng làm text nổi lên được mà


  • 0

#25 linhdt1121

linhdt1121

    Chưa sử dụng CAD

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

Đã gửi 23 September 2016 - 08:23 PM

chào các bác

hiện tại em cũng có nhu cầu như của bác này, nhưng kết quả làm tròn đến 2 số phần thập phân.

bác nào có có thể share cho em đc ko, hay bác nào viết đc tính phí thì cũng liên hệ cho em nhé

các bác nào tính phí thì gọi vào số cầm tay cho em:09722741 bôn năm

cảm ơn các bác đọc tin


  • 0

#26 khanhpt4

khanhpt4

    biết pan

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

Đã gửi 21 October 2016 - 09:59 AM

Các cao thủ có thể sửa giúp em làm sao để ghi ra kết quả nó theo đơn vị met được không ạ. chứ em thực hiện lệnh xong thì phần chữ số vẫn theo đơn vị mm :((. EM cảm ơn các bro trước.


  • -1

#27 Danh Cong

Danh Cong

    biết dimdiameter

  • Members
  • PipPipPipPipPip
  • 334 Bài viết
Điểm đánh giá: 67 (tàm tạm)

Đã gửi 21 October 2016 - 10:12 AM

Các cao thủ có thể sửa giúp em làm sao để ghi ra kết quả nó theo đơn vị met được không ạ. chứ em thực hiện lệnh xong thì phần chữ số vẫn theo đơn vị mm :((. EM cảm ơn các bro trước.

 

Được voi đòi 2 bà Trưng đây. Lạm dụng lisp nhiều quá ko tốt đâu nhé.

 

Sửa thì dễ, nhưng bạn có thể thủ công thêm 1 dấu chấm sau 3 chữ số mà  ! Cứ thích yêu cầu 1 nháy chuột ăn ngay cơ  :D  :D  :D.


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#28 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 13 December 2016 - 03:31 PM

Với LINE thì sử dụng dòng này không được
(command "area" "e" dtuong1)
Vì LINE không có diện tích
Và ngoài ý 1 mà bạn DoanVanHa đã nêu trên, bạn alpha1810 phải thay dòng
(command "area" "e" dtuong1)
thành dòng :
(command "LENGTHEN" dtuong1 "")
hoặc : (command "LIST" dtuong1 "")

Bạn Tue_NV ơi,

  1. Lisp này có thêm chế độ chọn liên tục nhiều Line (multi) được không?
  2. Mình có nhiều đoạn Line khác nhau, ví dụ AB, CD, EF..,...theo Lisp này thì xong từng đoạn Line rồi lập lại từ đầu với các đoạn khác, như vậy hơi mất thêm thời gian
  3. kết quả xuất ra "m" thay vì "mm"

 

Cảm ơn bạn


  • -1

#29 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 18 December 2016 - 11:25 AM

ko có ai giúp mình với, buồn ghê


  • 0

#30 Bee

Bee

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 218 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 18 December 2016 - 12:51 PM

ko có ai giúp mình với, buồn ghê

post dwg vi du len các anh các bác sẽ giúp ^_^


  • 1

#31 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 18 December 2016 - 09:15 PM

post dwg vi du len các anh các bác sẽ giúp ^_^

mình ko up lên cadviet mình gửi kèm link gồm dwg và lisp bạn nhé, đây là lisp mình lấy được trên diễn đàn, cảm ơn bạn, cuối tuần vui vẽ nhé

 

https://drive.google...iew?usp=sharing


  • 0

#32 Bee

Bee

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 218 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 18 December 2016 - 10:04 PM

mình ko up lên cadviet mình gửi kèm link gồm dwg và lisp bạn nhé, đây là lisp mình lấy được trên diễn đàn, cảm ơn bạn, cuối tuần vui vẽ nhé

 

https://drive.google...iew?usp=sharing

Lisp mới đây, chỉ cần chọn LINE còn lại lisp làm việc nhé. ^_^ Thay tên lệnh tùy ý. 

 

Chui khắp các topic nhờ vả mà ko thấy ai repply, khổ thân ^_^

;;Lenh TEST

(defun c:test (/ ss n _length pt1 ss1)
  (setvar "CMDECHO" 0)
  (princ "\nChon *LINE: ")
  (if (setq ss (ssget '((0 . "*LINE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq _length (/ (vlax-get (vlax-ename->vla-object (ssname ss n)) 'Length) 1000.))
	
	(setq pt1 (polar (cdr (assoc 10 (entget (ssname ss n)))) (/ pi 2) 100.))
	
	(setq ss1 (ssget "C" pt1 (cdr (assoc 11 (entget (ssname ss n)))) '((0 . "TEXT"))))
	(if ss1
	  (entmod (subst (cons 1 (strcat "L= " (rtos _length 2 1) " m"))
			   (assoc 1 (entget (ssname ss1 0)))
			   (entget (ssname ss1 0)))
		    )
	    )
	(setq n (1+ n))
	);repeat
      );progn
    (princ "\nBan da khong chon LINE.")
    );if
  (command "zoom" "P")
  (princ)
  )

  • 1

#33 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 19 December 2016 - 09:59 AM

 

Lisp mới đây, chỉ cần chọn LINE còn lại lisp làm việc nhé. ^_^ Thay tên lệnh tùy ý. 

 

Chui khắp các topic nhờ vả mà ko thấy ai repply, khổ thân ^_^

;;Lenh TEST

(defun c:test (/ ss n _length pt1 ss1)
  (setvar "CMDECHO" 0)
  (princ "\nChon *LINE: ")
  (if (setq ss (ssget '((0 . "*LINE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq _length (/ (vlax-get (vlax-ename->vla-object (ssname ss n)) 'Length) 1000.))
	
	(setq pt1 (polar (cdr (assoc 10 (entget (ssname ss n)))) (/ pi 2) 100.))
	
	(setq ss1 (ssget "C" pt1 (cdr (assoc 11 (entget (ssname ss n)))) '((0 . "TEXT"))))
	(if ss1
	  (entmod (subst (cons 1 (strcat "L= " (rtos _length 2 1) " m"))
			   (assoc 1 (entget (ssname ss1 0)))
			   (entget (ssname ss1 0)))
		    )
	    )
	(setq n (1+ n))
	);repeat
      );progn
    (princ "\nBan da khong chon LINE.")
    );if
  (command "zoom" "P")
  (princ)
  )

Dear bạn, lisp này cad 2013 sử dụng được, ko sử dụng được cho cad 2007 vậy bạn,  nó báo select object: 1 found

Sáng đầu tuần mà có tin vui của bạn rồi, cảm ơn bạn nhé, đầu tuần vui vẽ, hihi


  • 0

#34 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 19 December 2016 - 11:42 AM

 

Lisp mới đây, chỉ cần chọn LINE còn lại lisp làm việc nhé. ^_^ Thay tên lệnh tùy ý. 

 

Chui khắp các topic nhờ vả mà ko thấy ai repply, khổ thân ^_^

;;Lenh TEST

(defun c:test (/ ss n _length pt1 ss1)
  (setvar "CMDECHO" 0)
  (princ "\nChon *LINE: ")
  (if (setq ss (ssget '((0 . "*LINE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq _length (/ (vlax-get (vlax-ename->vla-object (ssname ss n)) 'Length) 1000.))
	
	(setq pt1 (polar (cdr (assoc 10 (entget (ssname ss n)))) (/ pi 2) 100.))
	
	(setq ss1 (ssget "C" pt1 (cdr (assoc 11 (entget (ssname ss n)))) '((0 . "TEXT"))))
	(if ss1
	  (entmod (subst (cons 1 (strcat "L= " (rtos _length 2 1) " m"))
			   (assoc 1 (entget (ssname ss1 0)))
			   (entget (ssname ss1 0)))
		    )
	    )
	(setq n (1+ n))
	);repeat
      );progn
    (princ "\nBan da khong chon LINE.")
    );if
  (command "zoom" "P")
  (princ)
  )

Hi bạn,

nếu đường thẳng nằm dọc hay nằm ngiêng lisp ko tính được, mình gửi bản vẽ đính kèm nhờ bạn xem với nhé, thanks

 

https://drive.google...Zkhva1RYZUZJUFk


  • -1

#35 Bee

Bee

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 218 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 19 December 2016 - 01:37 PM

Hi bạn,

nếu đường thẳng nằm dọc hay nằm ngiêng lisp ko tính được, mình gửi bản vẽ đính kèm nhờ bạn xem với nhé, thanks

 

https://drive.google...Zkhva1RYZUZJUFk

Đã fix nhé ^_^

;;Lenh TEST

(defun c:test (/ ss n _length pt1 pt2 pt3 pt4 ss1 )
  (vl-load-com)
  (setvar "CMDECHO" 0)
  (princ "\nChon LINE: ")
  (if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq _length (/ (vlax-get (vlax-ename->vla-object (ssname ss n)) 'Length) 1000.))
	(setq pt1 (polar (cdr (assoc 10 (entget (ssname ss n)))) (+ (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt2 (polar (cdr (assoc 11 (entget (ssname ss n)))) (- (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt3 (polar (cdr (assoc 10 (entget (ssname ss n)))) (- (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt4 (polar (cdr (assoc 11 (entget (ssname ss n)))) (+ (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )

	(setq ss1 (ssget "CP" (list pt1 pt4 pt2 pt3) '((0 . "TEXT"))))
	(if ss1
	  (if (> (sslength ss1) 1)
	    (progn
	      (princ "\nCo >1 TEXT tai vi tri vung chon xung quanh LINE.")
	      (redraw (ssname ss n) 3)
	      )
	    (entmod (subst (cons 1 (strcat "L= " (rtos _length 2 1) " m"))
			   (assoc 1 (entget (ssname ss1 0)))
			   (entget (ssname ss1 0)))
		    )
	    )
	  )
	(setq n (1+ n))
	);repeat
      );progn
    (princ "\nBan da khong chon LINE.")
    );if
  (command "zoom" "P")
  (princ)
  )

  • 1

#36 lanvientkh

lanvientkh

    biết vẽ pline

  • Members
  • PipPip
  • 68 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 19 December 2016 - 09:23 PM

 

Đã fix nhé ^_^

;;Lenh TEST

(defun c:test (/ ss n _length pt1 pt2 pt3 pt4 ss1 )
  (vl-load-com)
  (setvar "CMDECHO" 0)
  (princ "\nChon LINE: ")
  (if (setq ss (ssget '((0 . "LINE"))))
    (progn
      (command "zoom" "ob" ss "")
      (setq n 0)
      (repeat (sslength ss)
	(setq _length (/ (vlax-get (vlax-ename->vla-object (ssname ss n)) 'Length) 1000.))
	(setq pt1 (polar (cdr (assoc 10 (entget (ssname ss n)))) (+ (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt2 (polar (cdr (assoc 11 (entget (ssname ss n)))) (- (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt3 (polar (cdr (assoc 10 (entget (ssname ss n)))) (- (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )
	(setq pt4 (polar (cdr (assoc 11 (entget (ssname ss n)))) (+ (angle (cdr (assoc 10 (entget (ssname ss n))))
									   (cdr (assoc 11 (entget (ssname ss n))))
									   )
								      (/ pi 2)
								    )
			 100.)
	      )

	(setq ss1 (ssget "CP" (list pt1 pt4 pt2 pt3) '((0 . "TEXT"))))
	(if ss1
	  (if (> (sslength ss1) 1)
	    (progn
	      (princ "\nCo >1 TEXT tai vi tri vung chon xung quanh LINE.")
	      (redraw (ssname ss n) 3)
	      )
	    (entmod (subst (cons 1 (strcat "L= " (rtos _length 2 1) " m"))
			   (assoc 1 (entget (ssname ss1 0)))
			   (entget (ssname ss1 0)))
		    )
	    )
	  )
	(setq n (1+ n))
	);repeat
      );progn
    (princ "\nBan da khong chon LINE.")
    );if
  (command "zoom" "P")
  (princ)
  )

lisp quá tốt, thanks bạn hí


  • 0

#37 blockmachine

blockmachine

    biết pan

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

Đã gửi 20 December 2016 - 09:12 AM

Đúng cái mình cần , thanks bạn


  • 0