Đế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

#101 khaosatheco

khaosatheco

    biết vẽ circle

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

Đã gửi 08 June 2013 - 03:39 PM

Anh KK chắc quên topic nầy rồi. Mong Anh bớt chút thời gian sửa giúp em.


  • 0

#102 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 09 June 2013 - 10:24 AM

1. Tạo nhiều Layout nhằm mục đích thuận lợi cho việc in ấn. Sau khi tạo được các layout rồi người sử dụng có thể in hàng loạt bằng lựa chọn Publish hoặc giữ phím Shift (Ctrl) và chọn các layout bất kì rồi click chuột phải sau đó chọn plot là xong mà không cần phải bắt điểm để in từng bản vẽ một. Đó chính là lí do mà Lisp này hướng tới.

Bản chất Layout là dùng để in ấn và mỗi layout chỉ tương ứng với một khổ giấy thôi. Muốn in cái gì thì đặt lên khổ giấy rồi in. Các công ty nước ngoài không bao giờ họ để nhiều khung in trong 1 Layout như một số công ty ở Việt Nam đâu. Tôi quan niệm rằng Layout là một khổ giấy có giới hạn tuy nhiên có phần lề thì rộng vô cùng và một số bạn thì rất thích bố trí bản vẽ vào phần lề này thay vì bố trí sang Layout khác. Cách bố trí này cũng có thuận tiện tuy nhiên theo tôi là chưa tối ưu.

2. Bạn đang làm ngược rồi. Khung tên là gốc và khung bao bên Model phải scale theo tỉ lệ và kích thước của khung vport bên layout.

@Khaosatheco: OK đã hiểu. Các polyline định hướng này cũng chính là giao của khung bao và tim tuyến. Không cần phải thêm bước chọn đường định hướng nữa vì Lisp cũng đã biết vị trí các điểm này khi tính giao cắt.

Bạn có thể chỉnh giúp mình xuất các khung ra nằm trên cùng 1 layout không ?


  • 0

#103 KangKung

KangKung

    biết lệnh array

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

Đã gửi 09 June 2013 - 01:41 PM

@NNS: đã có lisp xuất chung 1 layout trong topic này. Bạn tìm lại xem.
@KSTC: hiện tại mình đang bận, lúc nào rỗi sẽ bổ sung lisp theo yc của bạn
  • 1

#104 hathaiyb

hathaiyb

    biết pan

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

Đã gửi 09 June 2013 - 04:33 PM

Chào bạn KangCung và bạn Nhoclangbat. Mình theo dõi topic và thấy hai bạn rất nhiệt tình giúp đỡ anh em. Tuy Lisp tạo Viewport từ khung chọn bên Model là của bạn Tùng yêu cầu nhờ viết nhưng lại được rất nhiều anh em quan tâm vì được ứng dụng nhiều trong dân kỹ thuật anh em mình.

Mình thấy Lisp ở #67 tạo các khung ViewPort sang Layout là hình chữ nhật (mặc dù bên Modul khung ko phải hình chữ nhật). Ở #69 thì Khung bên Modul thế nào sang Layout khung hình y nguyên thế đó.

Vậy hai bạn cho mình ké cửa nhờ sửa lại đôi chút theo ý mình như sau:

1.Vieweport bên Layout giống hệt khung bên Modul (cái này lisp #69 Oki rồi).

2.Xuất ra các Viewport có tỷ lệ Khác nhau. Ví dụ trong 1 bản vẽ mình vẽ 2 cấu kiện cùng vẽ tỷ lệ 1/1 nhưng sang Layout một cái tỷ lệ 1/1 một cái tỷ lệ 1/2.

Hướng lisp có thể phát triển kiểu cho tạo nhiều lần xuất sang Layout, mỗi lần xuất một tỷ lệ khác nhau, lần xuất sau không xóa Viewport của lần xuất trước và vào cùng 1 Layout là giải quyết được vấn đề trên. (Hiện nay các lisp ở các bài trước cứ tạo lại Viewport là nó xóa cái đã tạo trước đó.

Đây là file bản vẽ mô tả kèm theo: https://www.dropbox....zc7/Tru cau.dwg

Cảm ơ các bạn.


  • 0

#105 hotanphi

hotanphi

    biết vẽ polygon

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

Đã gửi 15 July 2013 - 03:59 PM

File đính kèm là bản vẽ + khung tên + Lisp để cho bác nào có nhu cầu thì dùng thử rồi cho ý kiến để hoàn thiện Lisp nhé. Đang viết dở nên chưa post code lên. Khi nào hoàn thành bản cuối cùng sẽ chia sẻ cho các bác. Đây chỉ là bản Demo thôi. Bản vẽ dùng để Test là của bạn Khaosatheco. 

Sơ qua về Lisp tí:

1. Lệnh TLO để chạy. Hộp thoại hiện ra như sau:

71162_tlo.jpg

2. Sau đó chọn máy in, khổ giấy, Style

3. Chọn Khung View và tim tuyến bên Model

4. Có thể lựa chọn khung tên Xref hoặc Block

5. Có thể in ngay ra máy in nhưng chương trình sẽ dừng lại ở phần tạo ra các layout để người sử dụng kiểm soát lỗi trước khi in ấn.

6. Sau khi chạy Lisp sẽ điền Lý trình đầu cuối và Lý trình đoạn tuyến vào khung tên, đồng thời tự động đánh số bản vẽ. 

7. Khi chọn khung view bên Model cho dù có chọn xuôi hay ngược thì khi sắp xếp Layout, bản vẽ có lý trình nhỏ sẽ xếp trước sau đó tăng dần đến lý trình lớn nhất.

Xin chào anh KangKung.

Anh cho em hỏi lisp TLO chạy trên nền cad nào vậy anh.

Em load và chạy TLO nhưng ko được anh ơi. Không biết nó bị lỗi gì nữa. Bấm TLO->Enter nhưng dòng command ko hiển thị gì hết

Mong anh xem lại giúp em thử. Hay là do cad em bị thiếu gì ko nữa. Em dùng cad 2005 và cad2007 đều ko được

Mong anh hoàn thiện lisp này và có thể chia sẻ cho mọi người.

Cái lisp này như anh giới thiệu sẽ rất hữu ích cho anh em làm giao thông khi vào bình đồ dạng tuyến để in ấn.

Chân thành cảm ơn anh.

Chúc anh và mọi người sức khỏe và thành công


  • 0

#106 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 26 August 2013 - 07:51 AM

Bạn Kangkung bổ sung thêm chức năng tự rải khung view ( là khung dc chọn trong quá trình thực hiện lisp) theo tim tuyến luôn đi bạn


  • 0

#107 hathaiyb

hathaiyb

    biết pan

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

Đã gửi 02 September 2013 - 02:43 PM

Chào bạn KangCung và bạn Nhoclangbat. Mình theo dõi topic và thấy hai bạn rất nhiệt tình giúp đỡ anh em. Tuy Lisp tạo Viewport từ khung chọn bên Model là của bạn Tùng yêu cầu nhờ viết nhưng lại được rất nhiều anh em quan tâm vì được ứng dụng nhiều trong dân kỹ thuật anh em mình.

Mình thấy Lisp ở #67 tạo các khung ViewPort sang Layout là hình chữ nhật (mặc dù bên Modul khung ko phải hình chữ nhật). Ở #69 thì Khung bên Modul thế nào sang Layout khung hình y nguyên thế đó.

Vậy hai bạn cho mình ké cửa nhờ sửa lại đôi chút theo ý mình như sau:

1.Vieweport bên Layout giống hệt khung bên Modul (cái này lisp #69 Oki rồi).

2.Xuất ra các Viewport có tỷ lệ Khác nhau. Ví dụ trong 1 bản vẽ mình vẽ 2 cấu kiện cùng vẽ tỷ lệ 1/1 nhưng sang Layout một cái tỷ lệ 1/1 một cái tỷ lệ 1/2.

Hướng lisp có thể phát triển kiểu cho tạo nhiều lần xuất sang Layout, mỗi lần xuất một tỷ lệ khác nhau, lần xuất sau không xóa Viewport của lần xuất trước và vào cùng 1 Layout là giải quyết được vấn đề trên. (Hiện nay các lisp ở các bài trước cứ tạo lại Viewport là nó xóa cái đã tạo trước đó.

Đây là file bản vẽ mô tả kèm theo: https://www.dropbox....zc7/Tru cau.dwg

Cảm ơ các bạn.

Các bác giúp tiếp em vấn đề trên với


  • 0

#108 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 22 October 2014 - 04:28 PM

ah nhoc quên là bên model tất cả đều là tỉ lệ 1:1  nha anh, chỉ khi chọn khung đó rùi qua layout mới mang các tỉ lệ kia ^^

104473_22222222_2.jpg

 

@Nhoclangbat, Nhóc đã tự xử được vụ này chưa? :)


  • 0

#109 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 October 2014 - 11:56 AM

- Chào bạn Conghoa ^^, nhoc đã chỉnh đc phần thô, chọn khung bên model rùi tạo viewport bên layout tương ứng với khu đã chọn và tỉ lệ do mình nhập như hình nhoc đăng, nhoc chỉnh theo ý tưởng lúc đầu của nhoc giống hình đó là mình có sẵn các khung bên model , gọi lệnh sẽ hỏi chọn khung sau đó nhập tỉ lệ cho khung đó, nhập xong sẽ tự chuyển qua layout cho mình chọn điểm đặt khung chọn xong quay trở về lại model cho mình chọn khung tiếp theo, cứ tiếp tục vậy khi nào xong thì phải chuột kết thúc lệnh, bạn test trước xem nhé ^^

(defun Makepline (listpoint closed Layer Linetype LTScale xdata / Lst)
	(setq Lst (list '(0 . "LWPOLYLINE")'(100 . "AcDbEntity")
	(cons 8 (if Layer Layer (getvar "Clayer")))
	(cons 6 (if Linetype Linetype "bylayer"))
	(cons 48 (if LTScale LTScale 1))
	'(100 . "AcDbPolyline")
	(cons 90 (length listpoint))
	(cons 70 (if closed 1 0))))
	(foreach PP listpoint	(setq Lst (append Lst (list (cons 10 PP)))))
	(if xdata (setq Lst (append lst (list (cons -3 (list xdata))))))
	(entmakex Lst))
	;end;=================================
;;;;;;;;;;;
(defun _layer2 ( name colour )
    (if (null (tblsearch "LAYER" name))
        (entmake
            (list
               '(0 . "LAYER")
               '(100 . "AcDbSymbolTableRecord")
               '(100 . "AcDbLayerTableRecord")
               '(70 . 0)
                (cons 2 name)
                (cons 62 colour)
            )
        )
    )
)
; ham luu gia tri
(defun getvalue ( a giatri dongnhac / astr) 
(or a (setq a giatri))
(cond
	((= (type a) 'INT) (setq a (cond ((getint (strcat "\n" dongnhac "(" (itoa a) ") :")))(a))))
	((= (type a) 'REAL) (setq a (cond ((getreal (strcat "\n" dongnhac "(" (rtos a 2 0) ") :")))(a))))
	((= (type a) 'STR) (setq a (cond ((= "" (setq astr (getstring 1 (strcat "\n" dongnhac " (" a "): ")))) a) (astr))))
))
;;;;
;============================================================
;========LISP TAO VIEWPORT TREN LAYOUT BANG CACH CHON O MODEL========
;=========================REV4ii=====================================
(defun C:mtll( / os lst khung X_min Y_min X_max Y_max X index taphop pt1)
(vl-load-com)
(if (null (tblsearch "LAYER" "khung")) (_layer2 "Khung" 3))
  (command "UNDO" "BE")
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (while (/= (setq taphop (ssget "+.:E:S" '((0 . "LWPOLYLINE")))) nil)
  (progn
   (setq tyleVT (getvalue tyleVT 1000.0 "Nhap ty le ban do: "))
  (command "LAYOUT" "S" "Layout1")
  (setq pt1 (getpoint "\nchon diem dat khung"))
  (command "ZOOM" "E")
    (setq khung (ssname taphop 0))
    (setq lst (cdr (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 "ZOOM" "W" (list X_min Y_min) (list X_max Y_max))
    (makepline lst 1 "Khung" nil nil nil)
    (command "MOVE" (entlast) "" (list X_min Y_min) (list (car pt1) 0))
    (command "ZOOM" "W" (list 0 0) (list (+ (car pt1) 100) 0))
    (command "SCALE" (entlast) "" (list (car pt1) 0) (/ 1000 tyleVT))
    (command "MVIEW" "O" (entlast))
    (command "MSPACE")
    (command "ZOOM" (list X_min Y_min) (list X_max Y_max))
    (command "PSPACE")
	(command "MVIEW" "L" "on" (entlast) "")
    (command "ZOOM" "W" (list 0 0) (list (+ (car pt1) 100) 0))
    (command "MODEL")
    ) ;ene progn while
	) ; end while
  (command "MODEL")
  (command "UNDO" "END")
  (setvar "OSMODE" os)
  (princ)
  )
;=======================================================


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

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








#110 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 28 October 2014 - 01:00 PM

Thanks Nhoclangbat vì đã hỗ trợ mình tiếp chủ đề này. Có một số ý kiến sau khi dùng thử như sau:

- Bạn có thể đơn giản hóa việc đặt tỉ lệ được không, ví dụ: muốn vẽ tỉ lệ 1:25 thì chỉ cần nhập 25 là được.

- Layout1 là layout mặc định bạn đang để khi "Chọn điểm đặt khung": Có thể hiện 1 bảng có các layout có sẵn trong bản vẽ, muốn đặt khung viewport vào đâu thì chọn layout đó được không?

- Điều cuối cùng để lisp được hoàn thiện là:

B1. Chạy lisp

B2. Lisp yêu cầu chọn khung

B3. Lisp yêu cầu nhập tỉ lệ

Trong phần này có thêm mục như sau: "Nhập tỉ lệ bản vẽ (K/XXX):" trong đó mặc định nếu chọn K thì kết thúc chương trình, nếu chọn số thì sẽ lưu vào XXX

B3. Người dùng chọn khung và tỉ lệ

B4. Lisp lại tiếp tục yêu cầu như B2

B5. Người dùng kết thúc vòng lặp chọn bằng cách chọn K

B6. Lisp yêu câu chọn layout cân chèn các khung viewport

B7. Người dùng chọn layout cần chèn, chèn xong lísp tự động quay lại Model và lặp lại B2.

 

Mình có vài điểm như trên, Nhoclangbat thấy ổn thì giúp mình tiếp nhé.

Thanks!

B1. Chạy lisp
B2. Lisp yêu cầu chọn khung và tỉ lệ trên model
B3. Người dùng chọn khung và tỉ lệ
B4. Lisp lại tiếp tục yêu cầu như B2
Kết thúc vòng lặp yêu cầu chọn bằng ký tự nào đó
B5. Lisp Hiện ra một bảng thống kê các layout có trong bản vẽ để người dùng chọn Layout để chèn khung viewport
B6. Lisp chèn khung xong, trở lại trang Model và tiếp tục lặp lại B2.
Kết thúc lệnh bằng Esc.
 
Có một số ý tưởng như thế không biết Nhoclangbat thấy thế nào :)
B1. Chạy lisp
B2. Lisp yêu cầu chọn khung và tỉ lệ trên model
B3. Người dùng chọn khung và tỉ lệ
B4. Lisp lại tiếp tục yêu cầu như B2
Kết thúc vòng lặp yêu cầu chọn bằng ký tự nào đó
B5. Lisp Hiện ra một bảng thống kê các layout có trong bản vẽ để người dùng chọn Layout để chèn khung viewport
B6. Lisp chèn khung xong, trở lại trang Model và tiếp tục lặp lại B2.
Kết thúc lệnh bằng Esc.
 
Có một số ý tưởng như thế không biết Nhoclangbat thấy thế nào :)
B1. Chạy lisp
B2. Lisp yêu cầu chọn khung và tỉ lệ trên model
B3. Người dùng chọn khung và tỉ lệ
B4. Lisp lại tiếp tục yêu cầu như B2
Kết thúc vòng lặp yêu cầu chọn bằng ký tự nào đó
B5. Lisp Hiện ra một bảng thống kê các layout có trong bản vẽ để người dùng chọn Layout để chèn khung viewport
B6. Lisp chèn khung xong, trở lại trang Model và tiếp tục lặp lại B2.
Kết thúc lệnh bằng Esc.
 
 

  • 0

#111 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 October 2014 - 03:00 PM

- hi vì mình làm bên địa chính nên cách quy ước tỷ lệ có thể khác bên cơ khí hay xây dựng

- mình chưa hiểu chỗ (k/xxx), k ở đây là gì, và xxx nữa

- còn phần chọn layout để chèn, nhoc sẽ thử nghiên cứu ^^ 


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

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








#112 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 28 October 2014 - 03:52 PM

Như trong lisp cũ của Nhoclangbat thì XXX tương ứng với tỉ lệ nhập vào được lưu lại, còn K ở đấy là biến để thoát khỏi vòng lặp chọn khung viewport. Nếu ko có biến K đó thì Nhoclangbat có cách nào để thoát khỏi vòng lặp chọn khung viewport ko :). Bạn đọc kỹ lại các bước mình viết thì sẽ biết K để làm gì :).

 

ps: ý của các bước mình ghi là có thể chọn 1 loạt khung viewport với tỉ lệ khác nhau trên model sau đó mới chèn sang layout, chứ không phải làm từng cái 1 như lisp của Nhoclangbat đã viết

 

Thanks!


  • 0

#113 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 28 October 2014 - 04:50 PM

- hi ^^ hiểu rùi, sr Conghoa hen chắc phải chờ mấy anh ra tay tượng trợ vậy ^^

- số lượng khung chọn bên nhoc ko nhiều vậy và chỉ cần chèn trong 1 layout duy nhất, nên lsp nó đơn giản hơn ^^

- Conghoa thì mún nó mở rộng hơn, nó hơi vượt sức nhoc  :P

- 1:  việc chọn 1 lúc nhiều khung bên model rùi set tỉ lệ cho từng khung, nhoc chưa pit cách nào để nó lưu khung chọn với tỉ lệ gán vào khung đó rùi chọn khung khác, lúc đầu nhoc cũng nghĩ vậy tiện hơn mà ko pit nên đành cái nào dứt điểm cái đó ^^

- 2 : việc chọn layout nãy giờ nhoc cũng đang mò, nhoc chỉ có cách cho người dùng nhập số thứ tự các layout trong bản vẽ để set, chưa mò ra cách trực quan như bạn nói là hiện danh sách các layout hiện có để chọn ^^

- 3: nhoc thấy ko cần biến K, chỉ cần enter or phải chuột để thoát chọn rùi chạy đến thằng tiếp theo là chọn layout để chèn.

- 4: tới lượt thằng pick chèn mỗi lần sẽ lặp lại 2 bước chọn layout, chọn điểm pick, đến khi chọn layout = nil, thì nhảy về model chọn khung tiếp ^^

-P/s: sr hiện tại nhoc chưa giúp đc bạn thông cảm, dạo này nhoc cũng bị hồ sơ dí quá ^^, khi nào rãnh nhoc sẽ thử nghiên cứu, giờ up up mong các anh ghé ngang tâm trạng vui vẻ giúp đc bạn


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

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








#114 minhcv90

minhcv90

    Chưa sử dụng CAD

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

Đã gửi 24 September 2015 - 11:15 AM

lisLisp rất hay ạ.nhưng nếu khung bản vẽ bên model có cái xoay ngang, cái xoay dọc mà mình muốn khi sang bên layout nó xoay ngang.mong bạn nhok sửa nđược không.Vì bình đồ tuyến đường rất ngoằn ngoèo.Thanks


  • 0

#115 Han Tinh

Han Tinh

    biết vẽ pline

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

Đã gửi 26 September 2015 - 03:22 PM

 
Lisp mới tạo viewport cho tất cả hình chữ nhật có cạnh nằm ngang, đứng, ... ngồi biggrin.png hoặc nghiêng. Sơ qua về các đặc điểm của Lisp này:
1. Tạo viewport cho tất cả các khung hình chữ nhật
2. Thêm lựa chọn Xref khung tên bản vẽ
3. Các viewport được sắp xếp theo phương đứng thay vì phương ngang như các Lisp trước
Bác nào có nhu cầu thì down về rồi test thử và cho ý kiến nhé.
http://www.cadviet.c...62_mtl_rev5.lsp

P/S: Lisp này sẽ giảm rất nhiều thao tác và thời gian cho những ai biên tập bản đồ khu vực rộng đặc biệt là bản đồ dạng tuyến. 

Bạn KangKung có thể chỉnh lại tỉ lệ khi xuất qua layout giúp mình với

Ví dụ: bên model có các khung (A3) có kích thước lần lượt là: (4200, 2970), (6300, 4455), (8400, 5940), ... gõ lệnh mtl->chọn đối tượng->nhập tỉ lệ->có muốn chèn khung tên hay không. 

Ngay chỗ chọn tỉ lệ bạn chỉnh lại sao cho:

1/ nếu ta chọn khung (4200, 2970) trước và nhập tỉ lệ là 10 thì khi xuất qua layout tất cả các khung view đều có kích là(420, 297)-> các khung view có cùng 1 chủng loại kích thước thì dễ quan sát.

2/ còn nếu ta chọn khung (6300, 4455) trước và nhập tỉ lệ là 10 thì khi xuất qua layout tất cả các khung view đều có kích là(630, 445.5)-> các khung view có cùng 1 chủng loại kích thước thì dễ quan sát.

-> Nói chung là các khung view xuất hiện bên layout đều cùng 1 chủng loại kích thước(lấy theo kích thước mà ta chọn lần đầu tiên bên model theo tỉ lệ ta nhập vào)

Thaks bạn! Chúc bạn cuối tuần vui vẻ. 


  • 0

#116 Han Tinh

Han Tinh

    biết vẽ pline

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

Đã gửi 28 September 2015 - 08:59 PM

Bạn KangKung và bạn nhoclangbat có ghé diễn đàn thì giúp mình với. 


  • 0

#117 minhchien89tb

minhchien89tb

    Chưa sử dụng CAD

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

Đã gửi 26 May 2016 - 05:07 PM

 
Lisp mới tạo viewport cho tất cả hình chữ nhật có cạnh nằm ngang, đứng, ... ngồi biggrin.png hoặc nghiêng. Sơ qua về các đặc điểm của Lisp này:
1. Tạo viewport cho tất cả các khung hình chữ nhật
2. Thêm lựa chọn Xref khung tên bản vẽ
3. Các viewport được sắp xếp theo phương đứng thay vì phương ngang như các Lisp trước
Bác nào có nhu cầu thì down về rồi test thử và cho ý kiến nhé.
http://www.cadviet.c...62_mtl_rev5.lsp

P/S: Lisp này sẽ giảm rất nhiều thao tác và thời gian cho những ai biên tập bản đồ khu vực rộng đặc biệt là bản đồ dạng tuyến. 

@Nhoclangbat: Sẽ post Lisp theo yêu cầu của nhoc sau nhé.lí

Mình thấy lisp này rất hay rồi nhưng mình dùng sheetshet nên nhờ 2 pro là KangKun va Nhoclangbat giúp mình sửa líp #63-rev5 này thành mỗi layout là 1 viewport thì thất tuyệt vời, tôi xin chân thành cám ơn


  • 0

#118 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 02 June 2016 - 11:25 AM

Chảo các anh. Nhờ các anh chỉnh sửa giúp lisp rev 2 này giúp mình với. Lisp này hiện tại đang đảo ngược thứ tự layout. Vd ở model sắp theo chiều ngang có 1 bản vẽ, từ trái qua phải. Thì layout tạo ra đầu tiên lại theo thứ tự từ phải sang trái. Thêm nữa, là chỉ chọn được trong model các hình chữ nhật nằm theo hàng ngang. Không chọn thêm một hàng khác được. Vậy nếu được nhờ cao nhân sửa lại giúp mình như sau:
 
1. Có thể chọn sẵn khung bên model (có thẻ là xref, rectangel...)
2. Có thể chọn nhiều khung cả theo phương ngang và dọc.
3. Từ các khung đã chọn bên model, tao layout theo thứ tự: Từ trái qua phải, từ trên xuống dưới.
 
Cảm ơn các anh nhiều.
P/s: các rev sau của lisp chuyển tất cả các khung trong model thành viewport của 1 layout. Nhưng mình cần mỗi khung là 1 layout. Do đó chỉ dùng được rev 2 này.
 
 
 
 
;========LISP TAO VIEWPORT TREN LAYOUT BANG CACH CHON O MODEL========

;===============REV2=====================
(defun C:mtl()
  (command "UNDO" "BE")
  (setvar "OSMODE" 0)
  (setq taphop(ssget))
  (if (= TenLayout nil)
    (setq TenLayout1 "Layout")
    (setq TenLayout1 TenLayout))
  (setq TenLayout (getstring (strcat "\n Ten lay out: <" TenLayout1 "> ")))
  (if (= TenLayout nil)
    (setq TenLayout TenLayout1))
  (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 size(getstring "\n Kho giay in A0/A1/A2/A3/A4?: "))
  (setq soluong (sslength taphop))
  (setq index 0)
  (setq i 0)
  (while (< index soluong)
    (setq i(1+ i))
    (setq khung(ssname taphop index))
    (setq lst(acet-geom-vertex-list khung))
    (command "COPYCLIP" khung "")
    (command "LAYOUT" "N" (strcat TenLayout (rtos i 2 0)))
    (command "LAYOUT" "S" (strcat TenLayout (rtos i 2 0)))
    (command "ERASE" "ALL" "")
    (command "PASTECLIP" "0,0")
    (command "SCALE" (entlast) "" "0,0" (/ 1 tyle))
    (command "MVIEW" "O" (entlast))
    (command "MSPACE")
    (command "ZOOM" (nth 0 lst) (nth 2 lst))
    (command "PSPACE")
    (command "ZOOM" "E")
    (command "PLOT" "Y" "" "" size "M" "L" "N" "W" "0,0" (list (/ (abs(- (car (nth 2 lst)) (car (nth 0 lst)))) tyle) (/ (abs(- (cadr (nth 2 lst)) (cadr (nth 0 lst)))) tyle)) "1" "C" "Y" "acad" "Y" "N" "N" "N" "N" "Y" "N")
    (command "MODEL")
    (setq index (+ index 1))
    )
  (command "UNDO" "END")
  (setvar "OSMODE" 15359)
  (princ)
  )

  • 0

#119 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 02 June 2016 - 11:30 AM

Chảo các anh. Nhờ các anh chỉnh sửa giúp lisp rev 2 này giúp mình với. Lisp này hiện tại đang đảo ngược thứ tự layout. Vd ở model sắp theo chiều ngang có 1 bản vẽ, từ trái qua phải. Thì layout tạo ra đầu tiên lại theo thứ tự từ phải sang trái. Thêm nữa, là chỉ chọn được trong model các hình chữ nhật nằm theo hàng ngang. Không chọn thêm một hàng khác được. Vậy nếu được nhờ cao nhân sửa lại giúp mình như sau:
 
1. Có thể chọn sẵn khung bên model (có thẻ là xref, rectangel...)
2. Có thể chọn nhiều khung cả theo phương ngang và dọc.
3. Từ các khung đã chọn bên model, tao layout theo thứ tự: Từ trái qua phải, từ trên xuống dưới.
 
Cảm ơn các anh nhiều.
P/s: các rev sau của lisp chuyển tất cả các khung trong model thành viewport của 1 layout. Nhưng mình cần mỗi khung là 1 layout. Do đó chỉ dùng được rev 2 này.

  • 0

#120 tranduyquang25111

tranduyquang25111

    biết vẽ ellipse

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

Đã gửi 02 June 2016 - 01:30 PM

Chảo các anh. Nhờ các anh chỉnh sửa giúp lisp rev 2 này giúp mình với. Lisp này hiện tại đang đảo ngược thứ tự layout. Vd ở model sắp theo chiều ngang có 1 bản vẽ, từ trái qua phải. Thì layout tạo ra đầu tiên lại theo thứ tự từ phải sang trái. Thêm nữa, là chỉ chọn được trong model các hình chữ nhật nằm theo hàng ngang. Không chọn thêm một hàng khác được. Vậy nếu được nhờ cao nhân sửa lại giúp mình như sau:
 
1. Có thể chọn sẵn khung bên model (có thẻ là xref, rectangel...)
2. Có thể chọn nhiều khung cả theo phương ngang và dọc.
3. Từ các khung đã chọn bên model, tao layout theo thứ tự: Từ trái qua phải, từ trên xuống dưới.
 
Cảm ơn các anh nhiều.
P/s: các rev sau của lisp chuyển tất cả các khung trong model thành viewport của 1 layout. Nhưng mình cần mỗi khung là 1 layout. Do đó chỉ dùng được rev 2 này.

  • 0