Đến nội dung


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

[Yêu cầu] Lisp tạo viewport từ khung chọn bên model.


  • Please log in to reply
131 replies to this topic

#41 anhbkhcm

anhbkhcm

    biết vẽ circle

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

Đã gửi 28 January 2013 - 08:12 AM

ĐÚNG VẬY ĐÓ Nhoclangbat. tỷ lệ in thì tạo kích thước khung từ mode. qua layout chỉ việc in thôi.
  • 0

#42 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 January 2013 - 09:10 AM

Ý này cũng hay nhưng nhoc phải ngiên cứu tip, nếu bạn KangKung quay lại có thể giúp bạn nhanh hơn^^.
Tuy nhiên theo quan điểm của nhoc nó ko cần thiết lắm như bài trên nhoc nói nó sẽ rối. Vd như file antay của bạn chia tuyến đó thành 4 tờ, nhoc nghĩ nếu bạn in tỷ lệ 1:1, mà thường khi xuất qua layout rùi thì đều in với tỉ lệ 1:1 thì cũng rất là lớn với máy in khổ bự cũng vượt khung A0, bản đồ sẽ in ra sẽ dài thòn^^, nhoc cũng từng in những loại hồ sơ vậy, nên nếu chọn trước khổ cũng chỉ tới A0 là cùng, ngoài vị trí bạn chọn nhìn bên model ko nhẽ qua layout bạn ko cần thêm khung tiêu đề cho mỗi bản sao, các khung của bạn cùng nằm trên 1 layout thì nhoc nghĩ rất khó định hết 1 lúc đc, bạn cứ dùng lệnh in cho từng bản rùi chỉnh cũng đc mà dễ theo dõi quản lý với lại mỗi tờ nhic đoán bạn cũng phải in ít nhất 5 bản vì thế cứ ngồi chơi đọc báo, kêu cafe làm điếu thuốc mà chờ :D, công đoạn vất vả nhất là xử ký bên model đã xong đến phần in thì ko có gì phải vội cả ^^
Ps: vài dòng kinh nghiệm ít ỏi của nhoc, nếu có gì ko hợp với nghiệp vụ của bạn mong bạn thứ lỗi ^^
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#43 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 January 2013 - 10:08 AM

Lisp mlt đặt tỉ lệ in và nêm thêm thiết đặt khổ giấy đi bạn.
Cám ơn

Chào bạn tientracdia
Bạn xem lại #19 nhé. Lisp mtl_rev2 của mình đã bao gồm lựa chọn đặt tỉ lệ in và khổ giấy in rồi mà. Ví dụ bạn muốn in tỉ lệ 1/1000 thì khi Lisp hỏi tỉ lệ bạn chỉ cần nhập 1, còn tỉ lệ 1/2000 bạn nhập 2 ….
@Nhoclangbat
Hình như nhoclangbat hiểu nhầm về tỉ lệ trong Layout. Bản chất của Layout là dùng để in ấn, vì thế ta có thể coi Layout như là một bản vẽ giấy tuy nhiên có điểm hơi khác ở đây là Layout có thể Zoom to nhỏ được còn bản vẽ đã in ra giấy rồi thì không trừ khi bạn nhìn bản vẽ giấy qua kính hiển vi :D. Vì vậy nếu bạn in bản vẽ A4 (297x210) thì khổ giấy trên Layout cũng phải là A4 (297x210) cho dù bạn có in tỉ lệ nào đi nữa thì kích thước này vẫn không thay đổi. Tất nhiên bạn có thể phóng to khổ giấy trên Layout lên 2 lần khi tỉ lệ in là 1/2000 nhưng khi Plot bạn sẽ phải chọn tỉ lệ in là 1:2. Vậy là bạn đã phóng to kích thước khổ giấy lên 2 lần và khi in bạn lại thu nhỏ đi 2 lần thay vì bạn để nguyên khổ giấy. Mình đã thử Lisp của Nhoclangbat sửa lại với tỉ lệ 1/2000 thì khổ giấy bị tăng lên 2 lần. Điều này dễ gây hiểu nhầm về khổ giấy khi người dùng không chú ý đến tên khổ giấy mà chỉ đo kích thước phần trắng trong layout.
  • 2

