Đến nội dung


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

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


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#361 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 08 November 2009 - 09:09 PM

Nhờ các Bác viết dùm Autolisp của bài tôi viết ở trang 18 của topic này về "Mặt cong cắt Solid". Cảm ơn rất nhiều.

Xin lỗi bác tuannguyen314169,
Quả thật cái yêu cầu của bạn là khá hóc đối với mình. Việc xác định cái mặt cong của bác cũng đã là một vấn đề khá hóc rồi, sau đó lại phải xoay cái mặt đó rồi tìm giao diện của nó với thân tàu, tứ đó mới xác định được các thông số mà bác nêu. Không biết các bác khác có giải pháp gì hay hơn không chứ với mình thì bó giò rồi bác ạ. Mong bác thông cảm cho cái sự dốt của mình.
Chúc bác thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#362 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 09 November 2009 - 10:57 PM

Chào bạn PhamThanhBinh đây là mẫu block mà mình tạo ra: http://www.cadviet.c...les/2/block.dwg
Rất mong bạn sẽ giúp được mình
  • 0

#363 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

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

Đã gửi 10 November 2009 - 09:51 AM

Xin lỗi bác tuannguyen314169,
Quả thật cái yêu cầu của bạn là khá hóc đối với mình. Việc xác định cái mặt cong của bác cũng đã là một vấn đề khá hóc rồi, sau đó lại phải xoay cái mặt đó rồi tìm giao diện của nó với thân tàu, tứ đó mới xác định được các thông số mà bác nêu. Không biết các bác khác có giải pháp gì hay hơn không chứ với mình thì bó giò rồi bác ạ. Mong bác thông cảm cho cái sự dốt của mình.
Chúc bác thành công.

Cảm ơn bác đã quan tâm, mặt cong mình sử dụng đường line và spline với các toạ độ cho trước, sau đó sử dụng lệnh sweep để tạo mặt cong. Đây là việc mình thường xuyên gặp phải mà phải làm thủ công rất vất vả. Nên mình mới post lên nhờ các bác giúp đỡ. Mình đã post rất nhiều nhưng chưa ai có ý kiến gì?. Thực ra bác hơn mình về khoản lisp rất nhiều, còn mình thì chẳng biết gì, mình đang cố gắng đây. Mình cảm ơn bác rất nhiều.
  • 0

#364 baodenhp

baodenhp

    biết vẽ arc

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

Đã gửi 10 November 2009 - 10:31 AM

Các bạn cho hỏi, có cách nào chèn dãy block động (bằng lệnh me, div..) và các giá trị của block đó được nhập từ 1 file định dạng như kiểu text (txt, csv...). Ai biết chỉ dùm với, thanks nhiều!!!
  • 0

#365 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 10 November 2009 - 02:19 PM

Chào bạn PhamThanhBinh đây là mẫu block mà mình tạo ra: http://www.cadviet.c...les/2/block.dwg
Rất mong bạn sẽ giúp được mình

Chào bạn dtlongkts,
Cái bản vẽ bạn gửi có hai đối tượng chứa text, một là đối tượng loại TOLERANCE, hai là đối tượng block INSERT.
1/- Với đối tượng là loại TOLERANCE bạn chỉ cần thay đổi các hàm lấy giá trị text trong lisp trước mình gửi bạn là : tgoc (cdr(assoc 2 dtlist)) bằng hàm: tgoc (cdr(assoc 1 dtlist)) và hàm: dlist (subst (cons 2 tcd) (assoc 2 dlist) dlist) bằng hàm: dlist (subst (cons 1 tcd) (assoc 1 dlist) dlist) là ok bạn ạ.
2/- Với đối tượng là block, bạn hãy xem mã DXF của nó nhé:
((-1 . ) (0 . "INSERT") (330 . )
(5 . "50") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "IDEA - Netmanh")
(100 . "AcDbBlockReference") (2 . "D1") (10 180.89 445.796 0.0) (41 . 1.0) (42
. 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0
0.0 1.0))
Như vậy cái block này đâu có thuộc tính kèm theo đâu, cụ thể là nó không có mã DXF là 66. Do vậy nó không phải là block chứa thuộc tính bạn ạ. Vì thế việc thay đổi các thuộc tính của nó mình không thể làm được.
Để có thể làm được điều này bạn phải tạo ra các thuộc tính của block mà trong đó có một thuộc tính là nội dung của cái text bạn muốn thay đổi bạn nhé.
Khi đó mới có thể sử dụng cái thuộc tính đó để làm lisp cho nó thay đổi giá trị khi bạn copy được.
Bạn hãy thiết lập lại cái block này đi nhé.
Chúc bạn thành công.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#366 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 11 November 2009 - 05:16 PM

