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

Viết lisp theo yêu cầu [phần 2]

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

http://www.mediafire.com/?memevwlj33z

đây là file của e, trong đó nói rõ yêu càu, mong a giúp cho, thông cảm vì lúc e post bài chức năng upload của diễn đàn bị lỗi,

Chúc cả nha cuối tuần vui vẻ

bạn chạy thử code này nhé: (defun c:txt( / text_loc fn sset f i txt p x y z)

(defun text_loc (entn / p entg text jum72 jum73 i loc ketqua)

(setq p '())

(setq entg (entget entn))

(setq text (cdr (assoc 0 entg)))

(if (= text "TEXT")

(progn

(setq jum72 (cdr (assoc 72 entg)))

(setq jum73 (cdr (assoc 73 entg)))

(cond

((= jum72 1) (setq i 11))

((= jum72 2) (setq i 11))

((= jum72 4) (setq i 11))

((= jum72 3) (setq i 10))

((= jum72 5) (setq i 10))

((= jum72 0)

(progn

(if (= jum73 0)

(setq i 10)

(setq i 11)

)

)

)

)

(setq loc (cdr (assoc i entg)))

(setq p loc)

)

)

(setq ketqua p)

)

;end sub text_loc

(if (not path) (setq path "d:\\"))

(setq fn(getfiled "Ghi vao file toa do xyz" path "xyz" 1))

(if fn(progn

(setq path (vl-filename-directory fn))

(setq sset(ssget '((0 . "TEXT"))))

(if sset

(progn

(setq f(open fn "w"))

(setq i 0 n (sslength sset))

(repeat n

(setq entn(ssname sset i)

entg(entget entn)

txt (cdr (assoc 1 entg))

p(text_loc entn)

x (rtos (car p) 2 3)

y (rtos (cadr p) 2 3)

z (rtos (caddr p) 2 3)

txt (strcat txt "\t" y "\t" x "\t" z)

i(+ i 1)

)

(write-line txt f)

)

(close f)

(alert "chuong trinh da chay xong")

)

(alert "khong thuc hien duoc")

)

)

)

)

(defun c:xyz( / fn f )

(if (not path) (setq path "d:\\"))

(setq fn(getfiled "Chon vao file xyz" path "xyz" 2))

(if fn

(progn

(setq f(open fn "r")

mb '())

(while (setq dat(read-line f))

(setq dat(vl-string->list dat)

line ""

ma '())

(foreach pp dat

(if (and (/= pp 9) (/= pp 32))

(setq line (strcat line (vl-list->string (list pp))))

(setq ma(append ma (list line)) line "")

)

)

(setq ma(append ma(list line)))

(setq mb(append mb(list ma)))

)

(close f)

(if mb

(foreach pp mb

(setq txt (nth 0 pp)

p(list(atof(nth 2 pp)) (atof(nth 1 pp)) (atof (nth 3 pp))))

(command "text" p 1.5 0 txt)

)

)

)

)

)

  • Vote tăng 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

Mình muốn xin 1 số lisp như sau :

1. vẽ hình chữ nhật bằng 3 điểm hoặc 2 đường thằng.Trong SpeedCAD có lisp này.

2. vẽ 1 hcn, xoá tất cả các đối tượng trong hình chũ nhật đó ( kết hợp giửa extrim và del ). Nếu trim text, block càng tốt

3. strect hatch mà nó ban đầu là pickpoint và không có chọn asscessories

trong 1 số trườngh hợp có ai biết cách đổi lệnh trong speecad không?

 

cái này ngoài lề. Có ai có tài liệu "hướng dẩn phát triển autolisp cho người ngu" không? tên tiếng anh của nó là : "develop knowledge autolisp fo foolish"

những tài liệu việt nam, người soạn giỏi quá nên cũng tưởng ai cũng giỏi bằng mình, viết cho tự mình hiểu rồi tự mình sướng hết rồi.

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ái này ngoài lề. Có ai có tài liệu "hướng dẩn phát triển autolisp cho người ngu" không? tên tiếng anh của nó là : "develop knowledge autolisp fo foolish"

những tài liệu việt nam, người soạn giỏi quá nên cũng tưởng ai cũng giỏi bằng mình, viết cho tự mình hiểu rồi tự mình sướng hết rồi.

Bạn viết như vậy mà bác Nguyễn Hoành và các bác trên diễn đàn nghe được chắc buồn lắm. Cất công viết những đoạn Code thật đơn giản cho những người bắt đầu học cho dễ hiểu nhất. Cuối cùng, bạn lại phát ra những lời như vậy, thật là buồn quá.

Hoc AutoLisp - Danh cho nguoi bat dau

 

Không biết bạn đã nghe câu này chưa : "Dốt đến đâu học lâu cũng biết".

Mình từ khi tham gia diễn đàn, có thể nói là người dốt, vì mình chưa biết gì cả. Nhưng mình luôn tâm niệm là "Dốt đến đâu học lâu cũng biết" cho nên phải học thôi, chẳng còn cách nào cả.

Vì "Có học mới hay, có cày mới biết. Không học, không chịu cày thì.... dốt vẫn hoàn dốt, ngu vẫn là ngu.

 

Vì đây là topic này là Viết Lisp theo yêu cầu nên mình không muốn thảo luận vấn đề này của bạn ở đây. Nếu bạn muốn thảo luận thì xin mời bạn đến quán Thảo luận vỉa hè.

 

Chúc bạn thành công.

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
bạn chạy thử code này nhé: (defun c:txt( / text_loc fn sset f i txt p x y z)

(defun text_loc (entn / p entg text jum72 jum73 i loc ketqua)

(setq p '())

(setq entg (entget entn))

(setq text (cdr (assoc 0 entg)))

(if (= text "TEXT")

(progn

(setq jum72 (cdr (assoc 72 entg)))

(setq jum73 (cdr (assoc 73 entg)))

(cond

((= jum72 1) (setq i 11))

((= jum72 2) (setq i 11))

((= jum72 4) (setq i 11))

((= jum72 3) (setq i 10))

((= jum72 5) (setq i 10))

((= jum72 0)

(progn

(if (= jum73 0)

(setq i 10)

(setq i 11)

)

)

)

)

(setq loc (cdr (assoc i entg)))

(setq p loc)

)

)

(setq ketqua p)

)

;end sub text_loc

(if (not path) (setq path "d:\\"))

(setq fn(getfiled "Ghi vao file toa do xyz" path "xyz" 1))

(if fn(progn

(setq path (vl-filename-directory fn))

(setq sset(ssget '((0 . "TEXT"))))

(if sset

(progn

(setq f(open fn "w"))

(setq i 0 n (sslength sset))

(repeat n

(setq entn(ssname sset i)

entg(entget entn)

txt (cdr (assoc 1 entg))

p(text_loc entn)

x (rtos (car p) 2 3)

y (rtos (cadr p) 2 3)

z (rtos (caddr p) 2 3)

txt (strcat txt "\t" y "\t" x "\t" z)

i(+ i 1)

)

(write-line txt f)

)

(close f)

(alert "chuong trinh da chay xong")

)

(alert "khong thuc hien duoc")

)

)

)

)

(defun c:xyz( / fn f )

(if (not path) (setq path "d:\\"))

(setq fn(getfiled "Chon vao file xyz" path "xyz" 2))

(if fn

(progn

(setq f(open fn "r")

mb '())

(while (setq dat(read-line f))

(setq dat(vl-string->list dat)

line ""

ma '())

(foreach pp dat

(if (and (/= pp 9) (/= pp 32))

(setq line (strcat line (vl-list->string (list pp))))

(setq ma(append ma (list line)) line "")

)

)

(setq ma(append ma(list line)))

(setq mb(append mb(list ma)))

)

(close f)

(if mb

(foreach pp mb

(setq txt (nth 0 pp)

p(list(atof(nth 2 pp)) (atof(nth 1 pp)) (atof (nth 3 pp))))

(command "text" p 1.5 0 txt)

)

)

)

)

)

Rất đúng ý của em, cám ơn bác ! :undecided:

Nhưng e mún hỏi 1 tý, sao không save file duôi txt mà lại save đuôi xyz, save đuôi txt dùng excel chỉnh sửa có phải dơn giản hơn ko?

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
Rất đúng ý của em, cám ơn bác ! :undecided:

Nhưng e mún hỏi 1 tý, sao không save file duôi txt mà lại save đuôi xyz, save đuôi txt dùng excel chỉnh sửa có phải dơn giản hơn ko?

bạn thay code (setq fn(getfiled "Ghi vao file toa do xyz" path "xyz" 1))

bằng code này nhé (setq fn(getfiled "Ghi vao file toa do xyz" path "txt,xyz" 1))

và dòng này nữa nhé: (setq fn(getfiled "Chon vao file xyz" path "xyz" 2))

bằng dòng này: (setq fn(getfiled "Chon vao file xyz" path "txt,xyz" 2))

  • Vote tăng 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
Em thường làm việc với bản vẽ quy hoạch trong đó có cos nền hiện trạng, việc lọc cos nền này khá khó khăn, e thường phải cho vào Excel rồi dùng bộ lọc Filter, nhưng điều đó chỉ áp dụng đc khi e dùng Nova, bởi vì trong Nova có công cụ xuất text vào và ra bản vẽ, có lisp nào thực hiện điều đó thay Nova ko? đưa text trên bản vẽ ra file TXT với 3 cột ( cột toạ đọ X, cột toạ đọ Y và cột cao độ Z) sau đó dùng lisp xuất ngwợc vào cad sau khi đã xử lí file TXT trên bằng Excel. nhưng khi xuất vào cad thì chỉ là text bình thường theo đúng toạ độ X, Y Z thôi, không cần phải điền ra vị trí, số thứ tự như nova đâu? mong mọi ng giúp đỡ !

Tại sao bạn phải nhờ đến Excel xử lí Text bị lỗi ?

Bạn chạy thử LISP lọc các TEXT không phải là kiểu số sang lớp Txt_Err

(defun C:test(/ ent i ss)
 (vl-load-com)
 (if (setq i -1 ss (ssget  '((0 . "TEXT"))))
   (progn
     (or (tblsearch "layer" "Txt_Err")
  (command "-layer" "n" "Txt_Err" ""))
     (while (setq ent (ssname ss (setq i (1+ i))))
(setq ent (vlax-Ename->Vla-Object ent))
(if (not(member (type (distof (vla-get-TextString ent))) '(REAL INT) ) )
  (vla-put-Layer ent "Txt_Err"))  )   )))

  • Vote tăng 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

các bác ơi, em có 1 tập hợp điểm bây giờ em nối các điểm đó lại bằng tay để tạo thành các tam giác, như vậy thì lâu quá vậy nên em xin các bác 1 lisp để nối các điểm đó lại thành lưới tam giác nhé... cảm ơn các bác trước.

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

Xin chào toàn thể anh em trên diễn đàn!

Mình có 1 lisp rải Taluy (upload ở dưới), tuy nhiên mình muốn có 1 số thay đổi để phù hợp với công việc (file cad đính kèm)

Rất mong anh em trên diễn đàn bớt chút thời gian xem xét và giải quyết giúp mình!

Xin chân thành cảm ơn!

 

http://www.cadviet.com/upfiles/2/mtaluy1.lsp

 

http://www.cadviet.com/upfiles/2/taluy.dwg

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
Xin chào toàn thể anh em trên diễn đàn!

Mình có 1 lisp rải Taluy (upload ở dưới), tuy nhiên mình muốn có 1 số thay đổi để phù hợp với công việc (file cad đính kèm)

Rất mong anh em trên diễn đàn bớt chút thời gian xem xét và giải quyết giúp mình!

Xin chân thành cảm ơn!

Bạn chạy code này thử nhé :

(defun c:mtl(/ doc Util MS c1 c2 kc2tl L1 oldos i j p pr 
       ang p2 dtxl dgiao pc2)
 (vl-load-com)
 (setq doc (vla-get-activeDocument (vlax-get-acad-object))
Util (vla-get-utility doc)
MS (vla-get-ModelSpace doc))
 (vla-StartUndoMark doc)
  (setq c1 (car(entsel "\n Chon duong bien thu nhat :")))
 (setq c2 (vlax-ename->vla-object
     (car(entsel "\n Chon duong bien thu hai :"))
   )
 )
 (if (not *kc2tl*) (setq *kc2tl* 2))
 (setq kc2tl (getdist (strcat "\n Khoang cach giua taluy ngan va taluy dai 			       (rtos *kc2tl* 2 2) " > : "
		)
      )
 )
 (if (not kc2tl) (setq kc2tl *kc2tl*) (setq *kc2tl* kc2tl))
 (setq L1 (vlax-curve-getDistAtParam c1
     (setq pre (vlax-curve-getEndParam c1))
   )
 )
 (setq oldos (getvar "osmode"))
(setvar "osmode" 0)
 (setq i 0 j 0)
 (Repeat (1+ (fix (/ L1 kc2tl)))
   (setq p (vlax-curve-getPointAtDist c1 i))
   (setq pr (vlax-curve-getParamatpoint c1 p))
   (setq ang (- (angle '(0 0 0)
	     (vlax-curve-getFirstDeriv c1 pr)
          )
          (/ pi 2)
      )
   )
   (setq p2 (vlax-invoke Util 'polarpoint p ang 1))
   (setq dtxl (vlax-invoke MS 'addxline p p2))
   (setq dgiao (vlax-invoke c2 'IntersectWith dtxl acExtendBoth))
   (if (= (rem j 2) 0)
(setq pc2 (vlax-invoke
	     Util 'polarpoint p (angle p dgiao)
	     		(/ (distance p dgiao) 2)
	  )
)
       (setq pc2 (vlax-invoke
	     Util 'polarpoint p (angle p dgiao)
	     		(distance p dgiao)
	  )
)
   )
(vlax-invoke MS 'addline p pc2)
   	(vla-erase dtxl)
   (setq i (+ i kc2tl))
   (setq j (1+ j))
   )
 (setvar "osmode" oldos)
 (vla-EndUndoMark doc)
 (princ)
 )

 

các bác ơi, em có 1 tập hợp điểm bây giờ em nối các điểm đó lại bằng tay để tạo thành các tam giác, như vậy thì lâu quá vậy nên em xin các bác 1 lisp để nối các điểm đó lại thành lưới tam giác nhé... cảm ơn các bác trước.

@Nguyễn hữu vượng : Bạn viết bài như vậy thì Tue_NV chẳng hiểu ý bạn gì cả. Muốn giúp cho bạn mà nhưng chẳng được. Bạn vui lòng mô tả cụ thể hơn, bằng file .dwg rồi upload lên diễn đàn. Bạn muốn nối các điểm đó thành lưới tam giác??? Các điểm nào ??? Nối như thế nào????

  • Vote tăng 2

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
@Nguyễn hữu vượng : Bạn viết bài như vậy thì Tue_NV chẳng hiểu ý bạn gì cả. Muốn giúp cho bạn mà nhưng chẳng được. Bạn vui lòng mô tả cụ thể hơn, bằng file .dwg rồi upload lên diễn đàn. Bạn muốn nối các điểm đó thành lưới tam giác??? Các điểm nào ??? Nối như thế nào????

http://www.cadviet.com/upfiles/2/luoi_tam_giac.dwg

bác Tue_NV ơi, em up lên rồi đó, rất mong sự giúp đỡ của bác và các anh em diễn đà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
http://www.cadviet.com/upfiles/2/luoi_tam_giac.dwg

bác Tue_NV ơi, em up lên rồi đó, rất mong sự giúp đỡ của bác và các anh em diễn đàn.

Chào bạn nguyễn hữu vượng,

Đề bài bạn ra sẽ có rất nhiều đáp àn, vậy bạn sẽ chọn cái nào và nguyên tắc chọn của bạn là gì????

Chỉ cần có 4 điểm tạo thành một đa giác lồi là bạn đã có hai đáp án rồi, vậy mà bạn có tới ty tỷ điểm như vậy thì ???????

Trong hai hình dưới đây bạn sẽ chọn hình nào và vì sao??? Nếu bạn có câu trả lời thì mới có hy vọng làm được lisp cho nó bạn ạ

minhhoa.jpg

 

Chúc bạn sớm có câu trả lời phù hợp.

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
Chào bạn nguyễn hữu vượng,

Đề bài bạn ra sẽ có rất nhiều đáp àn, vậy bạn sẽ chọn cái nào và nguyên tắc chọn của bạn là gì????

Chỉ cần có 4 điểm tạo thành một đa giác lồi là bạn đã có hai đáp án rồi, vậy mà bạn có tới ty tỷ điểm như vậy thì ???????

Trong hai hình dưới đây bạn sẽ chọn hình nào và vì sao??? Nếu bạn có câu trả lời thì mới có hy vọng làm được lisp cho nó bạn ạ

minhhoa.jpg

 

Chúc bạn sớm có câu trả lời phù hợp.

cảm ơn bác đã quan tâm đến câu hỏi của em, ý của em như thế này bác ạ, nếu có 4 điểm tạo thành tam giác lồi thì bác cứ chọn sao cho 2 tam giác có diện tích chênh lệch nhau là ít nhất:

ví dụ : http://www.cadviet.com/upfiles/2/luoi_tg.dwg

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

Rất cảm TUE_NV nhé. mình dùng lisp mtl đúng như ý mình rồi. Hôm trước đọc bài viết của TUE , mình thấy TUE bảo hồi đầu vào diễn đàn cũng ko biiết j về lisp thế mà giờ bạn giỏi thế, kô biiết mình có thể đc như thế ko nhỉ? Rất cảm ơn bạn nha, Chúc bạn và anh em trên diễn đàn khỏe và cv tốt 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

Bác TUE_NV a. có một vấn đề nữa ở lisp "mtl" mà cả lisp của em up lên và lisp của bác cũng chưa khắc phục đc, đó là khi đường biên 1 gãy khúc và đường biên 2 thẳng thì sẽ có 1 khoảng trống giữa các đường rải,và một số cắt chồng lên nhau nữa, bác xem có khắc phục đc ko, đc thì tuyệt quá, xin cảm ơn bác 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
cảm ơn bác đã quan tâm đến câu hỏi của em, ý của em như thế này bác ạ, nếu có 4 điểm tạo thành tam giác lồi thì bác cứ chọn sao cho 2 tam giác có diện tích chênh lệch nhau là ít nhất:

ví dụ : http://www.cadviet.com/upfiles/2/luoi_tg.dwg

Chào bạn nguyễn hữu vượng,

Bạn chưa trả lời đúng vấn đề rồi, ví dụ 4 điểm mà mình nêu ra chỉ là gợi ý để bạn suy nghĩ chứ chưa phải là cái kết quả bạn cần. Bởi vì trong tập hợp n điểm của bạn sẽ có tới n!/(4!*(n-4)! cách chọn 4 điểm đầu tiên. Hơn nữa có thể 4 điểm này có thể là một tứ giác lõm chứ chưa chắc gì đã lồi. Vì thế vấn đề của bạn là cần phải xác định rõ cách chọn 4 điểm này và sau đó là cách xác định các điểm để nối tiếp theo, nếu không bạn sẽ có rất nhiều đáp án mà chưa chắc đúng với ý của bạn được bạn ạ.

Trong trường hợp bạn cho phép có nhiều đáp án thì bạn cũng cần xác định diện tích tối thiểu hay tối đa của một ô lưới tam giác thì mới có thể làm được lisp bạn ạ.

Hãy suy nghĩ kỹ hơn về bài toán mà bạn đăt ra, đừng để đến khi mọi người viết xong lisp cho bạn thì bạn lại không dùng được vì không phù hợp với ý của bạn.

Chúc bạn gặt hái nhiều thành công.

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
Bác TUE_NV a. có một vấn đề nữa ở lisp "mtl" mà cả lisp của em up lên và lisp của bác cũng chưa khắc phục đc, đó là khi đường biên 1 gãy khúc và đường biên 2 thẳng thì sẽ có 1 khoảng trống giữa các đường rải,và một số cắt chồng lên nhau nữa, bác xem có khắc phục đc ko, đc thì tuyệt quá, xin cảm ơn bác nha

Chào bạn ngt266,

Bạn là người đặt yêu cầu, vậy bạn cần phải cho người viết lisp biết bạn muốn khắc phục điều đó như thế nào thì người viết lisp mới có thể giúp bạn được chứ. Tốt nhất là bạn hãy post một file bản vẽ thể hiện chỗ bị lỗi và cái kết quả mà bạn muốn, khi đó mọi người mới có thể khắc phục được bạn ạ. Trong công việc của mỗi người đều có những yêu cầu riêng và từ đó có các cách giải quyết khác nhau bạn ạ. Không phải tất cả mọi người đều có thể hiểu được đúng ý muốn của bạn nên bạn hãy cố gắng thể hiện rõ ràng, đầy đủ các yêu cầu của bạn bạn nhé. Tốt nhất nên dùng các bản vẽ để thể hiện yêu cầu của mình bạn ạ.

Chúc bạn vui.

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
Chào bạn nguyễn hữu vượng,

Bạn chưa trả lời đúng vấn đề rồi, ví dụ 4 điểm mà mình nêu ra chỉ là gợi ý để bạn suy nghĩ chứ chưa phải là cái kết quả bạn cần. Bởi vì trong tập hợp n điểm của bạn sẽ có tới n!/(4!*(n-4)! cách chọn 4 điểm đầu tiên. Hơn nữa có thể 4 điểm này có thể là một tứ giác lõm chứ chưa chắc gì đã lồi. Vì thế vấn đề của bạn là cần phải xác định rõ cách chọn 4 điểm này và sau đó là cách xác định các điểm để nối tiếp theo, nếu không bạn sẽ có rất nhiều đáp án mà chưa chắc đúng với ý của bạn được bạn ạ.

Trong trường hợp bạn cho phép có nhiều đáp án thì bạn cũng cần xác định diện tích tối thiểu hay tối đa của một ô lưới tam giác thì mới có thể làm được lisp bạn ạ.

Hãy suy nghĩ kỹ hơn về bài toán mà bạn đăt ra, đừng để đến khi mọi người viết xong lisp cho bạn thì bạn lại không dùng được vì không phù hợp với ý của bạn.

Chúc bạn gặt hái nhiều thành công.

bác ơi, ý của em là nếu 4 điểm gần nhau tạo thành 1 tứ giác mà ở trong tứ giác đó không có 1 điểm nào thì bác cứ chia đôi tứ giác đó thành 2 tam giác sao cho 2 phần tương đối bằng nhau ấy mà, giống như em bẻ miếng bánh đa làm đôi chỉ cần nhìn thấy gần bằng nhau là được bác ạ. mà bác cứ nối tất cả các điểm lại với nhau để tạo thành một lưới tam giác giống như cái giàn mướp nhà em ý mà, nếu bác nối tạo thành các tam giác có diện tích không đều nhau thì cũng giống như cái giàn mướp đan không đều nên giàn mướp rất yếu, vậy nhé bác hểu ý em chứ. nhờ bác và các anh em diễn đàn giúp em nhé

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
bác ơi, ý của em là nếu 4 điểm gần nhau tạo thành 1 tứ giác mà ở trong tứ giác đó không có 1 điểm nào thì bác cứ chia đôi tứ giác đó thành 2 tam giác sao cho 2 phần tương đối bằng nhau ấy mà, giống như em bẻ miếng bánh đa làm đôi chỉ cần nhìn thấy gần bằng nhau là được bác ạ. mà bác cứ nối tất cả các điểm lại với nhau để tạo thành một lưới tam giác giống như cái giàn mướp nhà em ý mà, nếu bác nối tạo thành các tam giác có diện tích không đều nhau thì cũng giống như cái giàn mướp đan không đều nên giàn mướp rất yếu, vậy nhé bác hểu ý em chứ. nhờ bác và các anh em diễn đàn giúp em nhé

Hình như bạn đang muốn làm mô hình số địa hình để vẽ đường đồng mức. Nếu đúng như vậy thì đây là đề tài hay và khó. Có thể một số phần mềm về bản đồ đã làm vđ này. Nếu bạn muốn làm thì kg đơn giản đâu.

Theo cách nghĩ thông thường thì với một tập hợp điểm ta sẽ có nhiều đáp án khi tạo lưới tam giác, theo mình nghĩ yêu cầu của bài toán này đặt ra là tổng chiều dài cạnh các tam giác càng nhỏ càng tốt và chúng kg cắt nhau.

Với một tập hợp tỷ tỷ điểm mà tạo thành một lưới tam giác với điểu kiện tổng các cạnh tam giác là nhỏ nhất và cạnh của chúng không cắt nhau xem ra rất khó. ?!?!?!

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
bác ơi, ý của em là nếu 4 điểm gần nhau tạo thành 1 tứ giác mà ở trong tứ giác đó không có 1 điểm nào thì bác cứ chia đôi tứ giác đó thành 2 tam giác sao cho 2 phần tương đối bằng nhau ấy mà, giống như em bẻ miếng bánh đa làm đôi chỉ cần nhìn thấy gần bằng nhau là được bác ạ. mà bác cứ nối tất cả các điểm lại với nhau để tạo thành một lưới tam giác giống như cái giàn mướp nhà em ý mà, nếu bác nối tạo thành các tam giác có diện tích không đều nhau thì cũng giống như cái giàn mướp đan không đều nên giàn mướp rất yếu, vậy nhé bác hểu ý em chứ. nhờ bác và các anh em diễn đàn giúp em nhé

Chào Vương, bạn là dân trắc đạc địa hình, vì vậy bạn phải làm mô hình lưới tam giác phải không? Cái món này ai đã sử dụng Topo bên Hài Hòa thì cũng đã biết làm. Tuy nhiên để cho khỏi tốn tiền mua, bạn sử dụng modul này xem:

http://www.cadviet.com/upfiles/2/dtm.zip

Lệnh là dtm.

Cái này bạn nên qua topic "Tổng hợp các file lisp thường dùng" mà THANK bác tnmtpc 10 cái nhé

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

Em có biết cách sửa text trong khung tên trong File bản vẽ có nhiều bản vẽ khác nhau. Giả dụ muốn sửa 12-2009 thành 2-2010 , em gõ lệnh FIND sữa ở một khung tên thì tất cả các khung tên khác đồng loạt đổi theo.

Em muốn mở một lúc nhiều file bản vẽ, để chỉ sửa một bản mà tất các các bản vẽ khác được mở cùng một lần. Lisp có làm được không, em nhờ các anh giúp đỡ.

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

Mình vẽ một rectangular bằng cách chon lệnh rec, sau đó chọn 2 điểm p1, p2. Vậy các bác trên diễn đàn giúp mình lấy toạ độ của hai điểm này với!

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
Mình vẽ một rectangular bằng cách chon lệnh rec, sau đó chọn 2 điểm p1, p2. Vậy các bác trên diễn đàn giúp mình lấy toạ độ của hai điểm này với!

Anh dùng lệnh ID rối pick vào 2 điểm p1 và p2 xem sao.

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
Em có biết cách sửa text trong khung tên trong File bản vẽ có nhiều bản vẽ khác nhau. Giả dụ muốn sửa 12-2009 thành 2-2010 , em gõ lệnh FIND sữa ở một khung tên thì tất cả các khung tên khác đồng loạt đổi theo.

Em muốn mở một lúc nhiều file bản vẽ, để chỉ sửa một bản mà tất các các bản vẽ khác được mở cùng một lần. Lisp có làm được không, em nhờ các anh giúp đỡ.

Tham khảo tại: http://www.cadviet.com/forum/index.php?showtopic=14946

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

Help me!!!

Mình có một vấn đề về lisp mong các bạn trên diễn đàn giúp đỡ, các bạn viết giùm mình một lisp chọn đối tượng mới được tạo ra sau lệnh copy và paste.

Mình mô tả yêu cầu này như trong bản vẽ đính kèm.

 

http://www.cadviet.com/upfiles/2/drawing1_22.dwg

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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×