#44 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 28 January 2013 - 10:54 AM

Hay quá Bạn ơi. Bạn Thật siêu sao. Cảm ơn Bạn Rất rất nhiều. trên forum mình vãn còn một yêu cầu viết lisp ghi chú điểm. bạn xem giúp mình với.

À, cái này thì hay, nếu bổ sung thiết đặt khổ giấy thì tuyệt vời hơn................. Thêm thiết đặt khổ giấy đi bạn. Cám ơn nhiều nhiều... lắm
  • 0

#45 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 January 2013 - 11:01 AM

À, cái này thì hay, nếu bổ sung thiết đặt khổ giấy thì tuyệt vời hơn................. Thêm thiết đặt khổ giấy đi bạn. Cám ơn nhiều nhiều... lắm


Mình vẫn chưa hiểu ý bạn. Thiết đặt khổ giấy như thế nào? Bạn nói rõ hơn được không?
  • 0

#46 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 28 January 2013 - 11:11 AM


Mình vẫn chưa hiểu ý bạn. Thiết đặt khổ giấy như thế nào? Bạn nói rõ hơn được không?

Mình muốn là sao khi chon khung bên moden, lisp đặt tên layout, đặt tỉ lệ in, và đặt khổ giấy cần in. Lúc đó lisp chuyển nội dung đã chọn trên moden vào trong khung nhìn của khổ giấy mình đặt. mong bạn giúp
  • 0

#47 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 January 2013 - 11:39 AM

ko bit bạn KangKung tải lsp nào nhoc sữa nhỉ, lsp #30 mới đúng. Có lẽ nhoc trình bày ko rõ ràng làm bạn hỉu nhầm :D
Việc nhoc sữa lại việc định tỉ lệ khung viewport mặc định là 1000, vì nhoc áp dụng theo tỉ lệ bản đồ, chỗ nhoc quy ước 1unit = 1mm trên cad bên model = 1m ngoài thực địa. Lấy Vd file bạn anhbkhcm đưa lên là 1 tuyến đường mục đích làm gì nhoc ko pit nhưng nó là dạng bản đồ thì có thể cách quy ước giống nhoc. Vì thế khi xác định khung bên model những phần cần xuất trở thành khung nhìn đúng những phần đó bên layout, thì việc đó còn phụ thuộc bạn ấy mún biên tập bản đồ đó với tỉ lệ bao nhiêu đã, nếu bạn ấy mún biên tập vùng đc chọn 1/500 thì tức là khi xuất qua layout thì khung nhìn viewport vùng đó phải zoom lên 2 lần nói cách khác scale lên 2 lần thì đường nhiên kích khung bạn ấy chọn bên model wa lauout kích thước khung đó to lên 2 lần mới đảm bảo nhìn hết đc vùng bạn ấy cần đúng ko ^^. Và thường khi đã dùng layout thì người ta đều sẽ in với tỉ lệ 1:1 trong phần set đặt lúc in. Vi thế việc đặt trước khỗ giấy có thể hơi rối, theo ví dụ trên biên tập 1/500, đối với máy in khỗ lớn chiều rộng giấy tối đa chỉ đc 860mm còn chiều dài thì vô tư tùy cuộn giấy cỡ dài nào, ví dụ biên tập 1/500 đúng khung bạn ấy vẽ, chiều rộng khung viewport nhỏ hơn 860 ok, còn nếu phần thể hiện dài hơn 1189 thì vược qua khổ A0 rùi, vì thế phải custom riêng. Vì thề mún nó nằm trong khổ phải xem lại nên biên tập tỉ lệ bao nhiêu là vừa hay cách khác là chia nhỏ vùng đó ra thêm nếu vẫn mún biên tập 1/500. >>>> trong lsp cho chọn khổ A3, mà tỉ lệ viewport lớn, in tỉ lệ 1:1 khi in sẽ vượt khổ rùi vì vùng chọn lớn hơn A3 mà >>> chọn khổ khác, còn nếu mún vừa thì lại phải định lại tỉ lệ lúc in ko còn là 1:1 nữa >>>in ra sẽ ko còn đúng tỉ lệ mún thể hiện trên giấy
Ps: bạn KangKung chuyên ngành gì nhỉ ^^, có lẽ cách hỉu của nhoc khác của bạn nên vậy :D, nếu nhoc hỉu sai thì mấy bản vẽ nhoc làm từ đó giờ phát hành cho khách tong hết rùi ^^
  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#48 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 January 2013 - 12:04 PM

