Đến nội dung


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

Viết Lisp theo yêu cầu


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

#1361 transu

transu

    biết vẽ spline

  • Members
  • PipPip
  • 93 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 15 December 2008 - 04:31 PM

Các anh ơi cho em hỏi có cái list nào mà vừa chơi " đột kich" vừa vẽ Cad dc ko? chi cho em với .
  • 0

#1362 thangkho

thangkho

    biết vẽ line

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

Đã gửi 15 December 2008 - 04:59 PM

Cho em hỏi có lisp nào như thế này không:
cộng thêm một số vào giá trị một số có sẳn
VD: gõ lệnh
Giá trị cộng thêm vào:
Chọn các số muốn thay đổi
Kết quả: các số được chọn sẽ được cộng thêm vào
  • 0

#1363 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 16 December 2008 - 07:38 AM

Cho em hỏi có lisp nào như thế này không:
cộng thêm một số vào giá trị một số có sẳn
VD: gõ lệnh
Giá trị cộng thêm vào:
Chọn các số muốn thay đổi
Kết quả: các số được chọn sẽ được cộng thêm vào

Trên Forum này có rồi đấy, chịu khó Search nhé.
  • 0

#1364 Saudoihamchoi08

Saudoihamchoi08

    biết pan

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

Đã gửi 16 December 2008 - 01:49 PM

Tớ có 2 bài toán nhờ các bác cao thủ, sư phụ trên diễn đàn giúp đỡ.

http://www.cadviet.c...s/tham_khao.dwg

Bài 1 :
* Tớ muốn vẽ các đoạn thẳng từ C1 đến C2, sau đó từ C3 đến C4.
- Đầu tiên tớ vẽ các đọan thẳng từ C1 đến C2 :
Vẽ đọan L1 và ghi text L1 ngay tâm đoạn L1, khi vẽ đoạn L2 khác phương L1 thì tự động fillet 1 góc R và ghi text L2 ngay tâm đoạn L2. Tương tự, khi vẽ đoạn L3 khác phương L2 thì tự động fillet 1 góc R và ghi text L3 ngay tâm đoạn L3.
- Sau đó tớ vẽ các đọan thẳng từ C3 đến C4 :
Vẽ đoạn L4 và ghi text L4 ngay tâm đoạn L4, vẽ đoạn L5 khác phương L4 thì tự động fillet 1 góc R và ghi text L5 ngay tâm đoạn L5.
Trước khi vẽ lisp sẽ yêu cầu nhập thông số như sau ( nếu nhập theo bảng thì quá pro )
Bán kính muốn fillet ( R ) :
Khoảng cách muốn cắt ( K ) :
Về Polyline : Layer, màu, linetype, linetype Scale, lineweight, thickness...
Về Text : Layer, màu, linetype, linetype Scale, lineweight, thickness, style name, height text, width factor...
Khi 2 đoạn thẳng cắt nhau thì tự động cắt 1 đoạn K. Tâm đoạn thẳng K nằm trên đoạn thẳng còn lại. Ví dụ ở đây là đoạn L3 cắt L4.

Bài 2 :
* Ở bài 2 giống bài 1 chỉ khác là khi muốn vẽ các đọan thẳng từ C1 đến C2 ta chỉ cần nhập R và số đoạn thẳng muốn vẽ thì lisp tự động vẽ. Ví dụ khi vẽ các đọan thẳng từ C1 đến C2, ta nhập R=150 và số đoạn thẳng =3, khoảng cách cắt K=200, chọn đối tượng là C1 và C2.
* Tương tự khi vẽ các đọan thẳng từ C3 đến C4, ta nhập R=150 và số đoạn thẳng =2, khoảng cách cắt K=200, chọn đối tượng là C3 và C4.

2 bài này tớ nghĩ hơi khó và tốn nhiều thời gian nên các bác giúp được tới đâu cũng được.
Bởi vì diễn đàn có ghi Viết lisp theo yêu cầu nhưng không biết có tốn phí không và làm sao để thanh toán. Nếu free thì có dịp gặp mặt xin mời mấy bác chầu cafe nhé. :cheers:
  • 0

#1365 nhunhang