Chào bạn dtlongkts,
Cái bản vẽ bạn gửi có hai đối tượng chứa text, một là đối tượng loại TOLERANCE, hai là đối tượng block INSERT.
1/- Với đối tượng là loại TOLERANCE bạn chỉ cần thay đổi các hàm lấy giá trị text trong lisp trước mình gửi bạn là : tgoc (cdr(assoc 2 dtlist)) bằng hàm: tgoc (cdr(assoc 1 dtlist)) và hàm: dlist (subst (cons 2 tcd) (assoc 2 dlist) dlist) bằng hàm: dlist (subst (cons 1 tcd) (assoc 1 dlist) dlist) là ok bạn ạ.
2/- Với đối tượng là block, bạn hãy xem mã DXF của nó nhé:
((-1 . ) (0 . "INSERT") (330 . )
(5 . "50") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "IDEA - Netmanh")
(100 . "AcDbBlockReference") (2 . "D1") (10 180.89 445.796 0.0) (41 . 1.0) (42
. 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0
0.0 1.0))
Như vậy cái block này đâu có thuộc tính kèm theo đâu, cụ thể là nó không có mã DXF là 66. Do vậy nó không phải là block chứa thuộc tính bạn ạ. Vì thế việc thay đổi các thuộc tính của nó mình không thể làm được.
Để có thể làm được điều này bạn phải tạo ra các thuộc tính của block mà trong đó có một thuộc tính là nội dung của cái text bạn muốn thay đổi bạn nhé.
Khi đó mới có thể sử dụng cái thuộc tính đó để làm lisp cho nó thay đổi giá trị khi bạn copy được.
Bạn hãy thiết lập lại cái block này đi nhé.
Chúc bạn thành công.


Chào bạn PhamThanhBinh mình còn mắc mỗi đối tượng loại TOLERANCE thôi. Mình đã thực hiện lệnh ctwi trong lisp sau khi đã chỉnh sửa theo ý bạn. Mình nhập giá trị tăng giảm là 1 thì các kết quả ra như như hình vẽ mình gửi dưới đây, mình muốn tăng giảm giá trị lên 1 đơn vị. Mình gửi cả bản cad và lisp. Lần trước mình gửi bài ko đọc kỹ mong các bạn thông cảm
http://www.cadviet.c...files/2/1_4.rar
Cảm ơn bạn Bình nhiều nhé
  • 0

#367 Mr Cuong

Mr Cuong

    biết zoom

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

Đã gửi 12 November 2009 - 12:07 AM

[quote name='Tue_NV' date='Nov 4 2009, 5:42' post='78291']
Các point mà bạn đề cập đến phải chăng là các đỉnh Vertex của PLINE
Bạn có thể xem ở đây : Bài viết số 31 đến bài viết số 39
Bạn ơi cái nay cung rat hay nhưng cung không phải la cai theo y mình. lít ban nói nó chỉ chia đường poline thanh những đoạn thẳng bàng nhau thôi hơn nữa mỗi làn thực hiện lệnh chỉ được 1 đường poline thôi. Cái mình cần là 1 list chia đường poline thành nhũng đoạn thẳng mà chiều dài của mỗi đoạn do mình cung cấp cơ và hơn nữa list phải thực hiện được nhiều đối tượng trong 1 lệnh cơ. Rất mong các anh các bạn giúp đỡ. Mình gặp vấn đè này phát ốm phải nằm viện mấy ngày rùi giờ mới đớ dó mong mọi người chỉ giùm mình mới.
  • 0

#368 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 November 2009 - 02:32 PM

Chào bạn PhamThanhBinh mình còn mắc mỗi đối tượng loại TOLERANCE thôi. Mình đã thực hiện lệnh ctwi trong lisp sau khi đã chỉnh sửa theo ý bạn. Mình nhập giá trị tăng giảm là 1 thì các kết quả ra như như hình vẽ mình gửi dưới đây, mình muốn tăng giảm giá trị lên 1 đơn vị. Mình gửi cả bản cad và lisp. Lần trước mình gửi bài ko đọc kỹ mong các bạn thông cảm
http://www.cadviet.c...files/2/1_4.rar
Cảm ơn bạn Bình nhiều nhé

