Đến nội dung


Hình ảnh

LISP VẼ ĐƯỜNG ỐNG 3D trên AutoCAD


  • Please log in to reply
32 replies to this topic

#1 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 28 October 2014 - 10:29 PM

(Mục đính em lập thêm chủ đề mới này để tiện tìm kiếm  và tiện theo dõi vì lisp vẽ đường ống 3D cần phải có ít nhất là 05 cái lisp, để chung với chủ đề khác e không tiện)

Hiện nay có rất nhiều phầm mềm vẽ đường ống, ưu điểm chính của nó là nhanh, vì nó tích hợp nhiều file tư liệu như  Bích, Van... và các phụ kiện đường ống theo đúng Cataloge của các hãng nổi tiếng trên thế giới.

Tuy nhiên, nó chỉ là trò chơi của con nhà giàu như như dân DẦU KHÍ,  THỦY ĐIỆN & ĐÓNG TẦU,  họ thường nhận được hợp đồng làm các công trình lớn,  có vốn đầu tư của nước ngoài. Con nhà nghèo như dân CƠ KHÍ  và CẤP THOÁT NƯỚC  hiện tại chưa thể đánh đu với trò chơi đó được.

Phụ kiện đường ống đang trôi nổi trên thị trường rất đa dạng dạng về kích thước, kiểu dáng và chất lượng. Làm xong công trình nào,  biết công trình đó thôi, có khi tạo được file thư viện xong, chẳng bao giờ dùng lại  nữa.

Cái khó của người thiết kế là không được tự do thiết kế  theo ý thích của mình. Chủ đầu tư hào phóng quăng ra một cục tiền to, rất dễ lựa chọn phụ kiện, tha hồ vẽ hươu vẽ vượn.

Chủ đầu tư kẹt xỉn chỉ chi tiền nhỏ giọt, hoặc chủ đầu tư chỉ có một cục tiền nhỏ mọn ( luôn tiềm ẩn nỗi lo sợ kinh hoàng về những  món nợ dai dẳng và  khó đòi) vẫn đang là  CHUYỆN THƯỜNG Ở HUYỆN.

Việc lựa chọn phụ kiện  hợp với túi tiền của chủ đầu tư cũng đang là hệ phương trình bậc cao không có ...ẩn số. (Không thể vẽ hươu vẽ vượn được mà chỉ ngậm ngùi vẽ được con giun... chết thôi :) :) :) )

 

Từ hoàn cảnh nghiệt ngã và đầy... ức chế đó, là người đã  từng vẽ đường ống 3D trên AutoCAD,  em đã nhờ viết lisp vẽ đường ống 3D theo tiêu chuẩn:

11837_haa_2.png

trong chủ đề:

http://www.cadviet.c...trong-3d/page-6 và anh Hiệp đã làm được 2 cái lisp thể hiện trong các bài viết số #109 và #110 .

Mục tiêu của vẽ đường ống 3D là thống kê được chính xác số lượng ống và cút cho cả công trình.  Cách của em vẫn làm trên AutoCAD là sau khi vẽ xong bản tổng, sẽ thông kê tổng khối lượng của các chủng loại ống và cút có đường kính khác nhau, và phụ kiện đính kèm bằng cách tắt tất cả các layer, chỉ để lại 1 layer để thống kê. Cách này tốn khá nhiều thời gian và công sức.

 

Rất mong được các bác Viết lisp theo yêu cầu trên diễn đàn,  cùng các bác đã từng vẽ đường ống 3D trong chủ đề này- http://www.cadviet.c...-autocad/page-2 - vào đây thử lisp của anh Hiệp và cho ý kiến góp ý, em xin trân trọng cảm ơn!

P/s: Lisp của anh Hiệp tuy chưa hoàn chỉnh theo ý của em, nhưng bước đầu đã đủ để khẳng định việc  viết lisp vẽ đường ống 3D trên AutoCAD là khả thi.....


  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 28 October 2014 - 10:37 PM

Dự định của Haanh là delete chủ đề gì đó của dân cơ khí và dân cấp thoát nước bên kia à?


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 28 October 2014 - 10:57 PM

@Bác Doan Van Ha:

Không phải phải là em có ý định xóa chủ đề : "Tổng hợp các lisp thường dùng cho dân khí...." (Em lập chủ đề ấy để dễ tìm kiếm).

 

1/- Lisp ghi dung sai kích thước: http://www.cadviet.c...-co-khi/page-23

2/- Lisp vẽ đường ống 3D: http://www.cadviet.c...trong-3d/page-6

3/-  ................................................................................................................................................

4/- ...............................................................................................................

5/- ................................................................................

Xin mời các bác đã và  đang ứng dụng lisp trong công việc làm của mình, hãy chia sẻ lisp của mình cho mọi người!

Em xin trân trọng cám ơn nhiều!

 

Tự dưng cái Hoằn không hiểu ý của em  đã chen ngang  lisp khai triển cánh vít vào vị trí số 3. Lisp khai triển cánh vít ít dùng em tạm dừng lại, mặc dù anh Hiệp đã viết xong phần đầu là lisp xác định đường kính trung bình tính toán Dtb và dtb.

Em muốn giải quyết dứt điểm Lisp vẽ đường ống 3D trước (cần thiết hơn), sau đó sẽ trở lại nhờ các bác viết lisp khai triển cánh vít sau, bác ạ!


  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#4 anh.tuan

anh.tuan

    biết lệnh extend

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

Đã gửi 29 October 2014 - 07:44 AM

cái này dùng cho dân cơ khí, dân cấp thoát nước ngoài cút, còn có chếch, y, bít xả nửa, không biết lisp này có dùng được không nhỉ?


  • 0

#5 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 29 October 2014 - 08:45 AM

