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

dovananh.xd

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

    185
  • Đã tham gia

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

Bài đăng được đăng bởi dovananh.xd


  1.  

    Nếu ý bạn là như hình chụp thì làm như sau:

    Z enter\ shift + chuột phải chọn Endpoint\ click điểm 1\ shift + chuột phải chọn Endpoint\ click điểm 2

     

    ah.png

    Cái này hay đấy, đúng ý rồi. Bây h bác phát triển cái này thành lisp đi để anh em cùng tham khảo và sử dụng trong trường hợp có nhiều Rec. Thanks bác rất nhiều!


  2. Cảm ơn bác.

     

    Có nhiều cách để đưa bản vẽ vào khung tên, cách của bác cũng là 1 trong số đó

     

    nhg nó ko fai là cái em định hỏi, như thế thì ... bt (xin lỗi nhé nếu làm bác phật ý)

     

    Cái này em mới thấy người ta làm, duy nhất 1 lần, và ... mặt nghệt ra, mắt chỉ còn tròn như 2 hòn bi ve (vì chưa từng thấy bao jo)

     

    Khung tên trong layout có 1 khung nhìn (như bình thường)

     

    còn trong model có rất nhiều bản vẽ được đặt trong các rec, các rec này tỷ lệ với viewport của layout, và được người vẽ tạo ra một cách có chủ đích chứ ko fai là 1 rec vu vơ.

     

    Khi IN TRONG LAYOUT, họ chọn đến từng bản vẽ muốn in (ví dụ bản vẽ số 2, số 5, số 10...), sử dụng lệnh (em ko rõ là lệnh ji nhg thao tác giống hệt align, và cái rec kia bay về fit hoàn toàn với khung viewport (chính vì vậy em mới dám nói là các rec kia được tạo ra một cách có chủ đích chứ ko fai là một rec vu vơ)

     

    CÁI VẤN ĐỀ LÀ:

     

    làm sao họ "align" được như vậy trong khi họ fai bắt được đối tượng ( gồm bản vẽ và rec) & điểm 1 điểm 3 trong khi nó nằm trong không gian mspace, còn 2 điểm 2 và 4 của viewport lại ở pspace.

     

    < --- cái này đặc biệt đó, ko fai là kiểu copy khung hay hình từ bên này sang bên kia hay ngược lại, Cũng ko fai là cách in thông thường trong layout, zôom zoom rồi pan pan đối tượng vào chính giữa viewport rồi in đâu

     

    Cái này có ve làm khó các bác nhỉ.

     

    Thực ra ứng dụng của nó ko nhiều, nó chỉ có tác dụng khi ta in các bản vẽ có rec tỷ lệ với viewport sẵn rồi (do người vẽ chủ định trước) hoặc ... một số trường hợp gấp gấp khác từng gặp

    Có bác nào trả lời được ý này thì chia sẻ cho anh em trong diễn đàn biết đi


  3. bạn tạo 1 mview ( lệnh mv ) vì khi bạn chuyển sang layout size=1 cho nên khi bạn vẻ rec rất nhỏ so với bản vẽ (vídụ 1x1 so với 1000x1000) do đó ban đầu bạn nên vẻ 1 rec có size bằng size giấyx100 (29700X21000 .... )rồi mới tạo mview sau. sau đó ấn Ctrl+1 xuất hiện hộp thoại property. bạn kéo xuống dưới, lúc này bạn chọn lock = no rồi chình scale là 1:1 . lúc này hình vẻ sẽ bị phóng to ra nhưng ít nhất, phần trong model xuất hiện 1 phần trong mview. bạn kéo rec mview cho đến khi vừa ý, lock lại rồi tắt property là xong. lưu ý ví dụ như model bạn vẻ hiều bảng vẻ thì lúc này mv của bạn sẽ rất lớn, bạn cần tạo 1 mview lớn nhất có thể.

    Bạn trả lời cũng đúng nhưng chả đúng với ý tưởng của người hỏi gì cả. Thanks!


  4. Tue_NV đã góp ý với bạn tại sao bạn không nghe? Bạn khiến cho Tue_NV không vui rồi đấy

     

     

     

    Mở rộng với mọi đối tượng thì tâm được định nghĩa như thế nào ???

     

    Đây là code scale n đường tròn tại tâm của đường tròn

    (defun c:SCT(/ ci tl n i)
    (prompt "\n Moi ban chon CIRCLE")
    (setq ci (ssget '((0 . "CIRCLE"))))
    (setq tl (getreal "\n Nhap ti le scale :") n (sslength ci) i 0)
    
    (while (< i n)
    (setq ent (ssname ci i))
    (command "scale" ent "" (cdr(assoc 10 (entget ent))) tl)
    (setq i (1+ i))
    )
    (princ)
    )

    Thanks!

    Lisp này cực hay. Bác có thể phát triển lisp này để có thể scale các đối tượng như Donut, Block không ạ?


  5. Đây là Lisp mà tôi hay dùng, mọi người cùng thưởng thức

    ;;; ======================== VE DUONG TALUY - LENH B1 (BATTER) =========================
    ;;; ================================================================================
    
    =======
    ;;;================================== Testlay (Tao ten va mau cho layer moi===============================
    (defun testlay (lay co / tam)
    	(setq datalay (list ""))     
    		  	(setq tbl (tblnext "layer" 1))
    		  	(while tbl
    			  	(setq tam (cdr (assoc 2 tbl)))
    		(setq datalay (append datalay (list tam)))
    			  	(setq tbl (tblnext "layer"))
    		       )
    	(setq datalay (cdr datalay))
    	(if (= (member lay datalay) nil)
        (command "LAYER" "n" lay "c" co lay  "s" lay "")
        (command "LAYER"   "s" lay "")
    	)   
    )
    ;; ============================================= Batter ================================================
    (defun c:Batter()
      (setvar "cmdecho" 0)
      (setvar "blipmode" 0)
      (setvar "aunits" 0)
      (setvar "angbase" (/ pi 2))
      (setvar "angdir" 1)
      (if (not lint) (setq lint 10.0))
      (setq int (getdist (strcat "\nInterval <" (rtos lint 2 3) ">: ")))
      (if int (setq lint int) (setq int lint))
      (command "line" (list 0.0 0.0) (list 0.0 0.0001) "")
      (if (tblsearch "block" "tadtick")
         (command "block" "tadtick" "y" (list 0.0 0.0) (entlast) "")
         (command "block" "tadtick" (list 0.0 0.0) (entlast) "")
      )
      (while (setq refent (entsel "\nSelect reference line: "))
     	(command "undo" "group")
     	(redraw (car refent) 3)
     	(initget 1 "Cut Fill")
     	(setq reply (getkword "\n[C]ut or [F]ill batter: "))
     	(setq s (ssget))
     	(command "measure" refent "b" "tadtick" "y" int)
     	(setq p (ssget "p") cn 0)
     	(if s
         (progn
    		(while (< cn (sslength p))
    	       (setq en (entget (ssname p cn)) p0 (cdr (assoc 10 en)) pt1 p0 pt2 nil b (cdr (assoc 50 en)))
    	       (entdel (ssname p cn))
    	       (setq p1 (polar p0 (+ (/ pi 2) B) 0.0001))
    	       (command "line" p0 p1 "")
    	       (command "extend" s "" (list (entlast) p1) "")
    	       (setq xent (entget (entlast)))
    	       (setq xdist (distance (cdr (assoc 10 xent)) (cdr (assoc 11 xent))))
    	       (if (not (equal xdist 0.0001 0.0001))
    		  	(setq pt2 (cdr (assoc 11 xent)))
    		  	(progn
    			     (command "extend" s "" (list (entlast) p0) "")
    			     (setq xent (entget (entlast)))
    			     (setq xdist (distance (cdr (assoc 10 xent)) (cdr (assoc 11 xent))))
    			     (if (not (equal xdist 0.0001 0.0001))
    					(setq pt2 (cdr (assoc 10 xent)))
    			     )
    		  	)
    	       )
    	       (entdel (entlast))
    	       (if pt2
    		  	(if (= reply "Fill")
    			     (if (= (rem cn 2) 0) (command "line" pt1 pt2 "")
    					(command "line" pt1 (polar pt1 (angle pt1 pt2) (/ (distance pt1 pt2) 2)) "")
    			     )
    			     (if (= (rem cn 2) 0) (command "line" pt2 pt1 "")
    					(command "line" pt2 (polar pt2 (angle pt2 pt1) (/ (distance pt2 pt1) 2)) "")
    			     )
    		  	)
    	       )
    	       (setq cn (1+ cn))
    		)
         )
     	)
     	(command "undo" "en")
      )
      (setvar "blipmode" 1)
      (princ)
    )
    (prompt "\nDraw cut/fill batter slope lines.")
    ;====================== BAT1 (BATTER)===========================================
    (defun c:B1( / mode)
    
    (testlay "BONG" "8")
    (setvar "osmode" 0)
    (c:batter)
    (setvar "blipmode" 0)
    (setvar "osmode" 167)
    )

    Bác ơi, bác có thể kiểm tra lại cái lisp này không? nó bị lỗi thế này: khi viết một đoạn text bằng lệnh DT hoặc bất cứ cái gì liên quan đến góc như: Rotation, Obliquing, ... Cụ thể hơn: khi bản vẽ chưa app lisp này vào thì khi click vào đoạn text DT và bấm Ctrl +1 thì các thông số:

    Contents: Giúp em với

    Style: .VnArialNarrow

    Annotative: No

    Justify: Left

    Height: 1.5

    Rotation: 0

    Width factory: 1.000

    Obliquing: 0

    ...

    Nhưng sau khi sử dụng lisp này thì:

     

    Contents: Giúp em với

    Style: .VnArialNarrow

    Annotative: No

    Justify: Left

    Height: 1.5

    Rotation: 90

    Width factory: 1.000

    Obliquing: 90

    ...

    Tại sao lại thế và sửa lại lisp như thế nào?

    Xin cám ơn!


  6. Cảm ơn bác philipdn nhiều, nhưng đúng là lisp của bác bất cập thật. Em thấy trường hợp chân taluy và đỉnh taluy mà không song song mà gấp khúc thì ký hiệu taluy không chuẩn và đẹp lắm. Không bít còn lisp nào ổn hơn không

    Bác ơi, bác có thể kiểm tra lại cái lisp này không? nó bị lỗi thế này: khi viết một đoạn text bằng lệnh DT hoặc bất cứ cái gì liên quan đến góc như: Rotation, Obliquing, ... Cụ thể hơn: khi bản vẽ chưa app lisp này vào thì khi click vào đoạn text DT và bấm Ctrl +1 thì các thông số:

    Contents: Giúp em với

    Style: .VnArialNarrow

    Annotative: No

    Justify: Left

    Height: 1.5

    Rotation: 0

    Width factory: 1.000

    Obliquing: 0

    ...

    Nhưng sau khi sử dụng lisp này thì:

     

    Contents: Giúp em với

    Style: .VnArialNarrow

    Annotative: No

    Justify: Left

    Height: 1.5

    Rotation: 90

    Width factory: 1.000

    Obliquing: 90

    ...

    Tại sao lại thế và sửa lại lisp như thế nào?

    Xin cám ơn!


  7. hề hề hề,

    Bạn hãy xem lại cách đặt các biến hệ thống trong lisp và thay đổi nó theo ý bạn muốn.

    Hãy tham khảo về các biến hệ thống trong CAd ở trong help bạn nhé.

    Chúc thành công.

    Bác phamthanhbinh ơi! Bác có thể xem rồi sửa giúp em cái lisp này được không ạ? em chưa hiểu gì về ngôn ngữ trong lisp nên không biết sửa thế nào. Cám ơn!


  8. Em hay phải rải taluy 1 cách thủ công như hình vẽ, http://www.mediafire...ttt1t15&thumb=4, Điểm P không phải là tâm của cung tròn hay polyline, đỉnh taluy có thể là arc hoặc polyline. Cách vẽ của e rất thủ công mất thời gian. Mong các bác viết giúp e cái lisp vẽ được taluy như trong hình vẽ. yêu cầu lisp nhập được khoảng cách d, và điểm P là mình chọn trên CAD. vạch ngắn của taluy =1/2 vạch dài. tất cả các đường kẻ hướng về điểm P.Em xin chân thành cảm ơn !

    Cái này nói nhiều trên diễn đàn rồi mà em, em dùng công cụ tìm kiếm đi.


  9. Là thế này: Cad của em sau khi app cái lisp (em gửi sau đây) và khi sử dụng lệnh "tl" thì một số thông số của "text", "hatch" như: Rotation, Obliquing,...Angle bị biến thành 90 hết mà không sửa lại được, nếu sửa lại thì tất cả đều bị xoay một góc 90 độ.

    Mong các pro chỉ giáo xem tại sao lại thế và cách chỉnh sửa thế nào?

    Sau đây em gửi cả file trước và sau khi app lisp.

    http://www.mediafire.com/?ryt9vedy2ltva9b


  10. haizzz... Thật là bực mình với mấy cái font CAD này. Tại sao mọi người không dùng font Unicode cho dễ sử dụng nhỉ. Nhưng có điều dùng font Unicode thì có một nhược điểm đó là khi muốn copy sang word thì lại bị lỗi font. Còn về vấn đề đang thảo luận trên kia, mình cũng bị tuơng tự đã là theo một số hướng dẫn như trên nhưng cũng không được. Điên tiết quá mình khởi động lại máy, thật thần kỳ sau khi cài mấy font đó lên và khởi động lại máy thì đọc được rồi. Bạn thử khởi động lại máy xem sao? Cứ nghĩ chỉ cần khởi động lại cad là được, ai dè. Haizzz...

×