Mình muốn là sao khi chon khung bên moden, lisp đặt tên layout, đặt tỉ lệ in, và đặt khổ giấy cần in. Lúc đó lisp chuyển nội dung đã chọn trên moden vào trong khung nhìn của khổ giấy mình đặt. mong bạn giúp

trong lsp đã có phần đặt tên cho layout nha bạn, đặt tỉ lệ in hay tỉ lệ khung view ?? nếu đặt tỉ lệ in là có thêm yêu cầu hỏi chọn tỉ lệ in là bao nhiu ah, đặt khổ giấy thì trong 1 số lsp trong topic này đã có bạn ah, chỉ cần copy thêm vào :D
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#49 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 January 2013 - 12:21 PM

Ah bạn KangKung cho nhoc hỏi tí, tác dụng của lsp thì ko có gì phải bàn :D, nhưng nhoc thắc mắc nếu đã sử dụng layout tức là các viewport có tác dụng hiển thị đúng các phần chi tiết, v...v bên model cái nào ra cái đó theo tỉ lệ mong mún cho từng khung >>>> vậy khung bản vẽ mình nên vẽ bên layout phải ko, khung bản bản vẽ sẽ bao các khung viewport đã tạo, nếu như lsp thì chỉ in đúng khung view tạo ra thì nhìn nó trơ trụi wá ^^ phải ko ta, mà nếu đã vẽ khung tên bên model rùi thì in lun bên model cần gì xuất qua layout nhỉ :D, nếu đã vẽ khung bên layout mà mún lsp chọn đúg khung tên ấy để set plot area nhoc chưa nghĩ ra lsp có thể làm đc không cái này nhờ bạn KangKung nghiên cứu ^^. >>>> các yêu cầu thêm khổ giấy và set vùng in hay tỉ lệ in nhoc thấy ko cần lắm ^^.
Ps: trong trường hợp này nhoc thấy nên sử dụng lsp theo đúng yêu cầu chủ đề các bạn tạo "lsp tạo viewport từ khung chọn bên model" , các cải tiến như tùy số lượng khung xuất mỗi khung là các layout khác nhau hay chung 1 layout và chọn tỉ lệ zoom của khung view là đủ xài (khóa lun khung view sau khi tạo xong) ^^. Nếu những nhoc nói có làm phật lòng mấy bạn cũng đừng giận nhoc lâu hen, dislike là đc rùi :D

  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#50 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 January 2013 - 02:17 PM

Ah bạn KangKung cho nhoc hỏi tí, tác dụng của lsp thì ko có gì phải bàn :D, nhưng nhoc thắc mắc nếu đã sử dụng layout tức là các viewport có tác dụng hiển thị đúng các phần chi tiết, v...v bên model cái nào ra cái đó theo tỉ lệ mong mún cho từng khung >>>> vậy khung bản vẽ mình nên vẽ bên layout phải ko, khung bản bản vẽ sẽ bao các khung viewport đã tạo, nếu như lsp thì chỉ in đúng khung view tạo ra thì nhìn nó trơ trụi wá ^^ phải ko ta, mà nếu đã vẽ khung tên bên model rùi thì in lun bên model cần gì xuất qua layout nhỉ :D, nếu đã vẽ khung bên layout mà mún lsp chọn đúg khung tên ấy để set plot area nhoc chưa nghĩ ra lsp có thể làm đc không cái này nhờ bạn KangKung nghiên cứu ^^. >>>> các yêu cầu thêm khổ giấy và set vùng in hay tỉ lệ in nhoc thấy ko cần lắm ^^.
Ps: trong trường hợp này nhoc thấy nên sử dụng lsp theo đúng yêu cầu chủ đề các bạn tạo "lsp tạo viewport từ khung chọn bên model" , các cải tiến như tùy số lượng khung xuất mỗi khung là các layout khác nhau hay chung 1 layout và chọn tỉ lệ zoom của khung view là đủ xài (khóa lun khung view sau khi tạo xong) ^^. Nếu những nhoc nói có làm phật lòng mấy bạn cũng đừng giận nhoc lâu hen, dislike là đc rùi :D

