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

nguyen tuan hung

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

    41
  • Đã tham gia

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

Bài đăng được đăng bởi nguyen tuan hung


  1. Tại sao sau khi bind chọn bind hoặc insert thì lại mất đi và không xplode được. Mình loay hoay mãi mà không được. Mình dùng cad2007

    http://www.cadviet.c..._toa_do_gps.dwg

    Nguyên nhân không Bind được Xref "bankhunhl" vì Xref đó mấy đường dẫn dồi bạn à

    Cách khác phục là Detach Xref "bankhunhl" đi và Xref lại là OK


  2. em có 1 file khi vẽ lệnh pline xong dùng tiếp pedit để cho nét đó đậm lên thí dụ 100,thì không thấy độ dày của nét mà chỉ thấy 1 khung hình vuông rỗn bên trong,anh chị có cách nào giúp em,em dùng lệnh fill rùi mà vẫn không xử lý được lỗi này.

     

    1.jpg

    chọn width trong lệnh pe

    3.jpg

    lệnh pe

    3.jpg

    ra hình như thế này.

    4.jpg

    Bạn dùng thư lệnh

    Plan sau đó enter 2 lần xem sao.


  3. Mình có một cái file CAD như thế này : http://www.cadviet.c...iles/3/s200.dwg

     

    Khi copy đối tượng sang một bản vẽ khác thì bị thu nhỏ tới gần 30 lần mặc dù mình đã chỉnh unit drawunit trong option theo hướng dẫn của nhiều bạn như trong 2 hình sau :

     

    unit_draw.jpg

     

    unit_op.jpg

     

     

    nhưng chẳng có hiệu quả gì ,hình vẫn bị thu nhỏ y trang như lúc đầu .Mình có hỏi nhiều người mà họ lắc đầu nói bó tay.

     

    Rất mong các bạn pro và những kỹ thuật viên ở diễn đàn CAD giúp đỡ giải đáp thắc mắc này dùm mình !

    Ở trong bảng "Drawing Units" của cả 2 bản vẽ và chuyển "Units to scale inserted content" về hết "milimet" hoặc "inches" tùy mục đích sử dụng.

    Mình cũng đã từng bị lỗi này và sửa thì thấy ok,bạn làm thử xem có được không.

    Chúc bạn may mắn...


  4. em đang dùng chuột acer vẽ CAD, nhưng mỗi khi em phóng to màn hình ra thì con chuột lại ko thể bắt điểm hay di chuyển đúng ý của em mặc dù em có thực hiện các lệnh bắt điểm rồi.

    Giờ em phải làm sao ? độ phân giải hợp lý của màn hình và chuột để vẽ CAD là bao nhiêu ?

    Bạn thử chỉnh SNAP ở góc dưới màn hình về OFF xem sao.


  5. Đây là lisp do bác Bình viết:

    (defun C:OCA( / e e0 dn p1 cn c n p2 dat) ;;;Make Ordinal number. Copy from Atttribute block
    (setq
    e0 (car (entsel "\nSelect attribute block:"))
    e (entnext e0)
    )
    (if (/= (etype e) "ATTRIB") (progn (alert "Object is not a Attribute Block!") (exit)))
    (setq name (getstr "\n Entering the attribute name: "))
    (while (/= (cdr (assoc 2 (entget e))) name)
    (setq e (entnext e))
    )
    (if e
    (progn
    (setq
    dn (getint "\nIncrement <1>: ")
    p1 (getpoint "\nBase point:")
    cn (cdr (assoc 1 (entget e)))
    )
    (if (not dn) (setq dn 1))
    (if (= cn "") (setq cn "1"))
    (setq
    c (vl-string-right-trim "0 1 2 3 4 5 6 7 8 9" cn)
    n (vl-string-subst "" c cn)
    )
    (while (setq p2 (getpoint p1 "\nNew point : "))
    (command "copy" e0 "" p1 p2)
    (if (= n "")
       	(setq cn (incC cn))
       	(setq cn (strcat c (incN (vl-string-subst "" c cn) dn)))      
    )
    (setq
       	dat (entget (entnext (entlast)))
       	dat (subst (cons 1 cn) (assoc 1 dat) dat)
    )
    (entmod dat)
    (command "regen")
    )
    )
    )
    (princ)
    )
    

    Nhưng khi sử dụng nó báo lỗi error: no function definition: GETSTR.Nhờ các bác xem và chỉnh sửa giùm.Thanks.

    Bạn vào đây xem "http://www.cadviet.com/forum/index.php?showtopic=7906" lisp của bác SSG mình thấy lisp rất "pro"

     

    chúc bạn thanh công.


  6. chào các bạn, hiện giờ lệnh tắt trong máy mình tùm lum hết, mình muốn reset lại như lúc cài đặt, mình đang sài cad2007, nếu bạn nào cài cad20007 rùi mà chưa đặt lệnh tắt có thể copy dùm mình cái acad.pgp, minh chép vào cho lẹ, cám ơn các bạn nhiều.

    Bạn vào đây xem đã đứng của bạn chưa nhé http://www.cadviet.com/forum/index.php?showtopic=276

    Chúc thành công...


  7. Hề hề hề,

    Vấn đề của bạn là bản thân cái block mẫu của bạn đã là block unnamed rồi nên lấy cái gì mà quản lý nó. Nếu bạn muốn quản lý thì hãy đặt tên cho cái block mẫu của bạn là Ok.

    Lisp hoàn toàn chả cần chỉnh sửa chi cho nó ..... vi phạm bản quyền.

    Hề hề hề,,,

    Chúc bạn thành công.

    Block ban đầu của em có tên là "LTG-C42 with Battery" mà,sao bác lại bảo là block unnamed.

    Bác giải thích cho em 1 chút nha.hi

    Em hưng...


  8. @Nguyen tuan hung :

    - Bạn không nên mở topic mới để hỏi về 1 lisp đã post trên diễn đàn. Tốt nhất hãy hỏi ngay tại topic đó.

    - Bài viết bạn phạm quy về đặt code trong thẻ Code, mặc dù nhắc 2 lần nhưng mình vẫn chưa thấy bạn sửa ? Nếu thấy sự trả lời của mọi người trên diễn đàn là cần thiết, hoặc tôn trọng người đọc, mong bạn nhanh chóng sửa :)

    - Vấn đề bạn hỏi, có thể xử lý như bác Bình đã hướng dẫn, lisp chuyển từ Anonymous Block sang block thường mình cũng viết giúp bạn rồi. Ngoài ra có thể dùng các lisp khác để ra kết quả tương tự, nhưng không phải CVmem viết, khó đọc lắm!

    Vâng nhưng lời anh nói em sẽ rút kinh nghiệm cho những bài viết sau.Để anh không phải mất thời gian nhắc nhở em và dành nó để giúp nhưng mem khác.

    Em hưng...


  9. Chỗ này chắc bạn phải nhờ Autodesk hén :) Vì mình có ngồi mò mẫm 20 năm nữa cũng khó ra được cách thức nhận biết 2 Block có tên khác nhau mà hình dạng giống nhau được :D

    Hi,hình như bác chưa hiểu y' của em.

    VD: 2 block(không tên) giống nhau như File em up ở trên, Khi dùng lệnh "Lisp-nb" của anh thì cả 2 block đó có cùng tên với nhau có được không ạ ?

    Nếu được thi a giúp em với :D

    Em hưng


  10. Vấn đề của bạn có thể xử lý bằng lisp này cũng được :

    http://www.cadviet.c...31

    Nó sẽ copy block Anon bạn chọn thành 1 block mới, rồi bạn chèn vào đúng điểm chèn cũ của block đó ( trong ví dụ cảu bạn thì toàn '( 0 0 0).

    Từ lisp này cũng có thể biến hóa thành lisp convert block anon -> block thường :

    ;| Change Anonymous Block to normal with new Name
    @ Ketxu 27 - 9 - 2011
    |;
    (defun c:nb( / blkObj blkName blkNew_Name fn pt)
    (vl-load-com)
    (defun ST:SS->List-Vla (ss / n e l)
     (setq n (sslength ss))
     (while (setq e (ssname ss (setq n (1- n))))
    (setq l (cons (vlax-ename->vla-object e) l))
     )
    )
    
    (defun change_block(old new)
    (foreach blkObj (setq ss (ST:SS->List-Vla (ssget "X" (list (cons 0 "INSERT")(cons 2 old)))))
    (vla-put-name blkObj new);;change the name
    (vla-update blkObj)
    )
    )
    (grtext -1 "Free Lisp From Cadviet @Ketxu")
    (setvar "cmdecho" 0)
    (setq
    blkObj (vlax-ename->vla-object (car(entsel "\nBlock Source :")))
    blkName (vlax-get-property blkObj
       (if (vlax-property-available-p blkObj 'EffectiveName) 'EffectiveName 'Name)
     )  
    blkNew_Name (getstring "\n New Name :")
     fn (strcat (getenv "TEMP") "\\" blkNew_Name ".dwg")
    )
    (command ".-wblock" fn "_Y" blkName "")  
    (command "._insert" (strcat blkNew_Name "=" fn) nil )
    (if (wcmatch "`*" (substr blkName 1 1))(setq blkName (strcat "`*" (substr blkName 2))))
    (change_block blkName blkNew_Name)
    (vl-file-delete  fn)
    )
    

    Lisp này chạy tốt anh à.

    Anh Két có thể sửa 1 chút là khi sử dụng lệnh nb -> chọn 1 đối tượng(block không tên)->đặt tên là "1"(khi kết thúc tất cả các block không tên mà hình dạng giống như block mình vừa chọn ban đầu đều có tên là "1".

    Vi dụ có 5 block giống nhau khi thao tác 1 lần xong thì 5 block đều có tên giống nhau.

    Em hưng


  11. Lisp này đã làm được điều bạn muốn (chỉ có điều phải chú ý khi chọn Block) :) Khi change block xong, có thể cái block chạy xa quá, bạn zoom all để thấy nó. Nếu muôn chỉnh lại điểm đặt của Block, bạn lại tiếp tục tìm 1 lisp chỉnh điểm đặt của bác Duy trên diễn đàn đó ^^

    P/s : đề nghị bạn cho đoạn mã vào thẻ Code

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

    Em đã tìm thấy lisp dời điểm chèn block của bác Duy và em áp dụng cả 2 lisp nhưng kết quả lại không được như em mong muốn đó là em cần sau khi thay block xong thi các block vẫn ở nguyên vị trí cũ mà không bị di chuyển.Chứ trong bản vẽ có hàng trăm di chuyển rất lâu.

    Em đã thử 2 cách là:

    1. Áp dụng lisp thay block trước xong đến lisp dời điểm chèn.(Block không đúng vị trí).

    2. Áp dụng lisp dời điểm chèn trước xong đến lisp thay block.(không thể dời được điểm chèn của Block không tên).

    Anh Ket Xem họ em với.

    Em hưng


  12. Lisp bạn lấy được từ đâu, gửi link hoặc file lên mình mới sửa được chứ ?

    File của em thì vẫn giống như file em đã up bên trên.Có 2 block giống nhau nhưng không tên.

    Em đã làm theo cách bác nói là phá 1 block đó ra và tao nó thành 1 block giống như thế nhưng có tên.Sau đó em áp dùng lisp này : (nhưng vẫn thấy không được).

    Anh Ket xem em bị lỗi ở chỗ nào nha

    Em hưng

     

    (defun c:mabt ()

     

    (setq ddd (entsel "\nChon Block mau"))

    (while

    (or

    (null ddd)

    (/= "INSERT" (cdr (assoc 0 (entget (car ddd)))))

    )

    (princ "\nDoi tuong khong phai la Block! Chon lai")

    (setq ddd (entsel "\nChon Block mau"))

    )

     

    (setq DT (car ddd))

    (setq DTM (entget DT))

    (setq TENKHOI (cdr (assoc 2 DTM)))

     

    (Princ "\nChon BLOCK muon chinh :")

    (setq xx (ssget '((0 . "insert"))))

    (setq L 0)

    (setq M (sslength XX))

    (while (< L M)

    (setq DTs (ssname XX L))

    (setq DTMs (entget DTs))

    (setq TENKHOIM TENKHOI)

    (setq DTMs (subst (cons 2 TENKHOIM) (assoc 2 DTMs) DTMs))

    (entmod DTMs)

     

    (setq L (1+ L))

    )

     

    (setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI")

    (Princ))


  13. Rất tiếc đây không phải block anon mà lisp đề cập tới ^^ (*U) Vẫn còn may là bạn có thể Xplode nó ra để sửa smile.png Nếu có nhiều block giống nhau, bạn tạo lại 1 block thường rồi dùng các lisp thay thế Block trên 4r

    Em tìm thấy lisp rồi, và cũng đã tạo ra block như bác hướng dẫn như bác hướng dẫn nhưng không replace đc vi block không có tên.

    Bác xem hộ em với nha.

    Em Hưng.


  14. Bạn copy thiếu dấu ngoặc.

    Bạn hãy thử lại copy một cách cẩn thận đoạn code trên rồi paste vào file lisp.

    http://www.cadviet.com/upfiles/3/help_me.dwg

    Em có File này áp dụng lisp của bác hoành mà không được.

    Bản vẽ của em thường có rất nhiều block không tên như thế,em toàn phải X nó ra để chỉnh sửa.

    Các bác có cách nào hay thì chỉ cho em với.

    Em Hưng


  15. Nếu bạn muốn tạo một anonymous block (là block không có tên) trong bản vẽ bạn chỉ cần copy các đối tượng mà bạn muốn tạo block bằng cách dùng tổ hợp phím Ctr+C, sau đó dùng lệnh PasteBlock.

     

    Với block tạo bằng phương pháp này, bạn không cần phải quản lý block (thật ra là không quản lý được). Khi bạn xóa đối tượng này, ACAD tự động Purge các anonymous block ra khỏi block table sau mỗi lần mở file.

    Bác Hoành ơi lisp này em đã add vào máy và em thử dùng với (Block ATT không tên như VD của bác) thì ổn, nhưng có một điều là khi em dùng nó với (block không tên mà không phải là block ATT, chỉ là block thường thôi) thì em bedit không có được bác à(vì nó vẫn chưa có tên).Mong bác giải thích giúp em vấn đề này với.


  16. Bác cho e hỏi là sao khi e làm theo cách của bác khi MVMIN thì nó không thấy chỉnh sủa gì nhỉ.

    Em nói như thế này cho dễ hiểu nha.Khung MV nhỏ của e bên model có 2 hình nhưng sang layout e chỉ view có 1 hình thôi.Và bi giờ ý của e là làm thế nào để có thể view được cả 2 hình mà không phải MOVE khung MV nhỏ ra khỏi khung MV to(Vì khung MV nhỏ nằm hoàn toàn trong khung MV lớn).


  17. các bác ơi chỉ dùm em các bước tạo block với em mơí học vẽ nên chưa rành lắm!hi thank các bác nhiêù

    4room đã nói rât nhiều về vấn đề này rồi.Ban nên tìm ở phần search.

    1.Tạo đối tượng cần để biến block.

    2.Đánh lệnh B

    3.Sau khi xuất hiện bảng thì chọn select object (chọn đối tượng).

    4.Chọn Pick point (chon điểm chèn của block).

    5.ok.

    (Block còn nhiều ứng dụng rất hay ban chịu khó search trên diễn đàn nhá)

     

    Chúc bạn thành công...


  18. Chào các bác.Em có 2 khung MV,khung MV nhỏ hoàn toàn nằm bên trong khung MV lớn.Khi em kích vào khung MV nhỏ để sửa thì không sủa được khung MV nhỏ mà thay vào đó là chỉnh sửa khung MV lớn.Bác nào từng gặp trường hợp này và biết cách giải quyết nó thi trả lời giúp em nha.

    Em xin chân thành cảm ơn!

     

    Nguyễn Tuấn Hưng


  19. em có 2 đối tượng có 1 phần các đối tượng đè lên nhau.giả sử đối tượng A đè lên đối tượng B nên chỗ đè lên nhau hiển thị đối tượng A.giờ e muốn làm cho tại chỗ đè lên nhau đối tượng B được hiển thị

    có lệnh nào như thế ko ạ ?

    mong được mọi người giúp đỡ !. cảm ơn nhiều

    Bạn dùng thử lệnh sau :

    dr -> select object (cần hiển thi lên trên)-> Front.

    Chúc bạn thành công.

    • Vote tăng 2

  20. Cái thằng bản quyền thì em chưa dùng nên ko rõ,

    Bác thử gõ lệnh : Menuload -> xuất hiện hộp thoại -> chọn Load File acetmain.cui lên là đc

    Cả 2 cách nếu làm cho máy không bị quản lý thi ok.Nhưng đằng này máy bị quản lý lại khác.

    1.load acetmain.cui vào thi ok nhưng ki dùng thử lệnh đếm block thi lại không được.(Em copy ecetmain.cui vào suoport nhưng không thể copy vì ổ C đã bị IT quản lý).

    2.setting -> ..... cũng không được vì nó không hiện lên "change/remove".

    Còn bác này có cách nào hay ko chỉ giúp thằng em với.

×