nhunhang

    Chưa sử dụng CAD

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

Đã gửi 16 December 2008 - 07:23 PM

Tôi muốn viết một đoạn mã lisp vẽ đường thẳng qua hai điểm sau đó tự động ghi kích thước của đoạn thẳng đó luôn. Mong các bác giúp đỡ.
  • 0

#1366 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 16 December 2008 - 07:57 PM

Tôi muốn viết một đoạn mã lisp vẽ đường thẳng qua hai điểm sau đó tự động ghi kích thước của đoạn thẳng đó luôn. Mong các bác giúp đỡ.

Mình đã viết cho bạn ở đây rồi nè :Giúp người mới học Autolisp
  • 0

#1367 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 16 December 2008 - 09:35 PM

Tớ có 2 bài toán nhờ các bác cao thủ, sư phụ trên diễn đàn giúp đỡ.

http://www.cadviet.c...s/tham_khao.dwg

Bài 1 :
* Tớ muốn vẽ các đoạn thẳng từ C1 đến C2, sau đó từ C3 đến C4.
- Đầu tiên tớ vẽ các đọan thẳng từ C1 đến C2 :
Vẽ đọan L1 và ghi text L1 ngay tâm đoạn L1, khi vẽ đoạn L2 khác phương L1 thì tự động fillet 1 góc R và ghi text L2 ngay tâm đoạn L2. Tương tự, khi vẽ đoạn L3 khác phương L2 thì tự động fillet 1 góc R và ghi text L3 ngay tâm đoạn L3.
- Sau đó tớ vẽ các đọan thẳng từ C3 đến C4 :
Vẽ đoạn L4 và ghi text L4 ngay tâm đoạn L4, vẽ đoạn L5 khác phương L4 thì tự động fillet 1 góc R và ghi text L5 ngay tâm đoạn L5.
Trước khi vẽ lisp sẽ yêu cầu nhập thông số như sau ( nếu nhập theo bảng thì quá pro )
Bán kính muốn fillet ( R ) :
Khoảng cách muốn cắt ( K ) :
Về Polyline : Layer, màu, linetype, linetype Scale, lineweight, thickness...
Về Text : Layer, màu, linetype, linetype Scale, lineweight, thickness, style name, height text, width factor...
Khi 2 đoạn thẳng cắt nhau thì tự động cắt 1 đoạn K. Tâm đoạn thẳng K nằm trên đoạn thẳng còn lại. Ví dụ ở đây là đoạn L3 cắt L4.

Bài 2 :
* Ở bài 2 giống bài 1 chỉ khác là khi muốn vẽ các đọan thẳng từ C1 đến C2 ta chỉ cần nhập R và số đoạn thẳng muốn vẽ thì lisp tự động vẽ. Ví dụ khi vẽ các đọan thẳng từ C1 đến C2, ta nhập R=150 và số đoạn thẳng =3, khoảng cách cắt K=200, chọn đối tượng là C1 và C2.
* Tương tự khi vẽ các đọan thẳng từ C3 đến C4, ta nhập R=150 và số đoạn thẳng =2, khoảng cách cắt K=200, chọn đối tượng là C3 và C4.

2 bài này tớ nghĩ hơi khó và tốn nhiều thời gian nên các bác giúp được tới đâu cũng được.
Bởi vì diễn đàn có ghi Viết lisp theo yêu cầu nhưng không biết có tốn phí không và làm sao để thanh toán. Nếu free thì có dịp gặp mặt xin mời mấy bác chầu cafe nhé. :cheers:

Chào bạn saudoihamchoi08,
Cái khó đối với đề bài bạn ra là mình không hiểu ý bạn muốn thế nào mặc dầu đã cố đọc nhiều lần. Có lẽ bạn nên post cái hình mà bạn muốn làm lên và ghi chú rõ các điều bạn muốn làm.
Cái khó nhất chính là phải hiểu được bạn muốn gì thì mới có thể tìm cách mà làm chứ đọc bài của bạn mình thấy nó lủng củng quá và không rõ ý gì cả.
Ví dụ: Thế nào là các đoạn thẳng từ C1 đến C2? Như vậy qua hai điểm C1 và C2 bạn có mấy đoạn thẳng vậy? Theo bạn giải thích là 3, vậy thì 3 đoạn thẳng này sẽ phải dựng trên cơ sở nào vậy? Rồi khái niệm khoảng cách cắt của bạn là gì vậy? v.v......???
Mong bạn hãy cố diễn đạt làm sao để người ngu nhất cũng có thể hiểu được bạn muốn gì, đừng sủ dụng những từ mà chỉ một mình bạn hiểu.
Còn cà fe cũng tốt đấy, nhất là với những người khoái ngồi viết lisp. Nhưng rất tiếc là uống sao nổi khi chả biết giúp bạn thế nào !!!!!.
Chúc bạn vui và thành công trong cuộc số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.

#1368 Saudoihamchoi08

Saudoihamchoi08

    biết pan

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

Đã gửi 17 December 2008 - 03:39 PM

Tớ mới vào diễn đàn nên còn nhiều sai xót. Tớ nói lại yêu cầu nhé, lần này bỏ vấn đề ghi text.

Bài 1:
1 - Gõ tên lệnh
2 - Nhập thông số ( R, K)
3 - Vẽ đoạn L1
4 - Vẽ đoạn L2. Sau khi vẽ L2 thì tự động fillet bán kính R
5 - Vẽ đoạn L3. Sau khi vẽ L3 thì tự động fillet bán kính R.
6 - Vẽ đoạn L4. Do L4 cắt L3 nên lisp tự động cắt 1 khỏang cách K. 2 điểm K1 và K2 đối xứng nhau.
7 - Vẽ đoạn L5. Sau khi vẽ L5 thì tự động fillet bán kính R.
Kết thúc

http://www.cadviet.c...files/bai_1.jpg

Bài 2:
1 - Gõ tên lệnh
2 - Nhập thông số ( R, K, n )
3 - Enter và lisp tự động vẽ n đoạn thẳng từ C1 đến C2. ( n là số đoạn thẳng muốn vẽ )
Kết thúc

http://www.cadviet.c...files/bai_2.jpg

Tớ xin lưu ý các bác điểm này ở 2 bài
Phương các đoạn thẳng phải khác nhau thì mới fillet được ( Đương nhiên )
L1 L2 L3 không cắt nhau. Nếu đoạn thẳng không cắt nhau lisp tự động fillet bán kính R. Nếu đoạn thẳng cắt nhau lisp tự động tạo 1 khoảng cắt là K.
Ở bài 2 thì lisp sẽ vẽ các đoạn thẳng theo qui tắc nào thì các bác làm sao cũng được hay theo qui tắc trái qua phải, trên xuống dưới cũng được.
Thông số về polyline mặc định hay người dùng thiết định thì càng tốt.

Có bác nào chưa rõ thì nhắn lại nhé.
  • 0

#1369 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 17 December 2008 - 11:09 PM

Các tiền bối ơi. Em đang dùng phần mềm NOVA3 chạy trên cad 14. Mỗi lần xuất trắc ngang song cho vào khung thật mệt. Có ai giúp em có thể suất luôn khung tên luôn khi chạy trắc ngang.
  • 0

#1370 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 17 December 2008 - 11:14 PM

Em phiền thêm các tiền bối tý. em có 1 bản vẽ gồm các đoạn line và polyne. em muốn khi chọn đối tượng thì nó tự điền kích thước luôn. Mong các tiền bối giúp đỡ .
  • 0

#1371 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 December 2008 - 06:54 AM

Em phiền thêm các tiền bối tý. em có 1 bản vẽ gồm các đoạn line và polyne. em muốn khi chọn đối tượng thì nó tự điền kích thước luôn. Mong các tiền bối giúp đỡ .

Ở trong CAD có sẳn rồi bạn ơi.
Lệnh ghi kích thước theo đường thẳng :
Command: _dimlinear
Specify first extension line origin or < select object >: Gõ enter để chọn đối tượng

Select object to dimension: : Chọn đối tượng để ghi kích thước
Specify dimension line location or
[Mtext/Text/Angle/Horizontal/Vertical/Rotated]:
Dimension text = 3620

Lệnh ghi kích thước theo đường xiên :
Command: _dimaligned
Specify first extension line origin or < select object >: Gõ enter để chọn đối tượng