Hi Nhoclangbat
Câu hỏi của Nhoc rất hay. Thông thường đối với khu vực in nhỏ gói gọn trong 1 khung bản vẽ thì việc in ấn bên Model hay Layout không khác nhau lắm. Lúc đó chỉ việc nhúng khung tên vào Model hoặc Layout rồi in thôi. Còn đối với những khu vực in lớn (bình đồ tuyến chẳng hạn…) thì không thể nhúng khung tên vào bên Model được vì phần ghi chú của khung tên(tên bản vẽ, kí hiệu…) sẽ đè lên một phần nội dung in (của bản in khác), vì thế in ấn trong Layout là cách tốt nhất để giải quyết việc này.
Vì yêu cầu của chủ Topic là "lsp tạo viewport từ khung chọn bên model" và không nói đến việc đặt khung tên cho các Layout tạo ra nên mình không đưa vào. Còn nếu muốn đưa khung tên thì sẽ cho Lisp thêm 1 option nữa là chọn khung tên hoặc chọn file có chứa khung tên trong đó rồi sau đó nhúng vào tất cả các Layout là xong. Việc đặt plot area sẽ không đặt theo viewport nữa mà đặt theo kích thước của khung tên. Điều này Lisp có thể làm được.
PS: Mình làm về trắc địa Nhoclangbat ah. Cách sử dụng Layout của Nhoc và mình có thể khác nhau nhưng với cùng một bản vẽ và cùng tỉ lệ in thì kết quả in ra giấy giống nhau là được.
  • 1

#51 anhbkhcm

anhbkhcm

    biết vẽ circle

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

Đã gửi 28 January 2013 - 02:41 PM

Ah bạn KangKung cho nhoc hỏi tí, tác dụng của lsp thì ko có gì phải bàn :D, nhưng nhoc thắc mắc nếu đã sử dụng layout tức là các viewport có tác dụng hiển thị đúng các phần chi tiết, v...v bên model cái nào ra cái đó theo tỉ lệ mong mún cho từng khung >>>> vậy khung bản vẽ mình nên vẽ bên layout phải ko, khung bản bản vẽ sẽ bao các khung viewport đã tạo, nếu như lsp thì chỉ in đúng khung view tạo ra thì nhìn nó trơ trụi wá ^^ phải ko ta, mà nếu đã vẽ khung tên bên model rùi thì in lun bên model cần gì xuất qua layout nhỉ :D, nếu đã vẽ khung bên layout mà mún lsp chọn đúg khung tên ấy để set plot area nhoc chưa nghĩ ra lsp có thể làm đc không cái này nhờ bạn KangKung nghiên cứu ^^. >>>> các yêu cầu thêm khổ giấy và set vùng in hay tỉ lệ in nhoc thấy ko cần lắm ^^.
Ps: trong trường hợp này nhoc thấy nên sử dụng lsp theo đúng yêu cầu chủ đề các bạn tạo "lsp tạo viewport từ khung chọn bên model" , các cải tiến như tùy số lượng khung xuất mỗi khung là các layout khác nhau hay chung 1 layout và chọn tỉ lệ zoom của khung view là đủ xài (khóa lun khung view sau khi tạo xong) ^^. Nếu những nhoc nói có làm phật lòng mấy bạn cũng đừng giận nhoc lâu hen, dislike là đc rùi :D