Mặc dù không đúng chuyên ngành nhưng cũng có vài ý kiến với chủ thớt :

- dân cơ khí chỉ dùng cút (90 độ) thôi à ? các loại nối khác qui định thế nào : co lơi (135 độ), rẽ nhánh chữ T, nối thay đổi đ/kính ông (tăng giảm) ...

- với t/chuẩn Nhật-ĐL : qui định chiều cao b/kính cút thế nào?


  • 2

#6 anh.tuan

anh.tuan

    biết lệnh extend

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

Đã gửi 29 October 2014 - 12:21 PM

mình thấy nước ngoài họ viết thành menu luôn, cứ sổ xuống là nó cho mình lựa chọn : Co 90, Chếch 135, Tê đều, Tê giảm, Y đều, Y giảm, Giảm (Côn), Vẽ tim ống (Vẽ dạng đường Xline), Bít xả. Đối với phần cấp nước thì có : Co, Co ren trong, Co ren ngoài, Tê đều, Tê giảm, Giảm, Van......

 

Sau khi vẽ xong chọn menu tính khối lượng, quét chọn các đoạn ống, phụ kiện nào là nó tính khối lượng ra cho mình. Rất nhanh chóng và chính xác.

 

Không biết ý tưởng của mình vậy có bạn nào giúp viết ra được không ạ?


  • 1

#7 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 30 October 2014 - 03:13 PM

Mặc dù không đúng chuyên ngành nhưng cũng có vài ý kiến với chủ thớt :

- dân cơ khí chỉ dùng cút (90 độ) thôi à ? các loại nối khác qui định thế nào : co lơi (135 độ), rẽ nhánh chữ T, nối thay đổi đ/kính ông (tăng giảm) ...

- với t/chuẩn Nhật-ĐL : qui định chiều cao b/kính cút thế nào?

 

Em rất vui  :)  :)  :)  và cảm ơn bác nhiều!

1) Dân Cơ khí dùng  trên 90%  là cút 90°C, các loại  phụ kiện như:“co lơi (135 độ), rẽ nhánh chữ T, nối thay đổi đ/kính ông (tăng giảm) ... “ đều có nhưng chỉ chiếm khoảng 10%, bác ạ!

Bác xem ảnh minh họa trong bài viết của cái Hoằn và bài của em sẽ  trong chủ đề  sau sẽ hiểu:

http://www.cadviet.c...-autocad/page-2

Rắc co, rẽ nhánh chữ T, côn thu có nhiều ở đầu ra của máy bơm nước, máy bơm dịch và máy nén khí. Đường ống truyền dẫn đến thiết bị thường là các đoạn ống và cút được hàn nối với nhau chứ không lắp ren.

 

2)- Em chỉ nhờ anh Hiệp viết lisp vẽ đường ống theo tiêu chuẩn Đức. Khi cần vẽ đường ống theo các tiêu chuẩn khác , người dùng lisp sẽ phải tự chỉnh sửa và bổ xung thêm vào dòng code của lisp.

Em nói là vẽ ống theo tiêu chuẩn Đức cho hoành tráng thôi, trong thực tế, thì chỉ có loại cút hàn mới đảm bảo đúng và đủ chiều cao tâm cút; còn loại cút uốn trên máy uốn ống tự chế thì chiều cao tâm cút sẽ thay đổi ít nhiều, tùy theo bán kính con lăn của máy uốn.

3)- Mục tiêu của việc vẽ đường ống 3D là để công nhân dễ lắp đặt và dễ  thống kê chính xác được số lượng ống và cút, bởi vậy em chỉ vẽ ống đặc, vẽ ống rỗng dung lượng file sẽ tăng lên nhiều rất khó khăn cho việc zoom pan và copy move…

Nếu không có hình 3D, mà chỉ nhìn vào sơ đồ nguyên lý làm việc thì người thợ sẽ cắt nát hết ống, gây lãng phí vật tư, thời gian và công sức.

 

@ anh Hiepttr : Em đã thử lisp của anh trong chủ đề:  http://www.cadviet.c...trong-3d/page-6

Trước tiên em phải cảm ơn và xin lỗi  anh Hiệp, vì em đã ngớ ngẩn “ra đề bài” không rõ ràng, khiến công hữu ích bị tổn thất -  > [Ϭưche] - vượt quá giới hạn ... ức chế cho phép!

1)- Lisp vẽ đường ống ve.lisp của anh rất hay ở chỗ  là  khi  cần vẽ ống và cút DN50, em nhâp đường kính ống 52 , lisp tự động vẽ ra được ống và cút  có layer Cut_DN50 và Ong_DN50.

Rất tiếc là khi em vẽ cần vẽ ống và cút DN20 thì lisp lại không tự động tạo ra đươc lay ống có layer Cut_DN20 và Ong_DN20

Em muốn anh chỉnh sửa lại  được không??? ( không cần phải đổi màu của layer anh ạ)

2)- Lisp tko_tkc cũng chưa ổn anh ạ!

Ý của em là khi vẽ xong bản tổng mới thống kê  tổng chiều dài của từng chủng loại ống và và số lượng cút.

a-) Gõ lệnh tko >>> chọn một đoạn ống DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các đoạn ống DN50 rời rạc thành một đối tượng  và cho biết tổng chiều dài ống

b-) Gõ lệnh tkc >>> chọn một cái cút DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các cút DN50 rời rạc thành một đối tượng  và cho biết tổng số  lượng cút.

Rất mong được bác Doan Van Ha, anh Hiepttr, bác Gia_bach cùng các bác viết lisp  trên diễn đàn quan tâm đến Em-Lisp vẽ đường ống 3D, em xin trân trọng cám ơn!


  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#8 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 31 October 2014 - 04:03 PM