Chào bạn dlongkts,
Rất tiếc là lisp chạy không đúng ý bạn. Nhưng rất mong bạn hãy xem kỹ lại những điều mình thắc mắc ở đây nhé:
1/- trên bản vẽ bạn gửi mình lần trước, các mã DXF của đối tượng text loại TOLERANCE là như sau:
((-1 . ) (0 . "TOLERANCE") (330 . name: 7ef7ec10>) (5 . "4C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"IDEA - Kyhieu") (100 . "AcDbFcf") (3 . "IDEA") (10 170.947 447.88 0.0) (1 .
"62+") (210 0.0 0.0 1.0) (11 1.0 0.0 0.0))
Trong khi đối tượng text loại TOLERANCE của bạn trong bản vẽ lần này lại là:
((-1 . ) (0 . "TOLERANCE") (330 . 7ef4fc10>) (5 . "48") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "IDEA
- Kyhieu") (48 . 0.02) (100 . "AcDbFcf") (3 . "IDEA") (10 584.771 441.03 0.0)
(1 . "%%v145-%%v%%v%%v%%v") (210 0.0 0.0 1.0) (11 1.0 0.0 0.0))

Hãy bỏ qua các thứ loằng ngoằng khác mà chỉ quan tâm tới cái mã DXF là 1 bạn sẽ thấy ở trường hợp trước nó là (1 . "62+") còn ở trường hợp sau nó là (1 . %%v145-%%v%%v%%v%%v")
Điều này có thể do bạn đã thiết lập các text này với các font chữ khác nhau trong quá trình vẽ mà lisp thì nó không phân biệt được sự khác nhau do người sử dụng tạo ra này. Do đó khi mình lấy đoạn text này ra bằng đoạn mã (setq tgoc (cdr(assoc 1 dtlist))) thì ở trường hợp 1 nó sẽ trả về giá trị "62+"
còn trường hợp 2 nó trả về giá trị là "%%v145-%%v%%v%%v%%v". Và đây chính là cái lỗi làm cho kết quả của bạn thành ra như vầy.
2/- Thực tế mình hay bạn đều có thể sửa lại đoạn lisp tiếp theo để nó cho ra kết quả đúng nhưng mình chưa hiểu rõ vì sao bạn lại phải sử dụng hai loại text của cùng một loại đối tượng TOLERANCE như vậy, và bạn có còn sử dụng các font text nào khác nữa cho loại đối tượng TOLERANCE này không??
Nếu có thì nên chăng bạn hãy quy nó về một loại font cho đơn giản việc tạo lisp chỉnh sửa, bằng không bạn hãy gửi tất cả các đối tượng đó lên để mình tìm cách sửa lisp một lần cho được.
Thực ra cái lisp mà bạn đã sửa đó nếu chạy với trường hợp mẫu như bạn gửi ban đầu là sẽ OK ngay, chả có gì sai đâu vì mình đã chạy thử rồi, tiếc là bạn đã thử nó với trường hợp 2 nên mới bị lỗi thôi. Để sửa cái lỗi này thì bạn phải sửa lại cái hàm (substr ......) và hàm (strcat .......) để cắt và tạo chuỗi mới từ chuỗi cũ mà thôi.
Vấn đề là nếu có nhiều loại font khác nhau thì cái mã DXF của chúng cũng sẽ khác nhau và bạn sẽ khó kiểm soát nên theo mình bạn nên quy nó về một kiểu font thôi và khi đó chỉ cần sửa lisp một lần là OK.
3/- Với trường hợp thứ hai bạn lưu ý như sau khi sửa lisp:
- các chuỗi "%%v" này có cố định hay không??? Hay là nó thay đổi tùy theo ý người dùng???
- Nếu thay đổi thì quy luật thay đổi thế nào????
Bạn trả lời được các câu hỏi này mình sẽ sửa lại code lisp cho trường hợp này để nó theo đúng ý bạn bạn nhé.
Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#369 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 November 2009 - 03:02 PM

Bạn có thể xem ở đây : Bài viết số 31 đến bài viết số 39
Bạn ơi cái nay cung rat hay nhưng cung không phải la cai theo y mình. lít ban nói nó chỉ chia đường poline thanh những đoạn thẳng bàng nhau thôi hơn nữa mỗi làn thực hiện lệnh chỉ được 1 đường poline thôi. Cái mình cần là 1 list chia đường poline thành nhũng đoạn thẳng mà chiều dài của mỗi đoạn do mình cung cấp cơ và hơn nữa list phải thực hiện được nhiều đối tượng trong 1 lệnh cơ. Rất mong các anh các bạn giúp đỡ. Mình gặp vấn đè này phát ốm phải nằm viện mấy ngày rùi giờ mới đớ dó mong mọi người chỉ giùm mình mới.

Chào bạn Mr.Cuong,
Bạn đã khỏi ốm chưa nhỉ?? Chúc bạn mau lành để bạn có thể diễn đạt rõ hơn cái ý bạn muốn bạn nhé. Từ đó mọi người mới dễ dàng giúp bạn được.
Bạn hãy nói rõ việc bạn muốn chia nhiều đường polyline là chia cùng một lúc hay là chia lần lượt từng đường một theo ý của bạn????
Việc chia các đường polyline này thành từng đoạn mà mỗi đoạn có độ dài theo ý người dùng ở đây là bạn muốn nói về độ dài tuyệt đối hay tương đối???
Và các đường polyline này được chia theo cùng một kiểu chia hay mỗi đường lại có một cách chia khác nhau hở bạn???
Việc bạn càng trình bày rõ ràng, cụ thể cái ý bạn muốn sẽ càng giúp bạn nhanh chóng có được sự giúp đỡ cần thiết bạn ạ. Đừng ngại trình bày cụ thể vì không phải ai cũng có đủ trí thông minh để có thể hiểu đúng ý bạn được. Hãy cứ coi như bạn đang trình bày yêu cầu của mình với một chú em tập sự nào đó bạn nhé.
Một lần nữa mong bạn sớm bình phục và hoàn thành tâm nguyện của bạn. Hề hề hề...
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#370 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 12 November 2009 - 08:46 PM

Chào bạn dlongkts,
Rất tiếc là lisp chạy không đúng ý bạn. Nhưng rất mong bạn hãy xem kỹ lại những điều mình thắc mắc ở đây nhé:
1/- trên bản vẽ bạn gửi mình lần trước, các mã DXF của đối tượng text loại TOLERANCE là như sau:
((-1 . ) (0 . "TOLERANCE") (330 . name: 7ef7ec10>) (5 . "4C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"IDEA - Kyhieu") (100 . "AcDbFcf") (3 . "IDEA") (10 170.947 447.88 0.0) (1 .
"62+") (210 0.0 0.0 1.0) (11 1.0 0.0 0.0))
Trong khi đối tượng text loại TOLERANCE của bạn trong bản vẽ lần này lại là:
((-1 . ) (0 . "TOLERANCE") (330 . 7ef4fc10>) (5 . "48") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "IDEA
- Kyhieu") (48 . 0.02) (100 . "AcDbFcf") (3 . "IDEA") (10 584.771 441.03 0.0)
(1 . "%%v145-%%v%%v%%v%%v") (210 0.0 0.0 1.0) (11 1.0 0.0 0.0))

Hãy bỏ qua các thứ loằng ngoằng khác mà chỉ quan tâm tới cái mã DXF là 1 bạn sẽ thấy ở trường hợp trước nó là (1 . "62+") còn ở trường hợp sau nó là (1 . %%v145-%%v%%v%%v%%v")
Điều này có thể do bạn đã thiết lập các text này với các font chữ khác nhau trong quá trình vẽ mà lisp thì nó không phân biệt được sự khác nhau do người sử dụng tạo ra này. Do đó khi mình lấy đoạn text này ra bằng đoạn mã (setq tgoc (cdr(assoc 1 dtlist))) thì ở trường hợp 1 nó sẽ trả về giá trị "62+"
còn trường hợp 2 nó trả về giá trị là "%%v145-%%v%%v%%v%%v". Và đây chính là cái lỗi làm cho kết quả của bạn thành ra như vầy.
2/- Thực tế mình hay bạn đều có thể sửa lại đoạn lisp tiếp theo để nó cho ra kết quả đúng nhưng mình chưa hiểu rõ vì sao bạn lại phải sử dụng hai loại text của cùng một loại đối tượng TOLERANCE như vậy, và bạn có còn sử dụng các font text nào khác nữa cho loại đối tượng TOLERANCE này không??
Nếu có thì nên chăng bạn hãy quy nó về một loại font cho đơn giản việc tạo lisp chỉnh sửa, bằng không bạn hãy gửi tất cả các đối tượng đó lên để mình tìm cách sửa lisp một lần cho được.
Thực ra cái lisp mà bạn đã sửa đó nếu chạy với trường hợp mẫu như bạn gửi ban đầu là sẽ OK ngay, chả có gì sai đâu vì mình đã chạy thử rồi, tiếc là bạn đã thử nó với trường hợp 2 nên mới bị lỗi thôi. Để sửa cái lỗi này thì bạn phải sửa lại cái hàm (substr ......) và hàm (strcat .......) để cắt và tạo chuỗi mới từ chuỗi cũ mà thôi.
Vấn đề là nếu có nhiều loại font khác nhau thì cái mã DXF của chúng cũng sẽ khác nhau và bạn sẽ khó kiểm soát nên theo mình bạn nên quy nó về một kiểu font thôi và khi đó chỉ cần sửa lisp một lần là OK.
3/- Với trường hợp thứ hai bạn lưu ý như sau khi sửa lisp:
- các chuỗi "%%v" này có cố định hay không??? Hay là nó thay đổi tùy theo ý người dùng???
- Nếu thay đổi thì quy luật thay đổi thế nào????
Bạn trả lời được các câu hỏi này mình sẽ sửa lại code lisp cho trường hợp này để nó theo đúng ý bạn bạn nhé.
Chúc bạn vui.


Chào bạn phamthanhbinh,
Đối tượng mình tạo ra do đánh lệnh qleader gõ enter
ở dòng Specify first leader point, or [Settings] mình gõ enter sẽ hiện ra hộp thoại Leader Settings vào mục Annotation \ chọn Tolerance ở annotation reuse chọn None. Sau đó tại dòng nhắc first point mình chọn điểm đầu, dòng second point mình chọn điểm thứ 2 thì hiện ra hộp thoại Geometric Tolerance. Mình kích vào một ô trống bất kỳ 1số tự nhiên kèm 1 ký tự sau nó. Mình muốn copy đối tượng này nhiên với công sai là 1 số tự nhiên

http://www.cadviet.c...2/tolerance.dwg
  • 0

#371 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 13 November 2009 - 01:55 PM

Chào bạn phamthanhbinh,
Đối tượng mình tạo ra do đánh lệnh qleader gõ enter
ở dòng Specify first leader point, or [Settings] mình gõ enter sẽ hiện ra hộp thoại Leader Settings vào mục Annotation \ chọn Tolerance ở annotation reuse chọn None. Sau đó tại dòng nhắc first point mình chọn điểm đầu, dòng second point mình chọn điểm thứ 2 thì hiện ra hộp thoại Geometric Tolerance. Mình kích vào một ô trống bất kỳ 1số tự nhiên kèm 1 ký tự sau nó. Mình muốn copy đối tượng này nhiên với công sai là 1 số tự nhiên

http://www.cadviet.c...2/tolerance.dwg

Chào bạn dlongkts,
Nếu cái đối tượng text thuộc loại TOLERANCE được tạo ra đúng như cách bạn nói và thể hiện trong file bạn gửi này thì bạn hãy xem cái kết quả của chính cái lisp mà bạn đã sửa đây nè. Trong hình chữ nhật là kết quả khi mình chạy lisp với công sai a bắng 1, còn trong hình ngũ giác là chạy lisp với công sai a bằng 2. Thực tế bạn có thể chạy lisp với công sai a là một số âm để có kết quả giảm dần. Bạn hãy thử xem nhé.
http://www.cadviet.c...tolerance_1.dwg
Hình đã gửi
Như vậy đã đúng ý bạn chưa nhỉ???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#372 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 13 November 2009 - 03:35 PM

Chào bạn dlongkts,
Nếu cái đối tượng text thuộc loại TOLERANCE được tạo ra đúng như cách bạn nói và thể hiện trong file bạn gửi này thì bạn hãy xem cái kết quả của chính cái lisp mà bạn đã sửa đây nè. Trong hình chữ nhật là kết quả khi mình chạy lisp với công sai a bắng 1, còn trong hình ngũ giác là chạy lisp với công sai a bằng 2. Thực tế bạn có thể chạy lisp với công sai a là một số âm để có kết quả giảm dần. Bạn hãy thử xem nhé.
http://www.cadviet.c...tolerance_1.dwg
Hình đã gửi
Như vậy đã đúng ý bạn chưa nhỉ???


Cảm ơn bạn thật nhiều nhé. Mình đã làm được rồi
Ah cho mình hỏi bạn làm nghề gì vậy?
Chúc bạn luôn hạnh phúc
  • 0

#373 dkkx3a

dkkx3a

    biết lệnh trim

  • Members
  • PipPipPip
  • 190 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 13 November 2009 - 09:09 PM

NHờ các Bác Viết dùm hộ em cái Lisp này với.
Mục đích là nội suy đường tự nhiên trong mặt cắt trung gian khi đã biết 2 Mcắt lân cận.
Nội dung đã trình bày kỹ trong file Cad em đính kèm. Cảm ơn các bác trước. (Cái dzụ nầy em rất cần vì đang thiết kế mày cái tường chắn nên phải nội suy tìm vị trí bắt đầu và kết thúc rất lâu mà phải xê dịch nhiều lần mới tìm ra mặt cắt trung gian tương đối hợp lý).
File đính kèm: http://www.cadviet.c.../hoicadviet.dwg
  • 0
TỰ SỰ
Biển vào chiều buồn giữa cô liêu
Sóng vỗ bờ bạc đầu con nước
Khi biển động như lòng ta chợt động
Biển ồn ào nhưng thực rất dịu êm.......

#374 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 November 2009 - 09:40 PM

NHờ các Bác Viết dùm hộ em cái Lisp này với.
Mục đích là nội suy đường tự nhiên trong mặt cắt trung gian khi đã biết 2 Mcắt lân cận.
Nội dung đã trình bày kỹ trong file Cad em đính kèm. Cảm ơn các bác trước. (Cái dzụ nầy em rất cần vì đang thiết kế mày cái tường chắn nên phải nội suy tìm vị trí bắt đầu và kết thúc rất lâu mà phải xê dịch nhiều lần mới tìm ra mặt cắt trung gian tương đối hợp lý).
File đính kèm: http://www.cadviet.c.../hoicadviet.dwg

Trong bản vẽ của bạn trình bày 4 bước như sau :
B1: Ví dụ tại điểm gấp khúc này -> điểm A
B2: Copy sang mặt cắt 2 và cần NS
B3: Xác định giao điểm với đường tự nhiên bên MC2
B4: Nối 2 điểm A và B cắt với truc x-x ta có điểm cần nội suy thứ nhất C

Tue_NV chưa hiểu ý lắm. Ở bước 1 và bước 2 thì tương đối đã hiểu ý, riêng bước 3, bước 4 thì chưa hiểu ý. Bạn có thể nói rõ hơn dữ liệu đầu vào Input và dữ liệu đầu ra Output được không?
Rõ ràng nhất bạn nên minh hoạ bằng những con số cụ thể trong file .dwg của bạn

- Nối những điểm đó tìm được ta có đường cần nội suy. (Với giới hạn nội suy là phạm vi của MC nhỏ hơn. : câu này chưa hiểu lắm. Bạn vui lòng nói rõ hơn, càng cụ thể, chi tiết, tỉ mỉ càng tốt. OKay?
  • 0

#375 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 13 November 2009 - 10:32 PM

Chào tất cả mọi người,
Mình đang gặp một khó khăn này mong mọi người chỉ giúp.
Sau khi tạo ra một dạng block ATT đặc biệt thì mình muốn copy với một công sai là a. Nếu áp dụng lisp od_oc_oca.lsp thì không được, nếu áp dụng lisp dstt.lsp hoặc 1.lsp cũng không được. Dạ đây là block của mình:
http://www.cadviet.c.../trucdinhvi.dwg
  • 0

#376 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 14 November 2009 - 12:01 PM

Trong bản vẽ của bạn trình bày 4 bước như sau :
B1: Ví dụ tại điểm gấp khúc này -> điểm A
B2: Copy sang mặt cắt 2 và cần NS
B3: Xác định giao điểm với đường tự nhiên bên MC2
B4: Nối 2 điểm A và B cắt với truc x-x ta có điểm cần nội suy thứ nhất C

Tue_NV chưa hiểu ý lắm. Ở bước 1 và bước 2 thì tương đối đã hiểu ý, riêng bước 3, bước 4 thì chưa hiểu ý. Bạn có thể nói rõ hơn dữ liệu đầu vào Input và dữ liệu đầu ra Output được không?
Rõ ràng nhất bạn nên minh hoạ bằng những con số cụ thể trong file .dwg của bạn

- Nối những điểm đó tìm được ta có đường cần nội suy. (Với giới hạn nội suy là phạm vi của MC nhỏ hơn. : câu này chưa hiểu lắm. Bạn vui lòng nói rõ hơn, càng cụ thể, chi tiết, tỉ mỉ càng tốt. OKay?

Với giới hạn nội suy là phạm vi của MC nhỏ hơn. Câu này đúng là hơi khó hiểu thật. Có lẽ bạn ấy muốn nói: số điểm gấp khúc của mặt cắt nội suy được sẽ lấy theo mặt cắt có số điểm gấp khúc nhỏ hơn. và bề rộng của mặt cắt nội suy được cũng lấy theo bề rộng của mặt cắt này.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#377 dkkx3a

dkkx3a

    biết lệnh trim

  • Members
  • PipPipPip
  • 190 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 14 November 2009 - 03:43 PM

Với giới hạn nội suy là phạm vi của MC nhỏ hơn. Câu này đúng là hơi khó hiểu thật. Có lẽ bạn ấy muốn nói: số điểm gấp khúc của mặt cắt nội suy được sẽ lấy theo mặt cắt có số điểm gấp khúc nhỏ hơn. và bề rộng của mặt cắt nội suy được cũng lấy theo bề rộng của mặt cắt này.


Cảm ơn các bác quan tâm, em đã làm lại file Cad của em để các bác hiểu hơn. EM cảm ơn các Bác.
Link: http://www.cadviet.c...oicadviet_1.dwg
  • 0
TỰ SỰ
Biển vào chiều buồn giữa cô liêu
Sóng vỗ bờ bạc đầu con nước
Khi biển động như lòng ta chợt động
Biển ồn ào nhưng thực rất dịu êm.......

#378 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 14 November 2009 - 04:27 PM

Chào tất cả mọi người,
Mình đang gặp một khó khăn này mong mọi người chỉ giúp.
Sau khi tạo ra một dạng block ATT đặc biệt thì mình muốn copy với một công sai là a. Nếu áp dụng lisp od_oc_oca.lsp thì không được, nếu áp dụng lisp dstt.lsp hoặc 1.lsp cũng không được. Dạ đây là block của mình:
http://www.cadviet.c.../trucdinhvi.dwg

Chào bạn dlongkts,
Bạn hãy xài thử cái lisp này xem sao nhé.
http://www.cadviet.com/upfiles/2/3.lsp
Lưu ý là cái block mẫu khi chôn để copy phải đúng kiểu loại như các block mà bạn đã gửi ở file trên nghĩa là nó chỉ có một thuộc tính duy nhất là cái text của bạn và cái text này phải có ký tự cuối cùng là ký tự số. Hơn nữa là chỉ có một chữ số ở cuối thôi chứ không được là hai chữ số trở lên bạn nhé. Bởi vì nếu từ hai chữ số trở lên thì chỉ có thay đổi giá trị của chữ số cuối thôi còn các chữ số phía trước sẽ giữ nguyên và như vậy kết quả sẽ không như ý của bạn đâu.
Lisp này mình chỉ chỉnh sửa một chút từ cái lisp cũ gửi bạn mà thôi. Bạn có thể so sánh nó với cái lisp cũ để hiểu nó nhé. Bạn cũng có thể kết hợp cả hai cái lisp này với cái lisp bạn sửa để trở thành một lisp duy nhất sử dụng thêm các hàm điều kiện bạn ạ.
Chúc bạn thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#379 Mr Cuong

Mr Cuong

    biết zoom

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

Đã gửi 16 November 2009 - 12:42 AM

Chào bạn Mr.Cuong,
Bạn đã khỏi ốm chưa nhỉ?? Chúc bạn mau lành để bạn có thể diễn đạt rõ hơn cái ý bạn muốn bạn nhé. Từ đó mọi người mới dễ dàng giúp bạn được.
Bạn hãy nói rõ việc bạn muốn chia nhiều đường polyline là chia cùng một lúc hay là chia lần lượt từng đường một theo ý của bạn????
Việc chia các đường polyline này thành từng đoạn mà mỗi đoạn có độ dài theo ý người dùng ở đây là bạn muốn nói về độ dài tuyệt đối hay tương đối???
Và các đường polyline này được chia theo cùng một kiểu chia hay mỗi đường lại có một cách chia khác nhau hở bạn???
Việc bạn càng trình bày rõ ràng, cụ thể cái ý bạn muốn sẽ càng giúp bạn nhanh chóng có được sự giúp đỡ cần thiết bạn ạ. Đừng ngại trình bày cụ thể vì không phải ai cũng có đủ trí thông minh để có thể hiểu đúng ý bạn được. Hãy cứ coi như bạn đang trình bày yêu cầu của mình với một chú em tập sự nào đó bạn nhé.
Một lần nữa mong bạn sớm bình phục và hoàn thành tâm nguyện của bạn. Hề hề hề...

Rất cảm on bạn đã quan tâm dến mình. Mình đã bình phục hoàn toàn rùi, rất mong bạn có thể giúp được mình việc này.
Mình có 1 bản vẽ bao gồm rất nhiều đường poline mà khoảng cách giữa các điểm point tren đường poline ấy không cái nào bằng cái nào. Vì vậy mình muốn có 1 lệnh cho mình chọn tất cả các đường poline đó, nhập khoảng cách giữa các điểm point và Enter. Kết quả tất cả các đường poline mình đã chọn có khoảng các giữa các point đều bằng nhau và bằng giá trị mà mình nhập vào. Khi chia đường poline có thể chia theo trục X hay trục Y hay theo chiều của đường poline cung được.Khi chia đương poline dó thành n phần có giá trị cho trước thì phần lẻ dồn lại cuối cùng và bạn giữ nguyên cho mình.
Tiện đây bạn có thể hộ mình 1 việc nứa được ko ?. Vẫn là bản vẽ trên, các đường poline đó có khoảng cách giữa các điểm không bằng nhau. Bạn có thể giúp mình làm sao để khoảng cách giữ các điểm không nhỏ hơn 1 số cho trước. Túc là khi mình chọn tất cả các đường poline song nhập khoảng cách nhỏ nhất vào và bản vẽ của mình khong có đoạn thẳng nào nhỏ hơn giá trị mà mình đã nhập.
Cảm ơn bạn nhìu nha,chúc bạn luôn đạt được mọi ước mơ trong cuộc sống.
  • 0

#380 dlongkts

dlongkts

    biết vẽ line

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

Đã gửi 16 November 2009 - 08:00 AM

Chào bạn dlongkts,
Bạn hãy xài thử cái lisp này xem sao nhé.
http://www.cadviet.com/upfiles/2/3.lsp
Lưu ý là cái block mẫu khi chôn để copy phải đúng kiểu loại như các block mà bạn đã gửi ở file trên nghĩa là nó chỉ có một thuộc tính duy nhất là cái text của bạn và cái text này phải có ký tự cuối cùng là ký tự số. Hơn nữa là chỉ có một chữ số ở cuối thôi chứ không được là hai chữ số trở lên bạn nhé. Bởi vì nếu từ hai chữ số trở lên thì chỉ có thay đổi giá trị của chữ số cuối thôi còn các chữ số phía trước sẽ giữ nguyên và như vậy kết quả sẽ không như ý của bạn đâu.
Lisp này mình chỉ chỉnh sửa một chút từ cái lisp cũ gửi bạn mà thôi. Bạn có thể so sánh nó với cái lisp cũ để hiểu nó nhé. Bạn cũng có thể kết hợp cả hai cái lisp này với cái lisp bạn sửa để trở thành một lisp duy nhất sử dụng thêm các hàm điều kiện bạn ạ.
Chúc bạn thành công.


Đầu tuần rồi, mình chúc bạn có nhiều niềm vui
Bạn ơi, mình làm chỉ làm thiết kế kiến trúc thôi, mình ko biết viết lisp. Cái file cad mà mình gửi cho bạn là muốn thay đổi 2 chữ số trước. Ví dụ: x28a.b4 thành x28b.b4 ...; x28.b4 thành x29.b4 ...
  • 0