Bạn Nhoclangbat thân mến.
- lsp #30 của bạn thì ok. tuy nhiên nếu bản vẽ có 1 khung ngang nằm kề 1 khung đứng (giáp mảnh) thì nó qua layout bị chồng lên nhau.
có cách nào sửa lại cho nó qua layout dù ngang hay đứng đều cách nhau 1 khoảng là 50m không?
- còn đưa qua layout ví dụ 1 bình đồ tuyến dài. ví dụ file antay1 mà mình post lên. thì in khổ A3. nếu vẫn dùng model để in thì phải coppy từng mảnh ra rồi ráp khung ngoài vào. thì dĩ nhiên file sẽ nặng gấp 2 lần. mà qui trình làm lâu hơn. thiếu chuyên nghiệp.
  • 0

#52 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 January 2013 - 02:52 PM

Lại làm mình nhớ đến cái OnePlot đã làm từ lâu ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#53 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 January 2013 - 04:18 PM

Bạn Nhoclangbat thân mến.
- lsp #30 của bạn thì ok. tuy nhiên nếu bản vẽ có 1 khung ngang nằm kề 1 khung đứng (giáp mảnh) thì nó qua layout bị chồng lên nhau.
có cách nào sửa lại cho nó qua layout dù ngang hay đứng đều cách nhau 1 khoảng là 50m không?
- còn đưa qua layout ví dụ 1 bình đồ tuyến dài. ví dụ file antay1 mà mình post lên. thì in khổ A3. nếu vẫn dùng model để in thì phải coppy từng mảnh ra rồi ráp khung ngoài vào. thì dĩ nhiên file sẽ nặng gấp 2 lần. mà qui trình làm lâu hơn. thiếu chuyên nghiệp.

Cái nì nhoc chưa đủ level để xử liên hệ bạn KangKung để đc giúp đỡ ^^, nhoc mò lại thì thấy nếu có nhiều khung chọn bên model thì hình dáng khung đầu tiên mình chọn sẽ quyết định tất cả các khung còn lại cùng kích thước và hình dáng ^^ khung đầu tiên, nếu bạn KangKung có thể sữa chọn khung nào copy đúng khung đó qua layout, nhoc nghĩ cũng ko cần thiết cách nhau 50 mà thêm tùy chọn điểm chèn cho từng khung thì hay hơn. Nói vậy thui chứ nhoc ko có yêu cầu thêm đâu ^^, tạm thời vậy là đủ xài rùi ^^, khi nào đủ level tự sữa đc mới sướng :D, mà với layout nhoc cũng quen tùy chỉnh kiủ thổ rân hơn :)
Ps: nhoc cũng là dân đo đạc mà chỉ chơi địa chính hè ^^, địa hình ko chơi do bẩm sinh yếu người leo núi hem nổi @_@.
@anh Ket: làm lại phát ra tay nghĩa hiệp đi anh Ket xem như ôn luyện ^^
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#54 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 28 January 2013 - 05:27 PM

Cái nì nhoc chưa đủ level để xử liên hệ bạn KangKung để đc giúp đỡ ^^, nhoc mò lại thì thấy nếu có nhiều khung chọn bên model thì hình dáng khung đầu tiên mình chọn sẽ quyết định tất cả các khung còn lại cùng kích thước và hình dáng ^^ khung đầu tiên, nếu bạn KangKung có thể sữa chọn khung nào copy đúng khung đó qua layout, nhoc nghĩ cũng ko cần thiết cách nhau 50 mà thêm tùy chọn điểm chèn cho từng khung thì hay hơn. Nói vậy thui chứ nhoc ko có yêu cầu thêm đâu ^^, tạm thời vậy là đủ xài rùi ^^, khi nào đủ level tự sữa đc mới sướng :D, mà với layout nhoc cũng quen tùy chỉnh kiủ thổ rân hơn :)
Ps: nhoc cũng là dân đo đạc mà chỉ chơi địa chính hè ^^, địa hình ko chơi do bẩm sinh yếu người leo núi hem nổi @_@.
@anh Ket: làm lại phát ra tay nghĩa hiệp đi anh Ket xem như ôn luyện ^^