Select object to dimension: : Chọn đối tượng để ghi kích thước
Specify dimension line location or
[Mtext/Text/Angle]:
Dimension text = 14051

Chúc thành công :cheers:
  • 0

#1372 transu

transu

    biết vẽ spline

  • Members
  • PipPip
  • 93 Bài viết
Điểm đánh giá: 19 (tàm tạm)

Đã gửi 18 December 2008 - 08:31 AM

Em phiền thêm các tiền bối tý. em có 1 bản vẽ gồm các đoạn line và polyne. em muốn khi chọn đối tượng thì nó tự điền kích thước luôn. Mong các tiền bối giúp đỡ .


bạn dùng lệnh qdim(quickdim) là nhanh nhất.lệnh này cho phép dim nhiều đối tượng 1 lúc.
  • 0

#1373 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 December 2008 - 09:25 AM

bạn dùng lệnh qdim(quickdim) là nhanh nhất.lệnh này cho phép dim nhiều đối tượng 1 lúc.

Lệnh qdim(quickdim) chỉ ghi kích thước nhanh đối với loại dimlinear (kích thước ghi theo đường thẳng). Còn đối với đường xiên (dimaligned) thì không được.
Các bạn có cách nào ghi kích thước xiên (dimaligned) nhanh nhất không?
  • 0

#1374 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 18 December 2008 - 02:43 PM

Tớ mới vào diễn đàn nên còn nhiều sai xót. Tớ nói lại yêu cầu nhé, lần này bỏ vấn đề ghi text.

Bài 1:
1 - Gõ tên lệnh
2 - Nhập thông số ( R, K)
3 - Vẽ đoạn L1
4 - Vẽ đoạn L2. Sau khi vẽ L2 thì tự động fillet bán kính R
5 - Vẽ đoạn L3. Sau khi vẽ L3 thì tự động fillet bán kính R.
6 - Vẽ đoạn L4. Do L4 cắt L3 nên lisp tự động cắt 1 khỏang cách K. 2 điểm K1 và K2 đối xứng nhau.
7 - Vẽ đoạn L5. Sau khi vẽ L5 thì tự động fillet bán kính R.
Kết thúc

http://www.cadviet.c...files/bai_1.jpg


Có bác nào chưa rõ thì nhắn lại nhé.

Chào bạn saudoihamchoi08,
Đây là hai cái lisp mình viết theo yêu cầu của bạn. Có thể bạn xài chơi, có thể bạn chả cần. Nhưng mình muốn làm để bạn hiểu cái điều mình đã nói ở bài post trước.
http://www.cadviet.c...iles/Tromeo.lsp
http://www.cadviet.c...les/Tromeo1.lsp
Lisp tromeo là mình viết theo cái cách bạn nói
Lisp tromeo 1 là mình viết theo hình bạn gửi kèm. Tuy nhiên mình chỉ làm cái kết quả là cắt đường đứng, còn cái cắt đường ngang và các khoản ghi chú kích thước mình không làm vì không thấy có yêu cầu.

Qua đó bạn thấy giữa cái bạn nói và cái hình bạn post hoàn toàn có thể hiểu khác nhau. Bạn nên rút kinh nghiệm để trình bày sao cho người khác hiểu đúng ý mình, nhất là trong các vấn đề kỹ thuật bạn ạ.

Nếu bạn thấy có vấn đề gì về cái lisp mình gửi thì cứ trao đổi , còn nếu bạn khoái cái lisp này thì cà fe đừng quên 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.

#1375 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 18 December 2008 - 03:55 PM

Tớ mới vào diễn đàn nên còn nhiều sai xót. Tớ nói lại yêu cầu nhé, lần này bỏ vấn đề ghi text.

Bài 2:
1 - Gõ tên lệnh
2 - Nhập thông số ( R, K, n )
3 - Enter và lisp tự động vẽ n đoạn thẳng từ C1 đến C2. ( n là số đoạn thẳng muốn vẽ )
Kết thúc

http://www.cadviet.c...files/bai_2.jpg