@Bác Doan Van Ha:

Không phải phải là em có ý định xóa chủ đề : "Tổng hợp các lisp thường dùng cho dân khí...." (Em lập chủ đề ấy để dễ tìm kiếm).

 

Tự dưng cái Hoằn không hiểu ý của em  đã chen ngang  lisp khai triển cánh vít vào vị trí số 3. Lisp khai triển cánh vít ít dùng em tạm dừng lại, mặc dù anh Hiệp đã viết xong phần đầu là lisp xác định đường kính trung bình tính toán Dtb và dtb.

Em muốn giải quyết dứt điểm Lisp vẽ đường ống 3D trước (cần thiết hơn), sau đó sẽ trở lại nhờ các bác viết lisp khai triển cánh vít sau, bác ạ!

 

Em đã hiểu và xin rút kinh nghiệm, chị Hà ạ!

Dù sao thì em cũng cảm ơn anh Hiệp, đã cho ra lò Lisp xác định đường kính trung bình tính toán Dtb và dtb làm cơ sở để vẽ hình khai triển cánh vít :

http://www.cadviet.c...oat-nuoc/page-2

(Em cảm ơn anh Hiệp nhiều nhiều nhé! :) :) :) )


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#9 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 06 November 2014 - 09:30 AM

@ anh Hiepttr : Em đã thử lisp của anh trong chủ đề:  http://www.cadviet.c...trong-3d/page-6

Trước tiên em phải cảm ơn và xin lỗi  anh Hiệp, vì em đã ngớ ngẩn “ra đề bài” không rõ ràng, khiến công hữu ích bị tổn thất -  > [Ϭưche] - vượt quá giới hạn ... ức chế cho phép!

1)- Lisp vẽ đường ống ve.lisp của anh rất hay ở chỗ  là  khi  cần vẽ ống và cút DN50, em nhâp đường kính ống 52 , lisp tự động vẽ ra được ống và cút  có layer Cut_DN50 và Ong_DN50.

Rất tiếc là khi em vẽ cần vẽ ống và cút DN20 thì lisp lại không tự động tạo ra đươc lay ống có layer Cut_DN20 và Ong_DN20

Em muốn anh chỉnh sửa lại  được không??? ( không cần phải đổi màu của layer anh ạ)

2)- Lisp tko_tkc cũng chưa ổn anh ạ!

Ý của em là khi vẽ xong bản tổng mới thống kê  tổng chiều dài của từng chủng loại ống và và số lượng cút.

a-) Gõ lệnh tko >>> chọn một đoạn ống DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các đoạn ống DN50 rời rạc thành một đối tượng  và cho biết tổng chiều dài ống

b-) Gõ lệnh tkc >>> chọn một cái cút DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các cút DN50 rời rạc thành một đối tượng  và cho biết tổng số  lượng cút.

Rất mong được bác Doan Van Ha, anh Hiepttr, bác Gia_bach cùng các bác viết lisp  trên diễn đàn quan tâm đến Em-Lisp vẽ đường ống 3D, em xin trân trọng cám ơn!

 

Dạo này "hơi bị lụt" nên mình ít lên diễn đàn, bỏ bê việc học, nợ bài haanh ... :D :D :D

 

Mình có vài ý sau:

 

1. Theo cách đặt tên layer của haanh, khi người dùng nhập đường kính 52 hoặc 53 >>> đều cho ra các ống (cút) có layer tên là *_DN50   >>> Phân biệt thế nào ?! Và đặc biệt thống kê hơi bị vất vả (vì như mình đã nói từ trước là "Quá khó để moi thông tin của đối tượng là 3d solid từ bác Auto desk")

 

>>> Kiến nghị chủ nhiệm đồ án Haanh thay đổi cách đặt tên layer = "ống" + "đường kính" (hoặc "cút" + "đường kính" ).

 

>>> Sau này, việc thống kê số lượng cũng chỉ dựa vào cái tên này thôi !

 

Ưu điểm: đơn giản để code, rất có thể là code thống kê sẽ chạy nhanh hơn cách khác (VD: nổ ra để kiểm tra đường kính)

 

Nhược: Chỉ đánh giá qua tên layer, nên buộc người dùng phải thận trọng nếu là bản vẽ chắp nối mà có một vài em nằm ở layer khác thì sẽ dẫn đến thống kê sai.

 

2. Cách gì cũng có 2 mặt của nó:

 

Lisp thống kê mình viết ở trên buộc người dùng quét chọn vùng chứa đối tượng là chủ ý của mình để khỏi phải nhầm nếu có một vài bản nháp nằm rải rác đâu đó trên file. Nếu haanh chấp nhận cái "hên_xui" đó thì mình sửa !


  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#10 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 06 November 2014 - 11:19 AM

@ Hiepttr 

Tính chiều dài Solid :  Hiệp thử dùng Xdata (dữ liệu mở rộng) xem sao, anh thấy phần Xdata có trong bài học #7  không biết "nôi công" đến mức nào rồi ?

 

Cụ thể khi tạo Solid ta gán thêm giá trị chiều dài và đường kính vào Solid (dùng Xdata), khi truy xuất ta chỉ việc đọc giá trị này (nếu Solid không có Xdata -> thông báo gì đó ..)

 

Ưu : thông kê nhanh, không phụ thuộc Layer.

Nhược : nếu Solid không do Lisp này tạo ra (user tự tạo) thì sẽ không thống kê được.

 

- các hàm Xdata  : ACET-XDATA-GET, ACET-XDATA-SET, vla-getXdata, vla-setXdata


  • 3

#11 hunghv63

hunghv63

    biết pan

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

Đã gửi 06 November 2014 - 04:19 PM