Hi anhbkhcm và Nhoclangbat
Do code viết từ đầu không để ý đến nhu cầu quái dị :D của người sử dụng là chọn cả khung đứng lẫn khung nằm nên chưa tính đến hết các trường hợp xảy ra. Lisp dưới đây đã khắc phục lỗi đó.
http://www.cadviet.c...62_mtl_rev4.lsp
  • 2

#55 bachngoctung

bachngoctung

    biết lệnh copy

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

Đã gửi 05 February 2013 - 02:42 PM

Cám ơn cả nhà, lâu nay mình bận đi công tác. Làm hết hôm nay là được nghỉ tết rồi, tối về sẽ đọc lại hết các bài viết trong chủ đề này, xem nó được các cao thủ chỉnh sửa và hoàn thiện tuyệt hảo đến đâu :mellow:
  • 0

#56 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 February 2013 - 02:53 PM

sướng vậy nhoc phải làm hết tuần này mới đc nghỉ tết :D, lsp bạn yêu cầu giờ nó tè le rùi :D, bạn ráng chắt lọc cái nèo đúng nhu cầu nhé ^^
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#57 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 05 February 2013 - 04:31 PM

sướng vậy nhoc phải làm hết tuần này mới đc nghỉ tết :D, lsp bạn yêu cầu giờ nó tè le rùi :D, bạn ráng chắt lọc cái nèo đúng nhu cầu nhé ^^

Cái mới nhất có bổ sung thêm phần chọn file khung tên để xref cho tất cả các Layout nhưng chưa post. Cái này chắc nhiều bác cần :D
  • 3

#58 khaosatheco

khaosatheco

    biết vẽ circle

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

Đã gửi 19 February 2013 - 04:21 PM

Chào các bác KangKung và Nhoclangbat

Lsp #30 và #54 của các bác chạy rất tốt nếu khung chọn bên model là hình chữ nhật. Nhưng nếu khung chọn bên model là hình polyline kín thì lsp không chạy được.

Nhờ các bác bổ sung thêm.


  • 0

#59 avi612

avi612

    biết lệnh move

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

Đã gửi 20 February 2013 - 10:03 AM

