Đến nội dung


Hình ảnh
* - - - - 1 Bình chọn

VIẾT LISP THEO YÊU CẦU


  • Please log in to reply
31 replies to this topic

#1 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 29 October 2013 - 09:35 AM

Bạn nhờ ngýời khác giúp mà bạn kêu ngýời ta ði hỏi bạn là sao? Hãy cứ chờ cứ ðợi ði.

 


Chào các bạn ! 

Hiện tại mình muốn lisp sắp xếp text theo cặp , ðể rỏ hõn có gì các bạn coi file vi du mình gởi lên nhe !

Phần nào các bạn coi không hiểu  mình trả lời bổ sung http://www.cadviet.c...yeu_cau_duy.dwg


  • -1

#2 duy267

duy267

    biết vẽ point

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

Đã gửi 29 October 2013 - 04:42 PM

Bạn nhờ người khác giúp mà bạn kêu người ta đi hỏi bạn là sao? Hãy cứ chờ cứ đợi đi.


  • 0

#3 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 29 October 2013 - 04:55 PM

Bạn nhờ người khác giúp mà bạn kêu người ta đi hỏi bạn là sao? Hãy cứ chờ cứ đợi đi.

Lời nói có cái gì không phải cho mình xin lỗi , văn chương mình kém nên đôi khi sai sót


  • 0

#4 tien2005

tien2005

    biết lệnh properties

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

Đã gửi 29 October 2013 - 08:20 PM

Chịu, nhìn không hiều gì luôn. Đầu vào là những cái gì, đầu ra như thế nào, gồm những gì


  • 0

#5 quansla

quansla

    biết lệnh xclip

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

Đã gửi 29 October 2013 - 09:19 PM

mình cũng nghí ngoáy cái này rồi, cái don't like đầu tiên bài chủ pic là do mình tich, định bụng tích xong thì gửi lisp nên, nhưng lại mắc vướng lại phần lọc text

ý của chủ pic chắc là thế này.

yêu cầu 1 Lisp thực hiên tuần tự như sau:

  1. Gõ lệnh, quét chọn Window đối tượng, Lisp sẽ chọn các text có có dạng "*d* *" (chứa chữ "d" và ký tự dấu cách " ")
  2. Chọn điểm chèn Text(và khoảng cách các Text).
  3. Lisp phun nội dung Text quét được lên màn hình, từ trên xuống dưới, thứ tự là thứ tuwj  được đánh số bởi con số trong vòng tròn "bên cạnh" Text quét được ở bước 1.
  4. Kết thúc lệnh.

Hi vọng đúng ý chủ pic, và mọi người giúp tiếp, mình thì bị kẹt phần lấy thứ tự rồi. Hì hì


  • 0

#6 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 30 October 2013 - 08:14 AM

mình cũng nghí ngoáy cái này rồi, cái don't like đầu tiên bài chủ pic là do mình tich, định bụng tích xong thì gửi lisp nên, nhưng lại mắc vướng lại phần lọc text

ý của chủ pic chắc là thế này.

yêu cầu 1 Lisp thực hiên tuần tự như sau:

  1. Gõ lệnh, quét chọn Window đối tượng, Lisp sẽ chọn các text có có dạng "*d* *" (chứa chữ "d" và ký tự dấu cách " ")
  2. Chọn điểm chèn Text(và khoảng cách các Text).
  3. Lisp phun nội dung Text quét được lên màn hình, từ trên xuống dưới, thứ tự là thứ tuwj  được đánh số bởi con số trong vòng tròn "bên cạnh" Text quét được ở bước 1.
  4. Kết thúc lệnh.

Hi vọng đúng ý chủ pic, và mọi người giúp tiếp, mình thì bị kẹt phần lấy thứ tự rồi. Hì hì

Đúng vậy , ý mình như thế nhưng đôi khi mình trình bày chưa rõ lắm vì mình k nắm được ngôn ngữ thuật toán nên cách nói k rõ ràng


  • 0

#7 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 30 October 2013 - 09:14 AM

Đúng vậy , ý mình như thế nhưng đôi khi mình trình bày chưa rõ lắm vì mình k nắm được ngôn ngữ thuật toán nên cách nói k rõ ràng

Tuy nhiên việc bố trí các vòng tròn ko theo qui luật sẽ dễ xảy ra tình trạng "râu ông này cắm cằm bà kia".15454_request.jpg


  • 0

#8 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 30 October 2013 - 05:05 PM

Tuy nhiên việc bố trí các vòng tròn ko theo qui luật sẽ dễ xảy ra tình trạng "râu ông này cắm cằm bà kia".15454_request.jpg

Mình k hiểu về ngôn ngữ lập trình nên mạo mụi gốp ý tí xíu nhe mong các bạn đừng trách , có thể cho chương trình nhận dạng cái vòng tròn có số hiệu gần chuỗi có chữ d nhất thì nó bắt cặp lại với nhau


  • 0

#9 ringtvt

ringtvt

    Chưa sử dụng CAD

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

Đã gửi 31 October 2013 - 12:34 AM

Mọi người ơi cho mình xin cái lisp tính diện tích trên nova với hic tìm mãi mà chưa được cái ưng ý.. Mình cần 1 lisp sau khi chỉ điểm vào nó sẽ hatch vùng kín đó và tính diện tích sau đó nhấn vào text có sẵn nó sẽ ra diện tích. Cám ơn mọi người nhiều 


  • 0

#10 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 31 October 2013 - 07:32 PM

Các bạn ơi đâu rồi giúp mình với


  • 0

#11 quansla

quansla

    biết lệnh xclip

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

Đã gửi 02 November 2013 - 04:13 PM

Các bạn ơi đâu rồi giúp mình với

Bạn hãy sửa lại bài toán , bằng cách quản lý chặt chẽ Circle, Text trong Circle và Text muốn xuất ra thì sẽ khả thi hơn.

Chẳng hạn trước khi bạn chọn toàn bộ Circle chuyển chúng về cùng một layer, cùng một Radius,  ;; và chọn toàn bộ Text trong Circle (hoặc chí ít toàn bộ text trên bản vẽ) về cùng một layer, hoặc muốn tốt hơn nữa là cùng một size cỡ chữ

Sẽ có khả năng hoàn thành lisp hơn.

Chớ nghĩ mọi thứ dễ dàng, ai cũng cần phải giúp bạn, bên ngoài người ta còn thu phí cơ bạn ạ


  • 0

#12 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 04 November 2013 - 04:36 PM

Bạn hãy sửa lại bài toán , bằng cách quản lý chặt chẽ Circle, Text trong Circle và Text muốn xuất ra thì sẽ khả thi hơn.

Chẳng hạn trước khi bạn chọn toàn bộ Circle chuyển chúng về cùng một layer, cùng một Radius,  ;; và chọn toàn bộ Text trong Circle (hoặc chí ít toàn bộ text trên bản vẽ) về cùng một layer, hoặc muốn tốt hơn nữa là cùng một size cỡ chữ

Sẽ có khả năng hoàn thành lisp hơn.

Chớ nghĩ mọi thứ dễ dàng, ai cũng cần phải giúp bạn, bên ngoài người ta còn thu phí cơ bạn ạ

Cảm ơn bạn đã gốp ý có gì mình sữa lại , vì mình không rành về thuật ngữ nên mình k biết sữa như thế nào để các bạn giúp mình thực hiện lisp này


  • 0

#13 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 06 November 2013 - 09:22 AM

Mình làm file lại theo trật tự mới nếu theo trật tự này thì khả năng thực hiện lisp được không các bạn .

Rất mong các bạn , các anh chị giúp đỡ , cảm ơn mọi người rất nhiều đã quan tâm và giúp đỡ !

http://www.cadviet.c..._yeu_cau_01.dwg


  • 0

#14 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 06 November 2013 - 12:37 PM

Đây là Lisp sắp xếp Text theo yêu cầu.

Do có 2 "Text đặt không đúng qui luật" nên k/quả bỏ qua.

(defun c:sxt(/ ent i lst nd oo p1 p2 pt ss ss_circle ss_txt stt)
  ;; By : Gia_Bach 2013 ;;
(defun dxf(id entdata) (cdr (assoc id entdata)) )
  (if (setq ss (ssget  (list(cons 0 "TEXT")(cons 1 "*d*@*")) ) )
    (progn
      (setq i 0)
      (repeat (sslength ss)
	(setq ent (entget (ssname ss i))
	      p1 (dxf 10 ent) nd (dxf 1 ent))
	(if (= (dxf 50 ent) 0) (setq p2 (polar p1 pi 426)) (setq p2 (polar p1 (* 3(/ pi 2)) 426)) )
	(if (setq ss_circle (ssget "c" p1 p2 (list(cons 0 "CIRCLE"))))
	  (progn
	    (setq oo (dxf 10 (entget(ssname ss_circle 0)))
		  p1 (polar oo (/ pi -4) 150) p2 (polar oo (* 3(/ pi 4)) 150) )
	    (if (setq ss_txt (ssget "c" p1 p2 (list(cons 0  "TEXT") ) ) )
	      (progn
		(setq stt (dxf 1 (entget(ssname ss_txt 0))))
		(if (setq stt (distof stt))
		  (setq lst (cons (cons stt nd) lst)))))))
	(setq i (1+ i)) )
      (if (> (length lst)0)
	(progn
	  (setq pt (getpoint "Diem dat text:"))
	  (command "undo" "be")
	  (foreach item  (vl-sort lst '(lambda (t1 t2) (< (car t1) (car t2))))
	    (setq stt (car item) nd (cdr item))
	    (entmake (list '(0 . "TEXT")(cons 10 pt)(cons 40 294)(cons 1(rtos stt 2 0))))
	    (entmake (list '(0 . "TEXT")(cons 10(polar pt 0 1000))(cons 40 294)(cons 1 nd)))
	    (setq pt (polar pt(/ pi 2) -600)))
	  (command "undo" "e") ))))
  (princ))

Bài viết đã được chỉnh sửa nội dung bởi gia_bach: 06 November 2013 - 02:19 PM

  • 0

#15 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 06 November 2013 - 02:04 PM

Đây là Lisp sắp xếp Text theo yêu cầu.

Do có 2 "Text đặt không đúng qui luật" nên k/quả bỏ qua.

(defun c:sxt(/ ent i lst nd oo p1 p2 pt ss ss_circle ss_txt stt)
  ;; By : Gia_Bach 2013 ;;
  (if (setq ss (ssget  (list(cons 0 "TEXT")(cons 1 "*d*@*")) ) )
    (progn
      (setq i 0)
      (repeat (sslength ss)
	(setq ent (entget (ssname ss i))
	      p1 (dxf 10 ent) nd (dxf 1 ent))
	(if (= (dxf 50 ent) 0) (setq p2 (polar p1 pi 426)) (setq p2 (polar p1 (* 3(/ pi 2)) 426)) )
	(if (setq ss_circle (ssget "c" p1 p2 (list(cons 0 "CIRCLE"))))
	  (progn
	    (setq oo (dxf 10 (entget(ssname ss_circle 0)))
		  p1 (polar oo (/ pi -4) 150) p2 (polar oo (* 3(/ pi 4)) 150) )
	    (if (setq ss_txt (ssget "c" p1 p2 (list(cons 0  "TEXT") ) ) )
	      (progn
		(setq stt (dxf 1 (entget(ssname ss_txt 0))))
		(if (setq stt (distof stt))
		  (setq lst (cons (cons stt nd) lst)))))))
	(setq i (1+ i)) )
      (if (> (length lst)0)
	(progn
	  (setq pt (getpoint "Diem dat text:"))
	  (command "undo" "be")
	  (foreach item  (vl-sort lst '(lambda (t1 t2) (< (car t1) (car t2))))
	    (setq stt (car item) nd (cdr item))
	    (entmake (list '(0 . "TEXT")(cons 10 pt)(cons 40 294)(cons 1(rtos stt 2 0))))
	    (entmake (list '(0 . "TEXT")(cons 10(polar pt 0 1000))(cons 40 294)(cons 1 nd)))
	    (setq pt (polar pt(/ pi 2) -600)))
	  (command "undo" "e") ))))
  (princ))

Đầu tiên mình cảm ơn gia bạch tận tình giúp mình cái lisp này. Gia bạch cho mình hỏi sau khi dowload về mình nhập lệnh chọn đối tượng xong nó tự kết thúc lệnh luôn nó không cho ra kết quả sắp xếp text


  • 0

#16 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 06 November 2013 - 02:21 PM

Sorry. Tôi quên hàm DXF.

Đã bổ sung trong bài trên. bạn vui lòng download lại.


  • 0

#17 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 06 November 2013 - 02:45 PM

Sorry. Tôi quên hàm DXF.

Đã bổ sung trong bài trên. bạn vui lòng download lại.

Cảm ơn gia bạch lisp đã dùng được rồi . Mình mạo muội xin anh gia bạch 1 cái là ở bài 5 bạn quansa đã có ý tưởng làm gần được nhưng tới phần lọc text có chữ d thì bạn ấy chưa nghỉ ra . Anh gia bạch đồng ý mình sẽ nhờ bạn quansa kết hợp với cái lisp của anh để có thể sắp như dữ liệu ban đầu mình gởi . Rất mong sự chấp thuận của anh gia bạch


  • 0

#18 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 06 November 2013 - 03:02 PM

OK. Lisp là mã nguồn mở, bất kỳ ai cũng có thể sửa đổi theo nhu cầu của mình.

 

PS: nickname của tôi đọc là Gia_Bách.


  • 0

#19 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 06 November 2013 - 03:08 PM

OK. Lisp là mã nguồn mở, bất kỳ ai cũng có thể sửa đổi theo nhu cầu của mình.

 

PS: nickname của tôi đọc là Gia_Bách.

Mình cảm ơn anh , dù sao đó cũng là bản quyền trí tuệ của anh gia bạch nên muốn kết hợp hay chỉnh sửa gì thì củng phải hỏi ý kiến người lập ra nó . Cảm ơn anh gia bạch đồng ý


  • 0

#20 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 06 November 2013 - 03:17 PM

mình cũng nghí ngoáy cái này rồi, cái don't like đầu tiên bài chủ pic là do mình tich, định bụng tích xong thì gửi lisp nên, nhưng lại mắc vướng lại phần lọc text

ý của chủ pic chắc là thế này.

yêu cầu 1 Lisp thực hiên tuần tự như sau:

  1. Gõ lệnh, quét chọn Window đối tượng, Lisp sẽ chọn các text có có dạng "*d* *" (chứa chữ "d" và ký tự dấu cách " ")
  2. Chọn điểm chèn Text(và khoảng cách các Text).
  3. Lisp phun nội dung Text quét được lên màn hình, từ trên xuống dưới, thứ tự là thứ tuwj  được đánh số bởi con số trong vòng tròn "bên cạnh" Text quét được ở bước 1.
  4. Kết thúc lệnh.

Hi vọng đúng ý chủ pic, và mọi người giúp tiếp, mình thì bị kẹt phần lấy thứ tự rồi. Hì hì

Chào bạn quansa !

Cảm ơn bạn đã quan tâm lisp theo yêu cầu của mình . Theo như bạn nói là phần lọc d đã ngăn cản bạn hoàn thành lisp . Ở bài 16 của anh gia bạch đã làm được chuyện đó nhưng nó chưa đáp ứng được file yêu cầu mà mình gởi ban đầu đề tài . Rất mong bạn kết hợp lisp củ của bạn với lisp anh gia bạch để có được lisp mới theo mong muốn được không bạn . Cảm ơn bạn quan tâm và giúp đỡ , mình nói cái nào không phải mong bạn bỏ qua cho mình


  • 0