Xdata là gì vậy ạ?


  • 0

ISTAR MOBILE - Địa chỉ thay màn hình iphone 6 plus uy tín số 1 tại Hà Nội


#12 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 06 November 2014 - 05:41 PM

Bác Gia_bach:

- Xdata có lợi thế hơn là chỉ khi có chủ ý thì mới thay đổi nó được, còn layer thì có thể vô tình sẻ bị "chạy lung tung" (VD: khi dùng lệnh MA) ---> đã vote

 

- Bác có thể cho em xin cấu trúc các hàm mà bác đã nêu ở trên ?!

"Nội công" vẫn chưa thể dùng đc :D :D :D


  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#13 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 07 November 2014 - 08:50 AM

Ví dụ tham khảo : 

(defun c:setX (/ ent)
  (setq XData_name "DuongOng_Xdata" dg_kinh 52 ch_dai 4500)
  (if (setq ent (entsel "\nSelect Object: "))
    (progn
      (vla-setXData
	(vlax-ename->vla-object (car ent))
	(vlax-safearray-fill (vlax-make-safearray vlax-vbInteger '(0 . 2)) (list 1001 1070 1040) )
	(vlax-safearray-fill (vlax-make-safearray vlax-vbVariant '(0 . 2))
	  (list (vlax-make-variant XData_name)
		(vlax-make-variant dg_kinh)		
		(vlax-make-variant ch_dai)) ) ) ) )
  (princ))
(defun c:getX (/ ent typ val)
  (if (setq ent (entsel "\nSelect Object: "))
    (progn
      (vla-getXData (vlax-ename->vla-object (car ent)) "" 'typ 'val)
      (if (or (not typ) (not val))
	(princ "\n** No XData Found **")
	(print (apply 'mapcar (cons 'cons (list (vlax-safearray->list typ)
						(mapcar 'vlax-variant-value
							(vlax-safearray->list val)))))))))
  (princ))

  • 3

#14 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 07 November 2014 - 11:04 AM

Mr gia_bach !

Bác thật "đáng ghét" !!! :D :D :D

Trong khi em bắc loa rêu rao, kêu cứu để được biết thêm về vla, vlax ... mấy hôm liền thì bác không "vác" đống này ra,

Giờ thì bác tung 1 đống hỏa mù (đối với mình) vậy chắc em nổ não quá :D

 

Trong cả đám đó, em chỉ biết mỗi "thằng" vlax-ename->vla-object, còn mấy "thằng" khác chỉ lơ mơ rằng hình như là kiểu dữ liệu gì gì đó :D :D :D

 

p/s: Tiện thể bác truyền cho em thêm tí nội lực về món vla, vlax ... này nhé ! Thanks !

 

Bác có thể nối tiếp vào đây hoặc là một vị trí mà bác cho là hợp lý !


  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#15 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 08 November 2014 - 08:51 AM

Lại hỏi nữa :D :D :D

 

Mò mấy hôm vẫn chưa thể thông, chỉ hiểu sơ sơ thế này, nhờ bác chỉ thêm giùm:

- SETX:

tạo dữ liệu mảng từ dữ liệu đầu vào và đưa vào hàm vla-setXData theo kiểu các mã dxf làm 1 list, value làm 1 list

 

>>>> Xin được hỏi: các mã 1001 1070 1040 lấy theo quy ước nào ?

 

- GETX:

dùng hàm vla-getXData để "cho ra" 2 mảng TYP và VAL rồi chuyển về kiểu dữ liệu list bình thường ==> in ra.

 

>>>> Hỏi: cấu trúc hàm vla-getXData luôn là như thế hay có biến tấu gì khác nữa không ?

 

p/s: Não sắp nổ, chống gậy chờ tin của bác :D :D :D


  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#16 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 08 November 2014 - 09:54 PM

>>>> Xin được hỏi: các mã 1001 1070 1040 lấy theo quy ước nào ?

- 1001 khai báo tên của Xdata bắt buộc phải có và đứng đầu

- 1000 khi kiểu của dữ liệu là chuỗi (string)

- 1070 khi kiểu của dữ liệu là số nguyên (16b)

- 1071 khi kiểu của dữ liệu là số nguyên (32b)

- 1040 khi kiểu của dữ liệu là số thực 

- 1003, 1042, 1010,1011 ...

 

 

>>>> Hỏi: cấu trúc hàm vla-getXData luôn là như thế hay có biến tấu gì khác nữa không ?

- không chắc là  vla-getXDatacó biến tấu gì nữa không (nhưng chưa thấy ai sử dụng)

- nhưng hàm vla-setXData thì đã thấy có nhiều biến tấu ! nhưng tìm hiểu làm gì cho "hại não"


  • 3

#17 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 09 November 2014 - 10:31 AM

 Sửa lsp ve.lsp theo yêu cầu số 1 của haanh.

 
(defun c:VE(/ lst_va old D ss lst_TC_DUC cao_tam_cut net R path cut base_w lst_ver lst_w obj i ss_ong ss_cut n len dau cuoi)
;ham bay loi
(setq temperr *error*)
(defun errorTrap (msg)
    (mapcar 'setvar lst_va old)
(cond
((tblsearch "ucs" "save_ucs") 
(command "ucs" "na" "r" "save_ucs")
(command "ucs" "na" "d" "save_ucs")
)
)
(cond
((tblsearch "ucs" "save1_ucs") 
(command "ucs" "na" "r" "save1_ucs")
(command "ucs" "na" "d" "save1_ucs")
)
)
    (setq *error* temperr)
(princ "\n*** Da set lai bien, OK ! ***")
    (princ)
)
(setq *error* errorTrap)
;======het ham bay loi = P1 ============================
(setq lst_va '("osmode" "cmdecho"))
(setq old (mapcar 'getvar lst_va))
(mapcar 'setvar lst_va '(0 0))
(command ".undo" "be")
;=================
(setq lst_TC_DUC '((12 . 26.0) (18 . 35.0) (22 . 40.0) (28 . 50.0) (35 . 55.0) (40 . 60.0) (52 . 70.0) (70 . 80.0)
  (85 . 90.0) (104 . 100.0) (129 . 187.5) (154 . 225.0) (204 . 300.0) (254 . 375.0))
      lst_fi_tcduc '((12 . "DN10") (18 . "DN15") (22 . "DN20") (28 . "DN25") (35 . "DN32") (40 . "DN40")
    (52 . "DN50") (70 . "DN65") (85 . "DN80") (104 . "DN100") (129 . "DN125")
    (154 . "DN150") (204 . "DN200") (254 . "DN250"))
      D (getdist (strcat "\nNhap duong kinh ong <"
(apply 'strcat (mapcar '(lambda (x) (strcat (itoa (car x)) " ")) lst_TC_DUC)) ">:"))
      Lay (cdr (assoc D lst_fi_tcduc))
      cao_tam_cut (cdr (assoc D lst_TC_DUC))
)
;=================
(prompt "\nChon 3DPOLY: ")
(setq ss (ssget "+.:E:S" '((0 . "POLYLINE"))))
(if (and
D
(member D (mapcar 'car lst_TC_DUC))
ss)
(progn
(or #lan_ve (setq #lan_ve 0))
(setq #lan_ve (1+ #lan_ve))
;ve cut mau:
(setq net (getvar "clayer"))
(if (tblsearch "layer" (strcat "Cut_" lay)) 
(setvar "clayer" (strcat "Cut_" lay)) 
(command "layer" "m" (strcat "Cut_" lay) "c" "t" "45,159,225" "" "")
) ;if
(command "arc" "c" '(0 0 0) (list cao_tam_cut 0 0) (list 0 cao_tam_cut 0))
(setq path (entlast))
(command "circle" '(0 0 0) (setq R (/ D 2.0)))
(command "sweep" (entlast) "" path)
(setq cut (entlast))
(setq base_w (mapcar '(lambda (x) (trans x 1 0)) (list (list cao_tam_cut 0 0) (list cao_tam_cut cao_tam_cut 0) (list 0 cao_tam_cut 0))))
;== xong cut mau ==
(if (tblsearch "layer" (strcat "Ong_" lay)) 
(setvar "clayer" (strcat "Ong_" lay)) 
(command "layer" "m" (strcat "Ong_" lay) "c" "t" "133,230,244" "" "")
) ;if 
;Luu UCS:
(command "ucs" "na" "s" "save1_ucs")
;(command "-view" "s" "save_v")
;*******************************
(setq lst_ver (acet-geom-vertex-list (setq ename (ssname ss 0)))
 lst_w (mapcar '(lambda (x) (trans x 1 0)) lst_ver)
 obj (vlax-ename->vla-object ename))
(setq i 0
 ss_ong (ssadd)
 ss_cut (ssadd)
 )
(repeat (setq n (1- (length lst_w)))
(setq len (distance (setq dau (nth i lst_w)) (setq cuoi (nth (1+ i) lst_w))))
(command "UCS" "za" (trans dau 0 1) (trans cuoi 0 1))
(cond
((= i 0) (command "CYLINDER" (trans dau 0 1) R (- len cao_tam_cut)) ;ve ong
(setq ss_ong (ssadd (entlast) ss_ong))
(3DDD cut  
(trans (car base_w) 0 1) 
(trans (cadr base_w) 0 1) 
(trans (last base_w) 0 1) 
(trans (vlax-curve-getPointAtDist obj (- (vlax-curve-getDistAtParam obj 1) cao_tam_cut)) 0 1) 
(trans (vlax-curve-getPointAtParam obj 1) 0 1) 
(trans (vlax-curve-getPointAtDist obj (+ (vlax-curve-getDistAtParam obj 1) cao_tam_cut)) 0 1)) ;align_copy cut
(setq ss_cut (ssadd (entlast) ss_cut))
)
((= i (1- n)) (command "CYLINDER" (mapcar '+ (list 0 0 cao_tam_cut) (trans dau 0 1)) R (- len cao_tam_cut)) ;ve ong
(setq ss_ong (ssadd (entlast) ss_ong))
) 
(t (command "CYLINDER" (mapcar '+ (list 0 0 cao_tam_cut) (trans dau 0 1)) R (- len (* 2 cao_tam_cut))) ;ve ong
(setq ss_ong (ssadd (entlast) ss_ong))
(3DDD cut 
(trans (car base_w) 0 1) 
(trans (cadr base_w) 0 1) 
(trans (last base_w) 0 1) 
(trans (vlax-curve-getPointAtDist obj (- (vlax-curve-getDistAtParam obj (1+ i)) cao_tam_cut)) 0 1) 
(trans (vlax-curve-getPointAtParam obj (1+ i)) 0 1) 
(trans (vlax-curve-getPointAtDist obj (+ (vlax-curve-getDistAtParam obj (1+ i)) cao_tam_cut)) 0 1)) ;align_copy cut
(setq ss_cut (ssadd (entlast) ss_cut))
)
)
(setq i (1+ i))
) ;repeat
(command ".ERASE" cut "")
(command ".ERASE" path "")
(command ".ERASE" ss "")
(command "ucs" "na" "r" "save1_ucs")
(command "ucs" "na" "d" "save1_ucs")
(setvar "clayer" net)
)
(alert "***** Nhap du lieu chua dung ! *****")
)
(command ".undo" "end")
(setq *error* temperr) ;tra ham erorr nguyen thuy
(mapcar 'setvar lst_va old)
(princ)
)
(vl-load-com)
;*****************************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;=============================================================================================================================
(defun 3DDD(ss pt_a pt_b pt_c pt_1 pt_2 pt_3 / lst_va old lst_point_w moc new pre
huong_12_xoy huong_13_xoy huong_ab_xoy huong_ac_xoy 
huong_12_yoz huong_13_yoz huong_ab_yoz huong_ac_yoz 
huong_12_xoz huong_13_xoz huong_ab_xoz huong_ac_xoz 
pt_phu pt_phu_w pt_phu2 pt_phu2_w base truc truc_w ang anh anh_c anh_w pt_phu2_2d pt_phu2_w_3d pt_phu_2d pt_phu_3d pt_phu_w_3d)
;Ham 3dalign khong scale Voi 3 diem chon phai "bang nhau" ve kich thuoc hinh dang
(setq lst_va '("osmode" "cmdecho" "AUNITS" "ANGDIR"))
(setq old (mapcar 'getvar lst_va))
(mapcar 'setvar lst_va '(0 0 3 0))
(setq lst_point_w (mapcar '(lambda (x) (trans x 1 0)) (list pt_a pt_b pt_c pt_1 pt_2 pt_3)))
(command "ucs" "na" "s" "save_ucs")
;(command "-view" "s" "save_v")
(setq moc (entlast) 
 new (ssadd))
(command "_.copy" ss "" pt_a pt_1)
(while (setq pre (entnext moc))
(setq new (ssadd pre new)
 moc pre)
) ;while
;======================================================================
;Kiem tra trung phuong, chieu
(command "ucs" "za" '(0 0 0) '(2.357 1.312 4.235))
(setq huong_12_xoy (angle (nth 3 lst_point_w) (nth 4 lst_point_w))
 huong_13_xoy (angle (nth 3 lst_point_w) (nth 5 lst_point_w))
 huong_ab_xoy (angle (nth 0 lst_point_w) (nth 1 lst_point_w))
 huong_ac_xoy (angle (nth 0 lst_point_w) (nth 2 lst_point_w))
 )
(command "ucs" "za" '(0 0 0) '(1 0 0))
(setq huong_12_yoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 4 lst_point_w) 0 1))
 huong_13_yoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 5 lst_point_w) 0 1))
 huong_ab_yoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 1 lst_point_w) 0 1))
 huong_ac_yoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 2 lst_point_w) 0 1))
 )
(command "ucs" "za" '(0 0 0) '(1 0 0))
(setq huong_12_xoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 4 lst_point_w) 0 1))
 huong_13_xoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 5 lst_point_w) 0 1))
 huong_ab_xoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 1 lst_point_w) 0 1))
 huong_ac_xoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 2 lst_point_w) 0 1))
 )
(command "ucs" "na" "r" "save_ucs")
;=====================================================================
(cond
((and 
(equal huong_12_xoy huong_ab_xoy 1e-5) 
(equal huong_12_yoz huong_ab_yoz 1e-5)
(equal huong_12_xoz huong_ab_xoz 1e-5)
)
(cond
((and 
(equal huong_13_xoy huong_ac_xoy 1e-5) 
(equal huong_13_yoz huong_ac_yoz 1e-5)
(equal huong_13_xoz huong_ac_xoz 1e-5)
)
(princ "\nAlign = Copy ! ")
(princ)
)
(t 
(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
 pt_phu_w (trans pt_phu 1 0))
(command "ucs" "za" pt_1 pt_2)
(command "rotate" new "" 
(setq base (trans (nth 3 lst_point_w) 0 1))
(- (angle base (trans (nth 5 lst_point_w) 0 1)) (angle base (trans pt_phu_w 0 1)))
)
)
)
)
;========================================================
((and 
(or (equal (+ huong_12_xoy pi) huong_ab_xoy 1e-5) (equal (- huong_12_xoy pi) huong_ab_xoy 1e-5))
(or (equal (+ huong_12_yoz pi) huong_ab_yoz 1e-5) (equal (- huong_12_yoz pi) huong_ab_yoz 1e-5))
(or (equal (+ huong_12_xoz pi) huong_ab_xoz 1e-5) (equal (- huong_12_xoz pi) huong_ab_xoz 1e-5))
)
(setq truc (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
 truc_w (trans truc 1 0))
(setq anh (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
 anh_w (trans anh 1 0))
(command "ucs" "za" pt_1 truc)
(command "rotate" new "" (setq base (trans (nth 3 lst_point_w) 0 1)) pi)
(setq pt_phu2_2d
(polar 
base 
(+ pi (angle base (setq anh_c (trans anh_w 0 1)))) 
(distance base (list (car anh_c) (cadr anh_c)))
)
pt_phu2_w_3d (trans (list (car pt_phu2_2d) (cadr pt_phu2_2d) (last anh_c)) 1 0)
)
(cond
((and 
(equal huong_13_xoy huong_ac_xoy 1e-5) 
(equal huong_13_yoz huong_ac_yoz 1e-5)
(equal huong_13_xoz huong_ac_xoz 1e-5)
)
(princ)
)
((and 
(or (equal (+ huong_13_xoy pi) huong_ac_xoy 1e-5) (equal (- huong_13_xoy pi) huong_ac_xoy 1e-5))
(or (equal (+ huong_13_yoz pi) huong_ac_yoz 1e-5) (equal (- huong_13_yoz pi) huong_ac_yoz 1e-5))
(or (equal (+ huong_13_xoz pi) huong_ac_xoz 1e-5) (equal (- huong_13_xoz pi) huong_ac_xoz 1e-5))
)
(command "ucs" "za" base (mapcar '(lambda (x) (* 0.5 x)) (mapcar '+ (trans pt_phu2_w_3d 0 1) (trans (nth 4 lst_point_w) 0 1))))
(command "rotate" new "" (trans (nth 3 lst_point_w) 0 1) pi)
)
(t 
(command "ucs" "3p" base (trans (nth 5 lst_point_w) 0 1) (trans truc_w 0 1))
(command "rotate" new ""
(setq base (trans (nth 3 lst_point_w) 0 1))
(* -1 (angle base (trans truc_w 0 1)))
)
)
)
)
;==================================================================
(t 
(cond
((and 
(equal huong_13_xoy huong_ac_xoy 1e-5) 
(equal huong_13_yoz huong_ac_yoz 1e-5)
(equal huong_13_xoz huong_ac_xoz 1e-5)
)
(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
 pt_phu_w (trans pt_phu 1 0))
(command "ucs" "za" pt_1 pt_3)
(command "rotate" new "" 
(setq base (trans (nth 3 lst_point_w) 0 1))
(- (angle base (trans (nth 4 lst_point_w) 0 1)) (angle base (trans pt_phu_w 0 1)))
)
)
((and 
(or (equal (+ huong_13_xoy pi) huong_ac_xoy 1e-5) (equal (- huong_13_xoy pi) huong_ac_xoy 1e-5))
(or (equal (+ huong_13_yoz pi) huong_ac_yoz 1e-5) (equal (- huong_13_yoz pi) huong_ac_yoz 1e-5))
(or (equal (+ huong_13_xoz pi) huong_ac_xoz 1e-5) (equal (- huong_13_xoz pi) huong_ac_xoz 1e-5))
)
(setq truc (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
 truc_w (trans truc 1 0))
(setq anh (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
 anh_w (trans anh 1 0))
(command "ucs" "za" pt_1 truc)
(command "rotate" new "" (setq base (trans (nth 3 lst_point_w) 0 1)) pi)
(command "ucs" "3p" base (trans (nth 4 lst_point_w) 0 1) (trans truc_w 0 1))
(command "rotate" new ""
(setq base (trans (nth 3 lst_point_w) 0 1))
(* -1 (angle base (trans truc_w 0 1)))
)
)
(t
(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
 pt_phu_w (trans pt_phu 1 0)
 pt_phu2 (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
 pt_phu2_w (trans pt_phu2 1 0))
(command "ucs" "3p" pt_1 pt_2 pt_phu)
(command "rotate" new "" 
(setq base (trans (nth 3 lst_point_w) 0 1)) 
(setq ang (* -1 (angle base (trans pt_phu_w 0 1))))
)
(setq pt_phu_2d 
(polar 
base 
(+ ang (angle base (setq anh_c (trans pt_phu2_w 0 1)))) 
(distance (list (car base) (cadr base)) (list (car anh_c) (cadr anh_c))))
 pt_phu_3d (list (car pt_phu_2d) (cadr pt_phu_2d) (last anh_c))
 pt_phu_w_3d (trans pt_phu_3d 1 0))
(command "ucs" "za" (trans (nth 3  lst_point_w) 0 1) (trans (nth 4  lst_point_w) 0 1))
(command "rotate" new "" 
(setq base (trans (nth 3 lst_point_w) 0 1))
(- (angle base (trans (nth 5 lst_point_w) 0 1)) (angle base (trans pt_phu_w_3d 0 1)))
)
)
)
)
)
(command "ucs" "na" "r" "save_ucs")
(command "ucs" "na" "d" "save_ucs")
;(command "-view" "r" "save_v")
;(command "-view" "d" "save_v")
(mapcar 'setvar lst_va old)
(princ)
)
 

  • 2

#18 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 09 November 2014 - 11:17 AM

Sửa lsp tko_tkc. Tôi thấy k cần group nó lại vì nếu group thì lần sau nhỡ quơ nhầm nó thì nó sẽ tính 2 lần. Vả lại bây giờ các ống cút đã nằm trong các layer khác nhau rồi, nó sẽ phân biệt theo layer.

;Lisp thong ke ong; cut trong he thong duong ong
(defun c:TKO( / lst_va old sam D ss lst tong L)
(setq lst_va '("osmode" "cmdecho"))
(setq old (mapcar 'getvar lst_va))
(mapcar 'setvar lst_va '(17 0))
(or #lan_TK (setq #lan_TK 0))
(setq #lan_TK (1+ #lan_TK))
 
(setq sam (assoc 8 (entget (car (entsel "\nChon ong mau: "))))
      lst_fi_tcduc '((12 . "DN10") (18 . "DN15") (22 . "DN20") (28 . "DN25") (35 . "DN32") (40 . "DN40")
    (52 . "DN50") (70 . "DN65") (85 . "DN80") (104 . "DN100") (129 . "DN125")
    (154 . "DN150") (204 . "DN200") (254 . "DN250"))
      D (caar (vl-remove-if-not '(lambda (x) (vl-string-search (cdr x) (cdr sam))) lst_fi_tcduc))
)
(prompt "\Chon cac ong can thong ke chieu dai: ")
(setq ss (ssget (list '(0 . "3DSOLID") sam))
      lst (ss2lst ss)
      tong 0)
(foreach elem lst
(command ".area" "o" elem)
(setq S (getvar 'area)
     L (/ (- S (* 2 pi 0.25 D D)) (* pi D))
     tong (+ L tong))
) ;for
;;;(command "group" "c" (strcat "Ong_" (rtos (getvar 'cdate) 2 0) (itoa #lan_TK)) "Group_ong" ss "")
(princ (strcat "\nTong chieu dai " (cdr sam) " la: " (rtos tong 2 3) " (don vi ve)"))
(mapcar 'setvar lst_va old)
(princ)
)
;===================================================================
;Lisp thong ke cut
(defun c:TKC( / sam ss cmd)
(setq cmd (getvar 'cmdecho))
(setvar 'cmdecho 0)
(or #lan_TK (setq #lan_TK 0))
(setq #lan_TK (1+ #lan_TK))
(setq sam (assoc 8 (entget(car(entsel "\nChon cut mau: ")))))
(prompt "\Chon cac cut can thong ke so luong: ")
(setq ss (ssget (list '(0 . "3DSOLID") sam)))
;;;(command "group" "c" (strcat "Cut_" (rtos (getvar 'cdate) 2 0) (itoa #lan_TK)) "Group_cut" ss "")
(princ (strcat "\nTong so " (cdr sam) " la: " (itoa (sslength ss)) " (cai)"))
(setvar 'cmdecho cmd)
(princ)
)
;===================================================================
(defun ss2lst (ss / ename i lst)
;chuyen ss thanh list
(setq i 0)
(repeat (sslength ss)
(setq ename (ssname ss i)
 i (1+ i)
 lst (cons ename lst))
)
(reverse lst)
)
 

  • 2

#19 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 10 November 2014 - 12:07 AM

Em rất vui và cảm ơn nhiều  khi được bác Tot77 ghé thăm lều quán nhà em! :) :) :)

1- Về ve.lisp:

VE.Lisp của bác rất hoành tráng khi hiện ra hình một dãy chữ số chỉ đường kính ống trên dòng Command hiền hòa và thơ mộng!

Nhap duong kinh ong <12 18 22 28 35 40 52 70 85 104 129 154 204 254 >: 52

Hơi bị tiếc là không quét chọn nhiều đoạn 3dpoly cùng một lúc, mà chỉ bấm chọn được 1 đoạn.

Vẽ xong 1 đoạn rồi, muốn vẽ tiếp đoạn thứ 2 nó bắt phải nhập số lại, hơi bị mất thới gian...

Em muốn, sau khi nhập số có thể quét chọn được nhiều anh 3dpoly cùng một lúc có được không???

Khi đó dòng Command sẽ là: [12\ 18\ 22\ 28\ 35\ 40\ 52\ 70\ 85\ 104\129\ 154\ 204 \254] <52>:để có thể quét chọn đồng loạt nhiều anh 3dpoly và có thể dùng để vẽ đường ống 52 được nhiều lần mà không phải nhập lại đường kính ống.

 

2- Về tko_tkc.lisp:

Cách thống kê thủ công của em như sau, khi vẽ bản tổng, em copy thêm một bản vẽ nữa để thống kê:

- Với ống: Em tắt hết cả các layer chỉ để lại  ống layer DN50 duy nhất >>>Gõ lệnh Union để liên kết thành một khối rồi tính thể tích >>> chia cho diện tích tiết diện ngang của ống sẽ ra chiều dài.

(Hiện em chỉ biết tắt từng layer một hơi mất thời gian, không biết là có lisp nào tắt đồng loạt tất cả các layer chỉ để lại 1 layer hiện hành không???)

- Với cút : em sẽ tắt layer ống DN50 rồi mở layer cút DN50 >>> Em chỉ việc nhấn phím Ctrl+A rồi gõ M là sẽ biết được số lượng cút là 325 cái

Command: _ai_selall Selecting objects...done.
Command: m
MOVE 325 found

"Ý của em là khi vẽ xong bản tổng mới thống kê  tổng chiều dài của từng chủng loại ống và và số lượng cút.

a-) Gõ lệnh tko >>> chọn một đoạn ống DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các đoạn ống DN50 rời rạc thành một đối tượng  và cho biết tổng chiều dài ống

b-) Gõ lệnh tkc >>> chọn một cái cút DN50 bất kỳ >>>Lisp sẽ tự động Union tất cả các cút DN50 rời rạc thành một đối tượng  và cho biết tổng số  lượng cút." Không biết lisp có thực hiện được không???(Em muốn Union các đối tượng rời rạc thành một khối để dễ thực hiện zoom,pan, copy,move và in ấn...vì dung lượng bản tổng thường từ 40MB-50MB)

Lều quán nhà em luôn có chè sen rượu nồng và đặc biệt là điếu cày kêu rất giòn, em rất hân hạnh được đón tiếp và hầu chuyện các bác viết lisp theo yêu cầu trên diễn đàn ghé chơi!

Dạo này "hơi bị lụt" nên mình ít lên diễn đàn, bỏ bê việc học, nợ bài haanh ... :D :D :D

Vậy mà em cứ linh cảm anh bận đi hưởng tuần trăng mật ở một hòn đảo thơ mộng nào đó rất xa xôi ...Không thấy anh hồi  âm, em cứ ấm ức đến phát khóc lên được vì cứ ngỡ anh lấy vợ mà tiếc tiền không gửi cho em một lá thiếp hồng... :wub: :wub:

 

Em đã hiểu và xin rút kinh nghiệm, chị Hà ạ!

Chị biết, Hoằn có thời gian rảnh rổi , ẩn hiện như ma xó lê la khắp hang cùng ngõ hẻm của làng CADViet.com để buôn dưa lê bán dưa chuột. Vậy mà không thấy Hoằn lai vãng tới lều quán của chị, vì sao vậy hả Hoằn???


  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#20 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 10 November 2014 - 07:31 AM

(Hiện em chỉ biết tắt từng layer một hơi mất thời gian, không biết là có lisp nào tắt đồng loạt tất cả các layer chỉ để lại 1 layer hiện hành không???)

Chắc câu này là haanh đang để thử kiểm tra xem ai đang vào "lều" của mình ?!

Mình nghĩ haanh thì không thể chưa xài đến LAYISO


  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson