Chuyển đến nội dung
Diễn đàn CADViet

recycle90

Thành viên
  • Số lượng nội dung

    14
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi recycle90


  1. Trời! Vậy mà lại tưởng anh recycle90 làm cái ...gì

    Cơ mà sao dòm cái cửa của anh chẳng giống ai thế nhỉ, sao anh không dùng block cửa cho hoành tráng: http://www.cadviet.com/forum/topic/21441-share-block-cua-da-dang/

    Dùng lisp có một cái khổ là lại phải mất công nhớ tên lisp...làm sao sướng bằng việc nhớ cái khác :) :) :)

    sản phẩm của mình đây 85004_6129600257_100.gif85004_grundriss.jpg


  2. Mô tả tính năng: vẽ line phụ ngăn cách phòng để hỗ trợ bao phòng bằng lệnh BO

    Lisp gồm có một tính năng duy nhất đó là vẽ đường màu vàng có layer là : 002-Leichtbau

     

     

     

    Ở hình trên là hai type:

    Khi gõ lênh t1 : thì đường màu vàng vẽ qua trung điểm của hai đường song song, sau khi quét chọn hai đường đó

    Khi gõ lệnh t2 : thì đường màu vàng được vẽ nối hai điểm ngoài cùng ( như hình), sau khi quét chọn hai đường đó.

    Nếu có thể thì chọn nhiều cặp đường như thế một lúc.

    Vì bề rộng cữa có tiêu chuẩn nên thường chỉ có cữa rộng dưới 1,2 m.Em vừa làm file mô tả bằng w10 bác xem giúp chót cho em bác nhen  :angry2:

    85004_20140425_210601.png


  3.  Em trót dại nhấn Like nên đành phải spam một phát cho đỡ thiệt thòi! :) :) :)

    Nếu bác Ketxu làm cái loai1 và loai2, chơi kiểu chém đồng loạt nhiều em cùng một nhát, đính kèm điều kiện loai2 chơi được em không vuông góc với OX hoặc OY sẽ đỡ... bức xúc hơn.

    Và đặc biệt, nếu loai1 và loai2 của bác mà không chê em Mline, thì chẳng còn gì sờ pam nữa!

    được như thế thì còn gì bằng bác nhể  :ph34r:


  4.  

    Hình minh hoạ thì k có 2 Line xiên, nên mình quick code như thế này cho bạn, dùng tạm nhé

     

    ;Free from Cadviet @Cadmagic
    (defun *get*(/ s a b lst dxf)
    	(defun dxf(e id)(cdr (assoc id (entget e))))
    	(and (setq s (ssget '((0 . "LINE"))))
    		(> (sslength s) 1)	
    		(setq a (ssname s 0) b (ssname s (1- (sslength s))) lst (mapcar 'dxf (list a a b b)'(10 11 10 11)))
    	) lst
    )
    (defun c:loai1(/ mid l)
    	(defun mid(a b)(mapcar '* (mapcar '+ a b) '(0.5 0.5 0.5)))
    	(and (setq l(*get*)) 
    		(command ".Line" "_non" (mid (car l)(cadr l)) "_non" (mid (caddr l)(last l)) "" "_.Chprop" "_Last" "" "_LAyer" "100" ""))
    	(princ)
    )
    (defun c:loai2(/ l)
    	(and 
    		(setq l(*get*))
    		(setq l (apply 'mapcar (cons 'list l)))
    		(command "_.Rectangle" "_non" 
    			(mapcar '(lambda(x)(apply 'min x)) l)
    			"_non"
    			(mapcar '(lambda(x)(apply 'max x)) l)
    		)
    	) (princ)
    )
    
    Thank ketxu, lisp bạn làm giúp mình rất tốt. Cảm ơn bạn rất nhiêu.

  5.   Vì công việc cứ lập đi lập lại nhiều lần, mà mình chưa biết viết lisp như thế nào. Nay em nhờ mọi người viết giúp em một lisp như sau.

    có 2 tùy chọn:

    **loại 1

    - Có hai đoạn thẳng song song với nhau và có chiều dài bằng nhau ( x và y là hai biến số bất kì).

    - Vẽ một đường thẳng nối trung điểm của hai đường song song đó( và đường này có layer tên là "100"). 

    - Đường này được vẽ khi ta quét chọn hai đường song song kia.85004_20140425_004104.png

     

    **loại 2 :

    - vẽ hình chữ nhật qua bốn điểm của hai đường song song kia( lúc này hai đường song song sẽ là hai cạnh của hình chữ nhật đó).

    Mọi người ai ghé qua giúp em với. Thank tất cả mọi người.

×