Tớ xin lưu ý các bác điểm này ở 2 bài
Phương các đoạn thẳng phải khác nhau thì mới fillet được ( Đương nhiên )
L1 L2 L3 không cắt nhau. Nếu đoạn thẳng không cắt nhau lisp tự động fillet bán kính R. Nếu đoạn thẳng cắt nhau lisp tự động tạo 1 khoảng cắt là K.
Ở bài 2 thì lisp sẽ vẽ các đoạn thẳng theo qui tắc nào thì các bác làm sao cũng được hay theo qui tắc trái qua phải, trên xuống dưới cũng được.
Thông số về polyline mặc định hay người dùng thiết định thì càng tốt.

Có bác nào chưa rõ thì nhắn lại nhé.

Chào bạn saudoihamchoi08,
Đã xem hình của bạn và cả đọc bài nữa vẫn không hiểu. Vậy khi n=4 thì sao, n=5 thì sao và khi n =10000000 thì Ô là là khỏi vẽ à????
Bạn phải cho quy định cụ thể chứ, không có bố thằng Tây cũng khóc.

À mà bạn lưu ý cho là nếu hai đường thẳng song song vẫn có thể fillet được đó. không tin, bạn hãy thử nhé.
Nói hai điểm đối xứng nhau là chưa đủ, bạn cần phải cho biết đối xứng qua tâm hay qua trục nào nữa nhé. Đừng chủ quan.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#1376 hadongnat

hadongnat

    biết vẽ line

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

Đã gửi 18 December 2008 - 06:10 PM

Bạn có thể post yêu cầu về autolisp ở topic này.

ý tưởng của em là đang vẽ tỉ lệ 1-1 sau đó dimlfac xuống 1-25. chẳng hạn như mình muốn chỉnh sửa hoặc đo kich thước trong tỉ lệ 1/25 chẳng hạn thì mình phải chia số cần đo cho 25. anh có thể viết được lisp nào khắc phục được điều đó không? tức là có thể viết được lisp nhập hệ số tỉ lệ để khi mình nhập kích thước vào thì nó tự động chia cho 25 được không? Rất cám ơn anh.
  • 0

#1377 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 December 2008 - 08:49 PM

ý tưởng của em là đang vẽ tỉ lệ 1-1 sau đó dimlfac xuống 1-25. chẳng hạn như mình muốn chỉnh sửa hoặc đo kich thước trong tỉ lệ 1/25 chẳng hạn thì mình phải chia số cần đo cho 25. anh có thể viết được lisp nào khắc phục được điều đó không? tức là có thể viết được lisp nhập hệ số tỉ lệ để khi mình nhập kích thước vào thì nó tự động chia cho 25 được không? Rất cám ơn anh.

Hy vọng đoạn Code này chạy theo đúng ý của bạn :
Tên lệnh là DTL
(defun c:DTL() 
(setq TL (getreal "\nNhap he so ti le :"))
(setq TLe (/ 1 TL))
(command "dimlfac" TLe)
(command "graphscr")
(prompt "Ban ghi kich thuoc :")
(command "dimaligned")
(princ)
)
Chúc thành công. :cheers:
  • 0

#1378 Saudoihamchoi08

Saudoihamchoi08

    biết pan

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

Đã gửi 19 December 2008 - 09:27 AM

Chào bạn saudoihamchoi08,
Đã xem hình của bạn và cả đọc bài nữa vẫn không hiểu. Vậy khi n=4 thì sao, n=5 thì sao và khi n =10000000 thì Ô là là khỏi vẽ à????
Bạn phải cho quy định cụ thể chứ, không có bố thằng Tây cũng khóc.

À mà bạn lưu ý cho là nếu hai đường thẳng song song vẫn có thể fillet được đó. không tin, bạn hãy thử nhé.
Nói hai điểm đối xứng nhau là chưa đủ, bạn cần phải cho biết đối xứng qua tâm hay qua trục nào nữa nhé. Đừng chủ quan.



Tớ xin nói lại 1 lần nữa.

