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

ceddtu

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

    90
  • Đã tham gia

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

  • Ngày trúng

    1

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


  1. Dễ thui!....

    Muốn layout không bị thay đổi thì:

    1. Đừng có di chuyển trong Model (good)

    2. Nếu lỡ di chuyển rùi...thì UNDO lại!

    3. Nếu lỡ undo không dc thì...tạo lai Viewpỏt

    4. Nếu không muốn tạo lại Viewpỏt mới....thì đừng xài LAYOUT

    5. Nếu vẫn muốn xài LAYOUT thì...đừng di chuyển trong MODEL

    6. Nếu....xài LAYOUT mà còn hỏi mấy câu ngớ ngẩn như zậy thì dễ bị chửi lắm à nghen!

     

    bạn quá đáng vừa thôi nha, ko phải ai cũng "giỏi" như bạn đâu. nếu là người mới sử dụng thì còn nhiều điều phải hỏi lắm.

    thự sự mình ko thích kiểu trả lời của bạn tí nào.bạn có vẻ coi thường người khác quá đó.

    • Vote giảm 1

  2. Mình preview lên nó ra 1 chấm đen giống bạn vậy và in thử 1 bản bị thế nên mình không dám in đồng loạt. Hôm trước mình lại check được 1 file không bị như thế và đã send cho bác Tú rồi. Đang đợi bác ấy sửa, nói chung là có thể do lỗi của từng bản vẽ chứ không phải do chương trình.

    mình cũng không chắc là vì cái j nữa bạn ah, có lúc đc lúc ko.

     

    Ah thank bác Tú nhiều nhiều nha.


  3. nếu mình dùng khung tên bằng lệnh xr thì sao bạn, mình đang dùng civil3d 11 nữa. ko hiểu sao in bên layout chọn tỷ lệ 1:1 mà in ra nó có 1 chấm đen nhỏ xíu hà.

     

    với lại nếu mình dùng 1 block đè nên khung xr roi chọn block thì bị lỗi ở bản vẽ đầu tiên, vẫn chỉ có 1 chấm đen, còn những bản sau thì ok hết.

    hic đau cả đầu.


  4. Ah nhân tiên đây mấy bác cho mình hỏi, Khi mình mở 1 file mới nó báo là thiếu language part, nó hỏi mình là típ tục mở hay cancel, mình lỡ tay bấm cancel đồng thời tick chọn vào ô ko hiển thị hộp thoại này cho lần sau, thế là từ đó mình ko thể nào mở đc những bản vẽ tương tự nữa ( nó tự đọng cancel luôn) vậy làm sao cho hiện lại hộp thoại đó mấy bác,

    Rất mong nhận được sự giúp đỡ.

    Chân thành cảm ơn mấy bác.

    Best regards!


  5. Bạn đặt biến hệ thống FILEDIA = 1

    tại dấu nhắc lệnh gõ : FILEDIA

    -> Enter new value for FILEDIA <0>: 1 Enter

     

    Sau đó khi nhấn tổ hợp Ctrl+Shift+S sẽ xuất hiện hộp thọai .......

    Bác ơi, còn bản vẽ của em thì nó ko cho save hoặc save as j hết. nó hiện bảng thông báo là : One or more object in this drawing can not be save to specified format.The operation was not completed and no file was creaded

    Rất mong nhận đc sự giúp đỡ của các bác.cảm ơn mọi người rất nhiều.

    • Vote tăng 2

  6. Em cảm ơn anh Bình đã giúp em sửa hộ ceddtu nha :)

    @ceddtu: Đây là lisp đầu tay của mình, (nói đúng hơn là mình sửa từ 1 lisp của người khác) học hành bài bản, không sách vở, học từ ngọn xuống gốc nên cái lisp này nỏ rác lắm, mỗi lần thấy nó là mình lại ngại sửa. hề hề, thế nên bạn tự nghiên cứu nó để tự sửa cho đúng ý bạn đi nhé.

    Topic này mình post lại 1 cái lisp tương tự nhưng không cần phải dùng thêm block ngoài nữa. bạn có thể tham khảo thêm

    hjhj thanks bác nhiều lắm, mình vẫn dùng cái líp của bác hôm bữa h để làm việc mà, ko sao hết, nếu là líp đầu tay của bạn thì xuất sắc quá còn gj, chúc bạn thành công


  7. Hề hề hề,

    Bạn ceddtu ơi,

    Cái ni mình đã nói là sửa trộm bác ThaiStreet rồi mừ.

    Mình thấy bạn nói rằng cái bác Thái sửa đã chạy ngon rồi nên mình bắt chước bác ấy, chỉ sửa có mỗi việc là dùng hàm strcat để thêm chữ OFF: vào đầu cái text kết quả thôi mà chứ có sửa gì trong lisp đâu mà nó lại chạy sai nhỉ???

    Hơn nữa cái chỗ khúc mắc như bạn nói lại là do việc chọn điểm phía chèn. Vậy bạn thử check lại, dùng cái mình chưa sửa chạy thử coi có bị lỗi như vầy không. Nếu cũng bị thì là có lỗi chi đó mà mình không biết. Cần phải kiểm lại mới được. Do lisp này bác Thaistreet viết nên mình cũng chưa dò hết từ đầu chí cuối mà chỉ mới đọc lướt qua để hiểu và bổ sung cái bạn cần mà thôi. Hề hề hề,

    Giá bác Thaistreet không bận thì sẽ nhanh hơn. Bạn chịu khó chờ chút nghen.

     

    PS: Bạn đã copy cái "bản vẽ này" của bác Thaistreet vào thư mục D:\Lisp CAD chưa và lưu ý cái ngoặc (Chú ý là không sử dụng bản vẽ BV1 của bạn nữa nhé. vì các block hơi xấu khi canh lề text, đông thời bản vẽ đó có mấy block không sử dụng nhưng mình không có cách gì purge nó đi được nên lisp load rất chậm)

    cám ơn bạn phamthanhbinh nhưng bạn có thể kiểm tra thử đc ko, vì khi mình dùng lisp "tnx" thì đc nhưng khi dùng líp "tn" thì lại ko dc, mình ko rành về auto lisp nên gặp khá nhiều khó khăn, mong bạn xem giúp mình (vì khối luong nhiều mà dùng lisp tnx mất nhiều thao tác hơn nên mình chỉ muốn dùng lisp "tn" thôi


  8. Hề hề hề, Tranh thủ lúc bác Thaistreet vắng nhà, sửa trộm giúp bạn ceddtu một phát hỉ. Bác Thaistreet và các bác khác đừng mắng minh nha:

    Bạn thay đoạn này

    (cond ((> x 0) (setq x (strcat "+" (rtos (* x tx) 2 2))))

    ((< x 0) (setq x (rtos (* x tx) 2 2)))

    ((= x 0) (setq x "0.00"))

     

    bằng đoạn code này

    (cond ((> x 0) (setq x (strcat "OFF: " (rtos (* x tx) 2 2))))

    ((< x 0) (setq x (strcat "OFF: " (rtos (* x tx) 2 2))))

    ((= x 0) (setq x "0.00"))

     

    Hề hề hề, hy vọng trúng chỗ ngứa của bạn ceddtu.

    Cái vụ sang bản vẽ khác không được thì bạn phải chờ bác Thaistreet giải quyết nha, Mình chỉ chôm được có vậy, chôm nữa thì chửa thành nghề. Hề hề hề

    sao em về sửa ko đc bac phamthanhbinh ơi, nó báo lỗi vậy nè, em dùng cái líp "tn" chứ ko phải là lisp "tnx"

    Phia chen:; error: bad argument type: numberp: nil

    nhờ bác sửa giúp em rồi post lên 1 líp hoàn chỉnh đc ko bác, phiền bác chút nha. thành thật cám ơn bác và Thaistreet nhiều lắm


  9. Bạn thay đoạn này

     

    bằng đoạn code này

    (cond ((> x 0) (setq x (strcat "+" (rtos (* x tx) 2 2))))

    ((< x 0) (setq x (rtos (* x tx) 2 2)))

    ((= x 0) (setq x "0.00"))

    bạn ơi cho minh hỏi sao cũng bản vẽ đó ma đem qua may khác dùng thì lại ko đc, dến bước cuối cùng thì lại hiện lên cái bảng block att bắt nhập cao đọ và khoảng cách

    đây là hình ảnh

    http://www.cadviet.com/upfiles/3/untitled_27.jpg


  10. Hề hề hề,

    Khỏi nhờ, nó đây, bạn dùng thử coi sao

    bác phamthanhbinh oi, bac lam on sua gium em cai lisp tchu 1 tí đc ko ạ, em chỉ muốn đổi layer phần số thôi, còn phần đơn vị vẫn giữ nguyên (trong lisp đã đổi lun phần dơn vị cùng layer voi phần số rồi)

    cám ơn bác nhiều lăm, may mà có bác với bác tue_nv chứ ko em no đòn


  11. Sao ceddtu không yêu cầu các Bác ấy viết thêm đoạn code xuất các data vừa chọn/tách thành các Excel sheets dùng cho việc cộng trừ nhân chia sau này luôn...

    dạ cái đó em đang tìm bác ạ, nếu tìm ko đc thì có lẽ lại phải nhờ các bác ấy thôi, hình như trong diễn đàn mình cũng có thì phải.tại lúc này mình đang làm bản vẽ thi công kl nhiều quá ko co thoi gian tìm, với lại phần xuất khối lượng sau khi tình tính xong diện tích.


  12. Hề hề hề,

    Nhờ sự chỉ bảo của bác Tue_NV, mình sửa lại cái lisp viết cho bạn ceddtu như sau, xem ra nó ngon hơn cái cũ nhiều. Hẳn là bác Tue_NV sẽ hài lòng với kết quả này

    (defun c:tchu(/ L pat ents i2 i3 i str str2 C1 C2 C3)
    (setq pat '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "." ","))
    (setq ents (acet-ss-to-list (ssget '((0 . "TEXT") (1 . "* = #*"))))
    L '() i2 nil)
    
    (foreach y ents
    (setq x (cdr (assoc 1 (entget y))))
    (setq i 1 L1 "" L2 "")
    (while (< i (strlen x))
    (setq str (substr x (setq i (1+ i)) 3))
    (if (= str " = ") (progn
    (setq i2 (+ i 2))
    (while (< i2 (strlen x))
    (if (vl-position (setq str2 (substr x (setq i2 (1+ i2)) 1)) pat)
    (setq L1 (strcat L1 str2) i3 i2)
    (setq i2 (strlen x))
    )
    )
    ) )
    )
    (setq C1 (substr x 1 (- i3 (strlen L1)))
    C2 (substr x (1+ (strlen C1)) (strlen L1))
    C3 (substr x (1+ i3) (- i2 i3))
    )
    ;;;;;(alert (strcat C1 "\n" C2 "\n" C3))
    
    (setq els (entget y)
           b (cdr (assoc 41 els))
           p1 (cdr (assoc 10 els))
           h (cdr (assoc 40 els))
           ;;;;p2 (list (+ (car p1) (* b h 0.85 (1+ (strlen C1)))) (cadr p1))
           ;;;;p3 (list (+ (car p2) (* b h 0.85 (1+ (strlen L1)))) (cadr p2))
           st (cdr (assoc 7 els))
           els (subst (cons 1 C1) (assoc 1 els) els)
           ;;;ent (cdr (assoc 0 els))
    )
    (entmod els)
    (setq pls (textbox els)
           dis1 (- (caadr pls) (caar pls))
           p2 (list (+ (car p1) dis1 (* b h )) (cadr p1))
    )
    (entmake
    (list (cons 0 "text") (cons 10 p2) (cons 1 C2) (cons 62 3) (cons 7 st) (cons 40 h) (cons 41 b ))
    )
    (setq ent (entlast)
           pls1 (acet-ent-geomextents ent)
           dis2 (- (caadr pls1) (caar pls1))
           p3 (list (+ (car p2) dis2 (* b h )) (cadr p2))
    )
    (entmake
    (list (cons 0 "text") (cons 10 p3) (cons 1 C3) (cons 62 2) (cons 7 st) (cons 40 h) (cons 41 b ))
    )
    )
    
    )
    
    

     

    Bạn ceddtu đâu rồi, cho ý kiến đi chứ nhể...

    Trước hết mình xin chân thành cám ơn bạn tue_nv, phamthanhbinh đã tận tình giúp đỡ mình, lisp cuối cùng mình down về sử dụng rất đúng ý mình, và tất nhiên kết quả thật mỹ mãn, ko có gì phải phàn nàn nữa cả, hy vọng sẽ gặp đc các bạn để tks 1 lần nữa


  13. Cái này theo mình cũng dễ, không cần quy luật

    Chỉ cần tạo họp thoại dialog ghi lại câu dtext đó

    Quy luật của nó là người dùng lựa chọn tuỳ ý theo dấu cách SPACE

    Dùng hàm while để tách riêng ra từng đoạn text nhỏ (mỗi câu text được tách ra = khoảng trống space)

    Trên hộp thoại xài phím Next (để chọn từng đoạn text theo yêu cầu) và phím OK để ghi ra đoạn text cần tách là xong

    Nhưng trường hợp này cũng ít gặp khi thao tác với AutoCad

    thật sự những thủ thuật bạn nói đối với mình rất mới lạ, bạn có thể hưóng dẫn cụ thể từng bưóc đc ko, ví dụ làm sao tạo hộp thoại dialog, lệnh while là như thế nào, sao mình tháy giống excel chứ ko phải là bản vẽ auto cad, có lẽ do mình nói ko kỹ, tks bạn nha

     

    Mình thấy cách này thì đỡ phải viết thêm líp này.

    Chọn cái DTEXT rồi dùng cái líp Convert TEXT to MTEXT của EXPRESS TOOL. Rồi vào cái mtext đấy muốn chia đến đâu thì ấn Ẻnter cho nó xuống dòng. Thấy vừa ý rồi thì dùng lệnh EXPLODE cái MTEXT ấy đi là nó biến thành Dtext rồi.

     

    đây cũng là 1 cách, cám ơn bạn nhưng như vậy sau khi tách xong bạn vẫn phải move tung text lên vị trí cũ để tạo thành 1 câu liên tục, vậy có mất thòi gian quá ko bạn,

    thanhk bạn nhiều


  14. Hề hề hề,

    Chắc chết thì làm làm chi hỉ??? Nghỉ cho nó béo sướng hơn.

    Còn không chết mà vẫn phải làm thì hãy nghĩ kỹ cái yêu cầu của bác Duy đó và đưa ra cái quy luật cần tách hoặc giả post lên vài cái text chưa tách và cái kết quả sau khi tách để mọi người còn đoán được cái bạn cần là chi nhé. Với một cái ví dụ chỏng lỏn vậy thì chịu khó ngồi chờ xem may ra có ông thần nào đoán được cái bạn cần không đã. Hề hề hề.....

    http://www.cadviet.com/upfiles/3/03_dmm_completion.dwg

    đây là file cad của mình, mình cần tách các dòng text ra làm 3 phần: 1 phần là diễn giài tên khối lwợng, 1 phần là phần số, một phần còn lại là phần đơn vị, Mình đã làm mẫu 1 số dòng rồi(những dòng mà phần số mình đổi thành layer màu xanh ấy)

    Rất mong nhận được sự giúp đỡ của mọi người, chân thành cám ơn mọi ý kiến dóng góp


  15. Xin chào mọi người, mình có một vấn dề cần mọi người giúp đỡ: mình cần tách 1 đoạn text gồm nhiều từ thành nhiều đoạn nhỏ, ví dụ mình có 1 câu viết bằng Dtext : "Dien dan cadviet rất hữu ích" Giờ mình muốn chia câu đó thành 3 câu riêng biệt là " Dien dan" ; "cadviet" ; "rất hữu ích"

    Mọi người có cách nào giúp mình với,vì mình cần tách câu với một khối lượng khổng lồ, cứ copy rồi edit chắc mình chết mất. Rất cám ơn mọi người


  16. Bạn thay đoạn này

    Trích dẫn

    (cond ((> x 0) (setq x (strcat "" (rtos (* x tx) 2 2))))

    ((< x 0) (setq x (rtos (abs (* x tx)) 2 2)))

    ((= x 0) (setq x "0.00"))

     

    bằng đoạn code này

    (cond ((> x 0) (setq x (strcat "+" (rtos (* x tx) 2 2))))

    ((< x 0) (setq x (rtos (* x tx) 2 2)))

    ((= x 0) (setq x "0.00"))

     

    oh, dược rồi bạn ah, nhưng có cách nào bỏ dâú công khi kc ơ bên phải ko bạn, thank bạn nhiều nha, chúc bạn nhiều thành công và may mắn trong cuộc sống

    Ah nhan tien cho minh hoi luon nếu muốn thêm nếu muốn thêm chữ Off: vào trước kc và elve: vào trưóc cao độ thì làm sao bạn, ví dụ cao độ là 10 thì thể hiện là ELEV: 10,

    khoảng cách về bên trái là 15 thì thể hiện là OFF: -15, còn kc về bên phải 15 thì thể hiện là OFF: 15 và chèn ngay tại tim thì khoảng cách băng 0 khong có dâú +/- gì cả. ths bạn nhiêù


  17. hjhj ngại quá nhưng vân còn tí xíu nưã mong các bạn chỉnh giúp mình đươcj ko, đó là cái khoảng cách nêú phía bên trái tim tuyên thì chèn thêm dâú trừ đươcj không ( cái này là chủ đâù tư yêu câù chưs mình ko tưj nghĩ ra) râts ming các bạn giúp mình, nêú ỏ sai gon mình mơì mâý bạn đi "làm tí" nha

×