cây nhà lá vườn!!!!
Cái này viết lâu rồi chỉ để dành sài...lâu ngày lên CADviet thấy bà con bàn tới nên post tham khảo.
 
 

 ;>>> SUB FUNTION <<< ;======================================================================================================================================================================= ; >>> HAM SAP XEP CAC DOI TUONG <<< (defun Soft-Value (ss / ss_t kq luu j tam) (setq ss_t (ssadd)) (repeat (sslength ss) (setq tam (ssname ss 0)) (setq j 1) (repeat (- (sslength ss) 1) (if (> (atof (cdr (assoc 1 (entget tam)))) (atof (cdr (assoc 1 (entget (ssname ss j)))))) (setq tam (ssname ss j)) ) (setq j (+ j 1)) ) (setq ss (ssdel tam ss)) (setq ss_t (ssadd tam ss_t)) ) (setq ss ss_t) ) ;======================================================================================================================================================================= ; >>> HAM XAC DINH KHUNG BAN VE <<< (defun c:kt (/ path) (setq path (getvar "dwgprefix")) (setq Drawings-Frame (getfiled ">> Select Frame Objects" path "dwg" 0)) (princ) (princ) ) ;======================================================================================================================================================================= ; >>> HAM CHEN KHUNG TEN VAO BAN VE BANG XREF <<< (defun Insert-New-Frame (pt / th thl i thi list_thi loai default old new tmode) (setq tmode (getvar "TILEMODE")) (If (= tmode 1) (Setvar "TILEMODE" 0)) (setvar "INSUNITS" 4) (command "xref" "a" Drawings-Frame pt 1 1 0) (command ".zoom" "e") ) ;======================================================================================================================================================================= ; >>> HAM THAY DOI GIA TRI Customscale CUA HANG LOAT Viewport <<< (defun Custom-View (Obj New-customscale / SSlen i Ename) (vl-load-com) ;(Prompt "\n>> Nhap gia tri ti le: ") ;(setq New-customscale (getreal "\n>> Nhap gia tri ti le: ")) ;(setq Obj (ssget ":N" '((0 . "VIEWPORT")))) (setq SSlen (sslength Obj)) (setq i 0) (while (< i SSlen) (setq Ename (vlax-ename->vla-object (ssname Obj i))) (vla-put-customscale Ename New-customscale) (setq i (1+ i)) ) ) ;======================================================================================================================================================================= (defun VT-AddLayer(Lname Ltype Color Desc / *kpblc-activedoc* layer) (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object))) (setq layer (vla-add (vla-get-layers *kpblc-activedoc*) Lname)) (vla-put-Linetype layer Ltype) (vla-put-color layer Color) (vla-put-Description layer Desc) ;(vla-put-Lineweight layer Lweight) (princ) (princ) ) ;======================================================================================================================================================================= ;>>> MAIN FUNTION <<< (defun c:dlo (/ cl #Tilemode ss Insert-point X-Point Y-Point i OSluu entkhung entp Insert-point P1-frame P2-frame vieww tle new-scale) (command "undo" "be") (setq cl (getvar "CLAYER")) (setvar "cmdecho" 0) (setvar "blipmode" 0) (setq #Tilemode (getvar "TILEMODE")) (setvar "TILEMODE" 1) ;(Prompt "\nCh\U+1ECDn b\U+1EA3n v\U+1EBD khung tên") ;(setq path (getvar "dwgprefix")) ;(setq Drawings-Frame (getfiled "Ch\U+1ECDn b\U+1EA3n v\U+1EBD khung tên" path "dwg" 0)) (if (= Scale-Draw nil) (setq Scale-Draw2 5) (setq Scale-Draw2 Scale-Draw)) (setq Scale-Draw (getreal (strcat "\n - Nh\U+1EADp t\U+1EF7 l\U+1EC7 b\U+1EA3n v\U+1EBD: 1/<" (rtos Scale-Draw2 2 1) ">"))) (if (= Scale-Draw nil) (setq Scale-Draw Scale-Draw2)) (setq ss (ssget (list (cons 0 "TEXT") (cons 8 "sttchonkhung")))) (setq ss (Soft-Value ss)) (setvar "TILEMODE" 0) (setq Insert-point (getpoint "\n - Ch\U+1ECDn \U+0111i\U+1EC3m b\U+1EAFt \U+0111\U+1EA7u r\U+1EA3i: ")) (setq X-Point (car Insert-point)) (setq Y-Point (cadr Insert-point)) (setq Num-Frame (sslength ss)) (setq i 0) (if (= Drawings-Frame nil) (c:kt)) (setq OSluu (getvar "OSMODE")) (setvar "OSMODE" 0) (while (< i Num-Frame) (setq entkhung (ssname ss i)) (setq entp (cdr (assoc 11 (setq entam (entget entkhung)))));Diem chen cua Text (setq Insert-point (list (+ X-Point (* i 420)) Y-Point)) ;===== Chen khung ten bang lenh Xref ===== (Insert-New-Frame Insert-point) ;===== Ve khung viewport ===== (setq P1-frame (list (+ (car Insert-point) 27) (+ (cadr Insert-point) 41))) (setq P2-frame (list (+ (car Insert-point) 407) (+ (cadr Insert-point) 286))) (if (= (tblsearch "layer" "Defpoints") nil) ;(command ".-layer" "M" "Defpoints" "C" 250 "" "") (VT-ADDLAYER "Defpoints" "Continuous" 250 "Hide Frame") ) (setvar "CLAYER" "Defpoints") (command ".mview" P1-frame P2-frame) (setq vieww (entlast)) (command ".mspace") (command ".zoom" "c" entp 245);ZOOM 1:1 (setq tle (/ 1 Scale-Draw)) (setq new-scale (strcat (rtos tle 2 5) "XP"));ZOOM CUSTOME (command ".zoom" new-scale) (command ".pspace") (command ".zoom" "o" vieww "") (setq i (1+ i)) ) (setvar "CLAYER" cl) (setvar "OSMODE" OSluu) ;(alert "Lisp chay xong") (command ".zoom" "e") (command ".undo" "e") (Prompt (strcat "Chay xong " (rtos Num-Frame 2 0) " khung")) (princ) )

 
 
 Lisp này cũng có cái bất tiện là phải tạo 1 layer có tên là "sttchonkhung" để tạo trước các khung hình chữ nhật bên model sau đó mới tiến hành lệnh DLO.
Đang làm cái video cho bà con...khi nào xong sẽ post lên.
@Video hướng dẫn: 
---------------------------------
Lâu ngày không ghé.. giờ forum nâng cấp khác quá nên post lisp ko quen...ai sửa lại giúp nhá.


Bài viết đã được chỉnh sửa nội dung bởi avi612: 28 February 2013 - 08:56 AM

  • 1

#60 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 20 February 2013 - 02:34 PM

Bạn khaosatheco thân mến.

Lisp #54 vẫn chạy được nếu polyline kín của bạn chỉ có 5 điểm hoặc có 4 điểm đầu tiên trùng với 4 góc của khung hình chữ nhật. Tuy nhiên tôi đã sửa lại theo ý của bạn là chọn polyline kín thì lisp vẫn chạy được. Thậm chí nếu polyline có hình loằng ngoằng thì lisp vẫn tạo cho bạn viewport bao kín hình polyline đó đúng với tỷ lệ bạn nhập vào.

http://www.cadviet.c...2_mtl_rev4i.lsp


;========LISP TAO VIEWPORT TREN LAYOUT BANG CACH CHON O MODEL========
;===============REV4i=====================
(defun C:mtl( / lst khung X_min Y_min X_max Y_max X index taphop)
  (command "UNDO" "BE")
  (setvar "OSMODE" 0)
  (setq taphop(ssget ))
  (if (= Tyle nil)
    (setq Tyle1 1)
    (setq Tyle1 Tyle))
  (setq Tyle (getreal (strcat "\n Ty le: <" (rtos Tyle1 2 0) "> ")))
  (if (= Tyle nil)
    (setq Tyle Tyle1))
  (setq soluong (sslength taphop))
  (setq index 0)
  (command "LAYOUT" "N" "Layout1")
  (command "LAYOUT" "S" "Layout1")
  (command "ERASE" "ALL" "")
  (command "MODEL")
  (setq X 0)
  (command "ZOOM" "E")
  (while (< index soluong)
    (setq khung(ssname taphop index))
    (setq lst(acet-geom-vertex-list khung))
    (setq X_min 1000000000
      Y_min 1000000000
      X_max -1000000000
      Y_max -1000000000)
    (foreach a lst
      (if (< (car a) X_min) (setq X_min (car a)))
      (if (< (cadr a) Y_min) (setq Y_min (cadr a)))
      (if (> (car a) X_max) (setq X_max (car a)))
      (if (> (cadr a) Y_max) (setq Y_max (cadr a)))
      )
    (command "LAYOUT" "S" "Layout1")
    (command "RECTANG" (list X_min Y_min) (list X_max Y_max))
    (command "MOVE" (entlast) "" (list X_min Y_min) (list X 0))
    (command "SCALE" (entlast) "" (list X 0) (/ 1 tyle))
    (command "MVIEW" "O" (entlast))
    (command "MSPACE")
    (command "ZOOM" (list X_min Y_min) (list X_max Y_max))
    (command "PSPACE")
    (setq X(+ X 50 (/ (abs(- X_max X_min)) tyle)))
    (command "ZOOM" "W" (list 0 0) (list (+ X 100) 0))
    (setq index (+ index 1))
    )
  (command "MODEL")
  (command "UNDO" "END")
  (setvar "OSMODE" 15359)
  (princ)
  )



  • 2