Bài 1
Yêu cầu của bài Lisp của bác bình ( Chỉ giới hạn 5 đường thẳng
khi vẽ không hiện cây đường thẳng)
Click điểm 1 => lấy điểm đầu L1 Click điểm 1 => lấy điểm đầu L1
Click điểm 2 => vẽ L1 Click điểm 2 => vẽ L1
Click điểm 3 => vẽ L2 Click điểm 3 => lấy điểm đầu L2
Click điểm 4 => vẽ L3 Click điểm 4 => vẽ L2
Click điểm n => vẽ L(n-1)

* Nếu đoạn thẳng cắt nhau => tạo khoảng cách K
* Nếu đoạn không cắt nhau => fillet bán kính R
* Điểm đầu L2 mặc định hiểu là điểm cuối L1. Cái này giống y khi dùng lệnh pline. Thay vì pline cho 1 góc vuông 90 độ thì lệnh này tự động fillet bán kính R. Và muốn vẽ hàng ngàn đường thẳng thì lisp vẫn hiểu. Ở trong hình tớ chỉ ví dụ 5 đường thẳng thôi.
* Khi vẽ hiện cây đường thẳng giống như khi mình dùng lệnh pline ấy.

Bài 2

Giới hạn n=5, nếu n>5 hiện ra thông báo yêu cầu nhập n<=5.

http://www.cadviet.c...les/Book1_2.xls
  • 0

#1379 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 19 December 2008 - 11:10 AM

Tớ xin nói lại 1 lần nữa.

Bài 1
Yêu cầu của bài Lisp của bác bình ( Chỉ giới hạn 5 đường thẳng
khi vẽ không hiện cây đường thẳng)
Click điểm 1 => lấy điểm đầu L1 Click điểm 1 => lấy điểm đầu L1
Click điểm 2 => vẽ L1 Click điểm 2 => vẽ L1
Click điểm 3 => vẽ L2 Click điểm 3 => lấy điểm đầu L2
Click điểm 4 => vẽ L3 Click điểm 4 => vẽ L2
Click điểm n => vẽ L(n-1)

* Nếu đoạn thẳng cắt nhau => tạo khoảng cách K
* Nếu đoạn không cắt nhau => fillet bán kính R
* Điểm đầu L2 mặc định hiểu là điểm cuối L1. Cái này giống y khi dùng lệnh pline. Thay vì pline cho 1 góc vuông 90 độ thì lệnh này tự động fillet bán kính R. Và muốn vẽ hàng ngàn đường thẳng thì lisp vẫn hiểu. Ở trong hình tớ chỉ ví dụ 5 đường thẳng thôi.
* Khi vẽ hiện cây đường thẳng giống như khi mình dùng lệnh pline ấy.

Bài 2

Giới hạn n=5, nếu n>5 hiện ra thông báo yêu cầu nhập n<=5.

http://www.cadviet.c...les/Book1_2.xls

Gửi bạn saudoihamchoi08,
Quả thực mình không hiểu nổi bạn nữa. Bạn hãy tự xem lại các bài post trước của bạn đi. Yêu cầu của bạn không phải không thực hiện được mà không ai có thể hiểu được bạn muốn gì khi mỗi lần bạn yêu cầu một kiểu.
Cái lisp của mình nếu bạn chịu khó đọc, bạn hoàn toàn có thể sửa nó theo ý của bạn và áp dụng nó cho bài 2 của bạn.
Thực tề nếu như bạn muốn vẽ n đường thẳng không phải là việc khó nhưng quy luật của các đường này ra sao chứ, vẽ bừa thì nó sẽ như cái mà mình đã gửi bạn.
Bạn có hiểu tại sao mình đặt tên lisp là trò mèo không???
Cái lisp trò mèo 1 chỉ là cải tiến tí chút từ cái trò mèo mà thôi. Bạn suy nghĩ và làm việc kiểu đại khái như vậy thì thực chất bạn đang làm cái trò mèo đó đấy.
Mình nhắc lại, bạn cần phải hiểu bạn muốn cái gì và trình bày cụ thể, chính xác cái yêu cầu mình muốn theo đúng ngôn ngữ mà người kỹ thuật sử dụng.
Ở bài 1, theo yêu cầu lần trước bạn không hề nói tới việc chọn điểm thứ hai phải là đầu của đoạn thẳng kế tiếp, thậm chí bạn cũng không thèm nói tới yêu cầu là đường thẳng thứ hai sẽ vuông góc với đường thẳng thứ nhất. Bạn cần nhớ khác phương không có nghĩa là vuông góc. Sở dĩ trong cái trò mèo 1 mình làm vuông góc vì mình nhìn cái hình của bạn thôi. Trong bài 1 rõ ràng bạn nói sau khi vẽ xong L5 thì kết thúc. Vậy mà bấy giờ bạn lại bảo vẽ n đường. Và n đường này theo quy luật nào chứ. Thậm chí cái quy luật mà bạn nói với n=5 cũng đã sai toét tòe loe so với cái hình bạn post lần trước. Bạn không tin hả? Cái L4 của bạn trên hình làm sao mà vẽ với quy luật đó.Bạn nghĩ cái gì vậy.?
Ở bài 2, lần trước bạn có đưa hình mẫu cho n=1, 2, 3 nhưng với n=4, n=5 ..... thì không và chẳng hề có một thông số gì để người đọc phát hiện ra cái quy luật bạn muốn. Lần này bạn lại cung cấp trần sì chỉ có n=2 và cũng chẳng hề cho biết cái quy luật của nó ra sao.Bạn có giới hạn n=5 là quá dể dàng rồi nhưng vẫn phải có quy định cho n=3,4,5 mới có thể vẽ được. Lại còn khi nào thì bạn sẽ chọn l1 là đường đối xứng, và khi nào thì là l2 nữa hay là tuỳ nghi lựa chọn. Dù thế nào bạn cũng phải cung cấp thông tin cho chính xác thì người khác mới giúp bạn được. Bằng không tất cả chỉ là trò mèo vì người viết như tôi cũng chả biết để làm gì , và người cần như bạn cũng quẳng đi.
Bạn là người làm kỹ thuật, đừng bao giờ nói những điều mà chính mình cũng không hiểu. Hảy tìm hiểu cho kỹ, hiểu cho bằng được cái mình cần đã.
Mình rất không thích khi phải nói với bạn thế này, nhưng không thể không nói vì ít nhất cũng để bạn hiểu mình nghĩ gì về bạn.
Rất mong bạn sẽ suy nghĩ nghiêm túc về những điều mình nói, và đừng giận mình lâu.
Cám ơn bạn đã đọc bài.

TB: Bạn có thể sử dụng cái lisp của mình miễn phí. Hãy đọc kỹ nó và vận dụng vào yêu cầu của bạn. Nếu có khó khăn chỗ nào thì post lên để cùng trao đổi.
Việc bạn yêu cầu lisp khi vẽ phải thể hiện con trỏ chữ thập mình chưa biết làm bạn ạ. Có thể có cách nhưng mình chưa biết, bạn hãy tìm hiểu thêm nhưng theo mình điều đó không thực sự cần vì lisp nó tự động chạy rất nhanh chả thể theo dõi cái con trỏ đó nó chạy đâu. Nếu muốn bạn cứ tìm hiểu thêm nhé.
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.

#1380 hadongnat

hadongnat

    biết vẽ line

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

Đã gửi 19 December 2008 - 12:46 PM

Hy vọng đoạn Code này chạy theo đúng ý của bạn :
Tên lệnh là DTL

(defun c:DTL() 
(setq TL (getreal "\nNhap he so ti le :"))
(setq TLe (/ 1 TL))
(command "dimlfac" TLe)
(command "graphscr")
(prompt "Ban ghi kich thuoc :")
(command "dimaligned")
(princ)
)
Chúc thành công. :cheers:

cám ơn anh đã trả lời em. em đã dùng thử nhưng không được anh à. em nói rõ hơn anh nhá. em vẽ 1-1 sau đó sc xuống 1/25 = 0.04 sau đó dimlfac 25 thi sẽ đo dim trong hình vẽ là tỉ lệ 1/25 nhưng sau đó em muốn vẽ gì đó trong hình vẽ đã sc đó ví dụ em muốn vẽ 1 đoạn line dài 1000 thì em phải nhập là 40 ( =1000/25). ý em là mình có thể dùng lisp để có thể không cần chia cho 25 khi vẽ đường line đó. cảm ơn anh ạ.
  • 0