Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lisp chia ngang màn hình


  • Please log in to reply
3 replies to this topic

#1 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 16 July 2013 - 11:16 PM

Chào các bạn.

Mình vẽ cad hay phải chia ngang màn hình để gióng các phần tử từ trên mặt bằng xuống để vẽ. Mình đã tìm rất nhiều trong diễn đàn nhưng mới chỉ có lisp chia dọc màn hình. Bạn nào có thể giúp mình lisp chia ngang màn hình được không.

Lisp này sau khi gõ lệnh thì đưa ra lựa chọn 1 điểm để chia, sau khi mình chọn điểm thì nó sẽ chia màn hình thành 2 theo chiều ngang

Cám ơn các bạn rất nhiều


  • 0

#2 hoanghahd92

hoanghahd92

    biết pan

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

Đã gửi 17 July 2013 - 07:21 AM

bác xem lại nhé.. hình như không cần lisp mình vẫn chia được màn hình theo phương ngang, bàn độ H (Horizontal) bác thử theo bước sau được không

1. nhấn vào View trên thanh công cụ

2. nhấn vào Viewports

3. sau đó chọn số luợng màn hình cần chia 1,2,3,4 Viewports

4. trên dòng command bác chỉ vần chon V (Vertical) hoặc H (Horizontal) bác muốn chọnchia theo ngang màn hình bác chọn H là oke.. 


  • 0

#3 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 17 July 2013 - 10:03 PM

http://www.cadviet.c..._2_man_hinh.lsp

Lisp thay đổi Arrowhead của Leader và Dimension. Tưởng bạn đã quên ai ngờ vẫn nhớ.

 

;; Thay doi Arrowhead cua cac Leader va Dimension duoc chon.
;; Doan Van Ha - CadViet.com - ngay 16/7/2013
(vl-load-com)
(defun C:HA( / lst ss txt i ent L->Ptr #String:Replace)
 (defun L->Ptr(lst)
  (vl-string-trim "()" (vl-princ-to-string lst)))
 (defun #String:Replace(new old str / inc len)
  (setq len (strlen new) inc 0)
  (while (setq inc (vl-string-search old str inc))
   (setq str (vl-string-subst new old str inc) inc (+ inc len)))
  str)
 (setq lst
 '(("01.ClosedFilled" acArrowDefault)
   ("02.Dot" acArrowDot)
   ("03.DotSmall" acArrowDotSmall)
   ("04.DotBlank" acArrowDotBlank)
   ("05.OriginIndicator" acArrowOrigin)
   ("06.OriginIndicator2" acArrowOrigin2)
   ("07.Open" acArrowOpen)
   ("08.RightAangle" acArrowOpen90)
   ("09.Open30" acArrowOpen30)
   ("10.Closed" acArrowClosed)
   ("11.DotSmallBlank" acArrowSmall)
   ("12.None" acArrowNone)
   ("13.Oblique" acArrowOblique)
   ("14.BoxFilled" acArrowBoxFilled)
   ("15.Box" acArrowBoxBlank)
   ("16.ClosedBlank" acArrowClosedBlank)
   ("17.DatumTriangleFilled" acArrowDatumFilled)
   ("18.DatumTriangle" acArrowDatumBlank)
   ("19.Integral" acArrowIntegral)
   ("20.ArchitecturalTick" acArrowArchTick)))
 (setq lst (list (mapcar 'car lst) (mapcar 'cadr lst)))
 (if
  (and 
   (princ "\nChon cac Leader can thay doi Arrowhead...")
   (setq ss (ssget '((0 . "LEADER,DIMENSION"))))
   (not (initget (strcat (L->Ptr (car lst)) " _" (L->Ptr (cadr lst)))))
   (setq txt (getkword (strcat "\nNhap 1 tuy chon tu 01 den 20 [" (#String:Replace "/" " " (L->Ptr (car lst))) "]: "))))
  (repeat (setq i (sslength ss))
   (if (eq (cdr (assoc 0 (entget (setq ent (ssname ss (setq i (1- i))))))) "LEADER")
    (vla-put-ArrowheadType (vlax-ename->vla-object ent) (eval (read txt)))
(progn
     (vla-put-Arrowhead1Type (vlax-ename->vla-object ent) (eval (read txt)))
     (vla-put-Arrowhead2Type (vlax-ename->vla-object ent) (eval (read txt)))))))
 (princ))
 

 

bác xem lại nhé.. hình như không cần lisp mình vẫn chia được màn hình theo phương ngang, bàn độ H (Horizontal) bác thử theo bước sau được không

1. nhấn vào View trên thanh công cụ

2. nhấn vào Viewports

3. sau đó chọn số luợng màn hình cần chia 1,2,3,4 Viewports

4. trên dòng command bác chỉ vần chon V (Vertical) hoặc H (Horizontal) bác muốn chọnchia theo ngang màn hình bác chọn H là oke.. 

Thanh công cụ của CAD thì mình biết chứ nhưng mỗi lần chọn lại rất mất thời gian, chọn view/view port/ 2 view port/horizontal. Rất mất thời gian mà. Nếu có lisp thì mình gõ lệnh rồi chọn điểm cái là đc, chuyển lại 1 màn hình gõ tiếp lệnh 1 lần nữa, sẽ đỡ tốn thời gian hơn nhiều chứ

Ngoài ra CAD mặc định chia 2 màn hình đều nhau, có lisp thì mình có thể tùy ý chọn tỉ lệ bằng cách click chuột trên màn hình, sẽ tiện hơn để vẽ rất nhiều vì màn hình để gióng không cần thiết quá to mà.

Trước mình thấy trên diễn đàn có chia lisp chia dọc rất hay, giá như lisp chia ngang thì tuyệt biết bao.

Cao thủ nào giúp mình cái


  • 0

#4 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 18 July 2013 - 08:51 PM

các cao thủ đâu hết rùi, giúp hộ mình cái. mình rất cần lisp này


  • 0