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

master_worse

Nhà quảng cáo
  • Số lượng nội dung

    168
  • Đã tham gia

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

  • Ngày trúng

    1

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


  1. Vậy còn các điểm cong các đường arc nối vào thì sao chỉ biết toạ độ vẽ polyline thì chỉ là đường polyline chứ ko được như ban đầu.

    căn cứ vào hệ số "Bulge" -DXF groupcode 42- để xác định độ cong của *POLYLINE

    nếu bạn đã xác định được các đỉnh thì việc xác định hệ số này cũng dễ thôi

    sau khi có tọa độ các đỉnh và hệ số bulge sử dụng entmake để tạo lại *POLYLINE theo ý mình.

    ...


  2. 1----tôi có file bản vẽ, bình thường crosshair vẫn nằm ngang và thẳng đứng.

    nhưng khi tôi dùng lệnh ucs- mặc định world thì cả hình trục toạ độ và crosshair bị xoay nghiêng, dẫn đến

    khi sửa text hoặc dùng hatch cũng bị nghiêng theo. làm thế nào để nó về bình thường nhỉ??????

    2------ khi tôi insert 1 hình thì điểm insert quá xa, không ở ngay block nên phải zoom all mới tìm thấy nó đc.

     

    chuyên gia nào biết chỉ giùm với.

    Thanks!!!!!!!!!!!

    Bạn thử lệnh DVIEW xem

    ------------------------------------------------------------------------------------------

    Command: dview

    Select objects or <use DVIEWBLOCK>:

    *** Switching to the WCS ***

    Enter option

    [CAmera/TArget/Distance/POints/PAn/Zoom/TWist/CLip/Hide/Off/Undo]: tw

    Specify view twist angle <20.00>: 0

    Enter option

    [CAmera/TArget/Distance/POints/PAn/Zoom/TWist/CLip/Hide/Off/Undo]:

    *** Returning to the UCS ***

    Regenerating model.

    -----------------------------------------------------------------------------------------

    Command: ucs

    Current ucs name: *NO NAME*

    Specify origin of UCS or [Face/NAmed/OBject/Previous/View/World/X/Y/Z/ZAxis]

    <World>: w


  3. Chết thật.Giờ em mới biết biến cục bộ mất đi thì không sử dụng như đối số đc nữa.Nó free rồi thì hết gọi luôn ^^.E sẽ nghiên cứu tiếp ạ ^^.Còn vấn đề với thằng thứ 2 nữa :|

    Cần phân biệt rõ đối số, biến toàn cục và biến cục bộ. Trên diễn đàn hình như có nói vấn đề này bạn tim xem nhé

    (defun abc (doiso1 doiso2 doiso3 / bien-tutimhieutiepdinha ))

    goi (abc doiso1 doiso2 doiso3)

    P/S: Cứ từ từ - Không gấp được đâu

    Bài thơ chưa biết đặt tên :(

     

    Cứ thủng thẳng từ từ

    Đừng vội bước thật sâu

    Nên đi từ căn bản

    Bắt đầu từ đơn giản

    Đến điều phức tạp hơn

    Và phức tạp hơn nữa

    Khi đó, em sẽ hiểu

    Em đang đọc những gì?

     

    Cuộc sống không chờ đợi

    Thời gian lặng lẽ trôi

    Hãy bước đi em nhé

    Nghị lực và niềm tin

    Đồng hành cùng sánh bước

     

    Đà Nẵng, sáng ngày 27/8/2010

    Tue_NV

    • Vote tăng 1

  4. Cái thứ nhất :

    (defun vcurvedim (vcurvescale / dstylename)      
         ....
       (setq dstylename "ENGLISHVC")
         (command "dimstyle"           "save"           dstylename      ) ;_ end of command
       ) ;_ end of defun
    

    Hàm vcurvedim có một đối số vcurvescale.

    Lúc dùng thì em dùng ntnày

    (defun dimstyle-vidu (/ dimstyle oldvars)
     (setq dimstyle (getvar "dimstyle"))
     (or (tblsearch "dimstyle" "vidu ")
         (progn (setq oldvars (mapcar 'getvar '("cmdecho" "textstyle")))
                (setvar "cmdecho" 0)
                (or (tblsearch "STYLE" "vidu ") (command "-style" "vidu " "cour.ttf" "0.0" "0.8" "0" "No" "No"))
                (mapcar 'setvar '("cmdecho" "textstyle") oldvars)
                (setvar "dimaltd" 2) ;_alt precision
                (setvar "dimapost" "") ;_alt prefix and suffix 
                (setvar "dimaltrnd" 0.0000) ;_alt roundoff
                (setvar "dimaltf" 25.4000) ;_alt scale factor
                (setvar "dimalttd" 2) ;_alt tol precision
                (setvar "dimalttz" 0) ;_alt tol zeroes
                (setvar "dimaltu" 2) ;_alt units
                (setvar "dimaltz" 0) ;_alt zeroes
                (setvar "dimalt" 0) ;_alternate units (on/off)
                (setvar "dimaunit" 0) ;_angle format
                (setvar "dimadec" 0) ;_angle precision
                (setvar "dimazin" 1) ;_angle zero supression
                (setvar "dimarcsym" 0) ;_arc len symbol
                (setvar "dimblk" ".") ;_arrow
                (setvar "dimblk1" ".") ;_arrow 1
                (setvar "dimblk2" ".") ;_arrow 2
                (setvar "dimasz" 0.1) ;_arrow size
                (setvar "dimcen" 0.0900) ;_center mark size
                (setvar "dimdsep" ".") ;_decimal separator
                (setvar "dimclrd" 1) ;_dim line color
                (setvar "dimdle" 0.0000) ;_dim line ext
                (setvar "dimtofl" 1) ;_dim line forced (on/off)
                (setvar "dimltype" "byblock") ;_dim line linetype
                (setvar "dimlwd" -2) ;_dim line lineweight
                (setvar "dimdli" 0.0000) ;_dim line spacing
                (setvar "dimltex1" "byblock") ;_ext line 1 linetype
                (setvar "dimltex2" "byblock") ;_ext line 2 linetype
                (setvar "dimclre" 1) ;_ext line color
                (setvar "dimexe" 0.0100) ;_ext line extension
                (setvar "dimlwe" -2) ;_ext line lineweight
                (setvar "dimexo" 0.0500) ;_ext line offset
                (setvar "dimatfit" 3) ;_fit: arrow and text
                (setvar "dimtmove" 2) ;_fit: text movement
                (setvar "dimfxlon" 0) ;_fixed ext line enabled (on/off)
                (setvar "dimfxl" 0.0100) ;_fixed ext line length
                (setvar "dimfrac" 0) ;_fraction format
                (setvar "dimjogang" (/ (* 90 pi) 180)) ;_large rad dim jog angle
                (setvar "dimldrblk" ".") ;_leader arrow
                (setvar "dimlfac" 100.0000) ;_length scale
                (setvar "dimlunit" 2) ;_length units
                (setvar "dimsd1" 0) ;_no dim line 1 (on/off)
                (setvar "dimsd2" 0) ;_no dim line 2 (on/off)
                (setvar "dimsoxd" 0) ;_no dim lines outside (on/off)
                (setvar "dimse1" 0) ;_no ext line 1 (on/off)
                (setvar "dimse2" 0) ;_no ext line 2 (on/off)
                (setvar "dimscale" 0.0000) ;_overall scale
                (setvar "dimdec" 1) ;_precision
                (setvar "dimrnd" 0.0000) ;_roundoff
                (setvar "dimsah" 1) ;_separate arrows (on/off)
                (setvar "dimtfillclr" 0) ;_text background color
                (setvar "dimtfill" 0) ;_text background enabled
                (setvar "dimclrt" 256) ;_text color
                (setvar "dimtxt" 0.05) ;_text height
                (setvar "dimtix" 1) ;_text inside (on/off)
                (setvar "dimtih" 0) ;_text inside align (on/off)
                (setvar "dimgap" 0.0500) ;_text offset
                (setvar "dimtoh" 0) ;_text outside align (on/off)
                (setvar "dimjust" 0) ;_text pos hor
                (setvar "dimtad" 0) ;_text pos vert
                (setvar "dimpost" "") ;_text prefix and suffix
                (setvar "dimtxsty" "vidu") ;_text style
                (setvar "dimtm" 0.0000) ;_tol dev lower
                (setvar "dimtp" 0.0000) ;_tol dev upper
                (setvar "dimtol" 0) ;_tol deviation (on/off)
                (setvar "dimlim" 0) ;_tol limits (on/off)
                (setvar "dimtolj" 1) ;_tol pos vert
                (setvar "dimtdec" 1) ;_tol precision
                (setvar "dimtfac" 1.0000) ;_tol text scale factor
                (setvar "dimtzin" 8) ;_tol zero suppression
                (setvar "dimzin" 8) ;_zero suppression
                (command ".-dimstyle" "Save" "vidu ")
         ) ;_ end progn
     ) ;_ end or
     (command ".-dimstyle" "Restore" dimstyle)
    ) ;_ end defun
    

    • Vote tăng 1

  5. Các bác cho e hỏi nhanh hàm trả từ số về string và hàm ghép 2 string với ^^.Chẳng là sau khi người dùng nhập tỉ lệ,em vừa muốn dùng số đấy để làm đối số cho hàm tạo dim với dimlfac = tile,vừa muốn tạo tên Dim là D-tile ^^

    hàm:

    Converts a number into a string

    (rtos number [mode [precision]])

    The rtos function returns a string that is the representation of number according to the settings of mode, precision, and the system variables UNITMODE, DIMZIN, LUNITS, and LUPREC.

    ---------------------------------------------

    Converts a string into a real number

    (atof string)

    ----------------------------------------------

    Converts a string that represents a real (floating-point) value into a real value

    (distof string [mode])

    The distof and rtos functions are complementary. If you pass distof a string created by rtos, distof is guaranteed to return a valid value, and vice versa (assuming the mode values are the same).

    ------------------------------------------------

    Converts a string into an integer

    (atoi string)

    ----------------------------------------------

    Returns the conversion of an integer into a string

    (itoa int)

    ---------------------------------------------------------------

    Returns the conversion of a number into a real number

    (float number)

    ---------------------------------------------------------------------

    Returns a string that is the concatenation of multiple strings

    (strcat [string[string]...])

    • Vote tăng 1

  6. Mình thử sửa lại cái code của 1 bác trên 4rôm để đc cái líp quay text mà no không chạy đc!! ai xem giup mình với

     

    (defun c:rot (/ txt newang newrad i)

    (setq ss (ssget '((0 . "*text")))

    newang (getreal "\nNhap goc quay: ")

    newrad ((/ (* newang pi) 180))

    i 0 )

    (while (< i (sslength ss)).... );_ end while

    );_ end defun

    Sửa thành (/ (* newang pi) 180)

    • Vote tăng 1

  7. Sao bạn không dùng fi (FILTER) ?

    Command: fi -> Select filter chọn Text Value nhập vào ô trống bên dưới *nguyễn văn* -> Add to list -> Apply -> chọn tất tần tật

    ----------------------------

    Không biết đúng ý không

    (defun c:muondatgithidat (/ ss)
     (setq ss (ssget "_X" (list '(0 . "*TEXT") (cons 1 (strcat "*" (getstring t "\Nhap chuoi can tim: ") "*")))))
     (sssetfirst ss ss)
     (princ)
    )

    • Vote tăng 1

  8. (cụ thể là trong dòng ;1,;2 bên dưới ạ)

    (defun C:dvc (/ GOC1 dx dy temp-1 temp-2 GOC2 TRUC1 TRUC2 TRUC3 TRUC4 TAM temp3 temp4)
      (setq dtemp1 (polar GOC3 (dtr 90) 5)));;----------1 Lay diem keo chan dim

    Dòng này dư một)

    thay gì phài dùng hàm DTR tại sao không sử dụng trực tiếp đơn vị RADIAN trong các trường hợp 0.0 0.5pi pi 1.5pi ...

    (setq dtemp1 (polar GOC3 (* 0.5 pi) 5))

    Càng ngày càng bị sai sót trong cách diễn đạt

    4 ngày post hơn 100 bài thì sai sót cũng bình thường

    "Làm nhiều sai nhiều làm ít thì sai ít" :(

    • Vote tăng 1

  9. Ấy chết em quên,bên trên có hàm định nghĩa dtr đổi góc ra độ rồi ạ .Không biết có chuẩn k nữa :(

    (defun DTR (A) (* pi (/ A 180.0)))

    Thấy trong Lisp có cái này:

    Converts a value from one unit of measurement to another

    (cvunit value from-unit to-unit)

    Arguments

    value

    The numeric value or point list (2D or 3D point) to be converted.

    from-unit

    The unit that value is being converted from.

    to-unit

    The unit that value is being converted to.

    The from-unit and to-unit arguments can name any unit type found in the acad.unt file.

    Return Values

    The converted value, if successful; otherwise nil, if either unit name is unknown (not found in the acad.unt file),

    or if the two units are incompatible (for example, trying to convert grams into years).

     

    ----------------------

    Sao không sử dụng?

    Command: (cvunit 180 "degree" "radian")

    3.14159

     

    Lưu lại rồi load,gõ lệnh abc thì máy báo không có hàm loadline.E phải hì hục copy cả code phần (defun loadline(...)...) vào dòng command thì lúc ấy máy mới hiểu.Lỗi này là do cad e lỗi hay e dùng bị lỗi ạ ? Vì e vẫn đinh ninh 1 hàm nếu định nghĩa trong code lsp thì các hàm cú pháp chính trong file đó thoải mái dùng ?

    Dùng thoải mái luôn, nhưng phải đúng cú pháp, các hàm trong lisp phải đặt trong ()

    (loadline ...) chứ không phải loadline(...)

    (dtr A) chứ có phải dtr (A) đâu

    • Vote tăng 1

  10. Chào bạn Bachngoctung,

    Thực ra mình cũng chưa hiểu vì sao có lỗi này. Bởi vì khi mình chạy thử trên file bạn gửi thì không thấy có vấn đề như vậy. Bây giờ chạy lại thì lại bì dính đòn.

    Để giải quyết cái lỗi này mình thử thay thế các giá trị 0.01 trong lisp thành 0.02 thì nó lại chạy bon bon. Có nghĩa là theo mình hiểu thì lỗi là do các biến hệ thống trên máy của bạn. Cụ thể là biến gì thì mình chưa rõ nhưng cái biến đó nó làm cho việc chọn đối tượng theo các cửa sổ bị sai trật với cái mình muốn do sai số lựa chọn điểm bạn ạ. Khi tăng cái khoảng sai lệch này lên thì nó không chọn nhầm nữa. Chỉ đơn giản là vậy.

    Nếu bạn kiểm tra vẫn thấy nó bị xóa đi các cọc chọn thì bạn hãy tăng giá tri 0.02 thành 0.05 bạn nhé. Chúc bạn hài lòng....

    Bác chỉnh lại biến hệ thống PICKBOX xem

    ------------

    Sets the object selection target height, in pixels.

    Note: When PICKBOX is set to 0, selection previewing of objects is not available.

    -----------

    và nên zoom ở một mức nào đó thôi (đủ để chọn được đối tượng) không nên zoom - All

    • Vote tăng 1

  11. Mình đã search trên diễn đàn rồi. chỉ có lisp ẩn hiện 1 đối tượng 1 layer.chứ không lọc được tất cả các block có cùng tên thuộc 1 layer có các block khác nhau. Rât mong các bạn quan tâm viết giúp mình vì mình rấ gà về lisp

    Bạn sang đây: http://www.cadviet.com/forum/index.php?showtopic=279

    lấy cái lisp ẩn hiện.

    Command: Invis

    Select object(s) to hide:

    Select objects: 'fi

    -> Add Selected Object < chon block -> xóa hết chỉ giữ lại Block Name -> Apply (chọn tất)

    enter 2 lần

    Xong


  12. Khi vẽ Mình đã gặp phải một số khó khăn, muốn nhờ mọi người giúp đỡ.

     

    + Khi thay đổi màu của Text (MT) mình vào Properties rồi thay đổi màu ở mục Color nhưng Text đó ngoài màn hình vẫn là màu cũ mặc dù xem ở thanh trang thái thì báo là màu mới.

     

     

    Mình xin cảm ơn mọi người!

    trả lời bên top

    Lâu rồi mình không dùng Cad. Các bạn có thể cho mình hỏi:

    Mình chuyển màu của Text bằng Ctrl 1 nhưng không thấy Text đó chuyển sang màu mới. Mặc dù khi Click chuột vào Text đó thì xem trên thanh thuộc tính Layer thì thấy báo là màu mới, nhưng hiển thị trên màn hình thì vẫn là màu cũ!!!!!!!!!!!!!

    Mình dùng Cad06.

     

    Mình xin cảm ơn mọi người!

    kia của bạn rồi

    + Mình muốn chỉnh sửa một Block ở hình vẽ hiện tại mà không làm ảnh hưởng tới các hình vẽ khác có Bock đó thì phải làm thế nào ạ? Vì khi mình sửa thì nó đồng loạt thay đổi ở các hình vẽ khác có sử dụng block đó.

    http://www.cadviet.com/forum/index.php?showtopic=2295

    http://www.cadviet.com/forum/index.php?showtopic=23492


  13. Lâu rồi mình không dùng Cad. Các bạn có thể cho mình hỏi:

    Mình chuyển màu của Text bằng Ctrl 1 nhưng không thấy Text đó chuyển sang màu mới. Mặc dù khi Click chuột vào Text đó thì xem trên thanh thuộc tính Layer thì thấy báo là màu mới, nhưng hiển thị trên màn hình thì vẫn là màu cũ!!!!!!!!!!!!!

    Mình dùng Cad06.

     

    Mình xin cảm ơn mọi người!

    Bạn qua đây xem thử

    http://www.cadviet.com/forum/index.php?sho...amp;#entry76715


  14. Ai có thể giúp mình 1 cái tut về sử dụng các hàm ssget, entmake, subst, entmod, while với.

     

    Vídu: Chọn 1 vùng rồi lọc text chẳng hạn, nhập chiều cao mới của text , dùng các hàm trên để sửa chiều cao của nó theo chiều cao vừa nhập.

     

    Cách dùng các hàm trong líp này ra sao, có tác dụng gì.. Thank nhiều...

    Vídu:
    (defun c:vidu (/ txt newhig i)
    (setq ss (ssget '((0 . "text"))))
    (setq newhig (getreal "\nNhap chieu cao chu: "))
    (setq i 0)
    (while (< i (sslength ss))
     (setq txt (ssname ss i))
     (entmod (subst (cons 40 newhig) (assoc 40 (entget txt)) (entget txt)))
     (setq i (1+ i))
    );_ end while
    );_ end defun

    • Vote tăng 2

  15. Xin lỗi vì phải copy,để thoi dõi tiến trính nên hơi dài,mong mọi người thông cảm :(

    Mình đang tiếp tục,nhưng đến đây thì vướng luôn,loay hoay mãi chưa được

    5 dòng code dưới bị lỗi mà mình chưua hiểu tại sao

    Nếu đặt (setq temp3 (vl-cmdf....) thì nó dừng hẳn lại bắt mình pick chọn HCN vừa tạo để hatch.

    Còn đặt như code bên dưới thì nhận được thông báo không hiểu biến "M" ?? Phải chăng phải tạo list lưu các đối tượng tp3,tp4 trước khi copy,chứ không gọi được trực tiếp?Mong mọi người giúp đỡ

    ....

    Bạn sửa đoạn này

    ....

    (setq temp3 (entlast));2

    (vl-cmdf "hatch" "ansi31" "10" tp3 "");3

    (setq temp4 (entlast));4

    (vl-cmdf "_.copy" temp3 temp4 "" "m" TAM pause);5

    ...

    thành

    ...

    (setq copy_objs (ssadd))

    (ssadd (setq temp3 (entlast)) copy_objs)

    (command "-hatch" "P" "ansi31" "10" "0.0" "S" temp3 "")

    (ssadd (entlast) copy_objs)

    (vl-cmdf "_.copy" copy_objs "" "m" TAM pause);5

    ...

    xem sao

    • Vote tăng 1

  16. mình đang dùng cad2007 quen rồi...đo kíck thước thường dùng tổ hợp phím Alt+n+l và muốn đo tiếp thì dùng Alt+n+c ...có thể đo liên tiếp nhiều kích thước..nhưng giờ up lên cad2010 thì tổ hợp phím đó ko còn nữa..vậy muốn đo 1 lúc nhiều kích thước liên tiếp trong cad10 thì dùng lệnh gì...lênh DAL chỉ đo được 1 lần..các Pro chỉ giúp nhé :undecided:...thanks all

    cad2010 vẫn sử dụng được mà.

    mình tìm rồi..cũng có đấy nhưng chưa mò ra phím tắt...toàn kick chuột...Alt+A+Di )..dài

    Command: dli

    DIMLINEAR

    Specify first extension line origin or <select object>: *Cancel*

    ------------------------------------------------------------------------------------------

    Command: dco

    DIMCONTINUE

    Specify a second extension line origin or [undo/Select] <Select>: *Cancel*

    ------------------------------------------------------------------------------------------

    Command: dal

    DIMALIGNED

    Specify first extension line origin or <select object>: *Cancel*

    ------------------------------------------------------------------------------------------

    Command: dra

    DIMRADIUS

    Select arc or circle: *Cancel*

    ------------------------------------------------------------------------------------------

    Command: ddi

    DIMDIAMETER

    Select arc or circle: *Cancel*

    • Vote tăng 1

  17. 1/- Bạn cài đặt sao đó mà nó có dòng

    Command: undo Current settings: Auto = On, Control = All, Combine = Yes

    Trên máy của mình xài CAD2004 chả thấy nó í ới gì với mấy thằng cu này cả. Có nhẽ mấy thằng cu này không khoái cái lisp của mình chăng???

    Chì cần (setvar "cmdecho" 0) trước (command "undo" "BE" ) là sẽ

    chả thấy nó í ới gì
    • Vote tăng 1

  18. Xin hỏi bạn lệnh Express >Modify >Delete duplicate objects hoạt động trên file Lisp nào? Tại sao mục Express >Modify >Delete duplicate objects của mình lại không có?

    Nếu bạn biết lệnh trên hoạt động trên file Líp nào thì cho mình xin với nhé.

    Thanks. :undecided:

    Bác xem thử file overkill.lsp hay overkillsup.lsp xem

    • Vote tăng 1

  19. Cám ơn bạn phamthanhbinh đã chỉ giáo

    mình viết code thế này có đúng không vậy bạn

    (defun c:exbl ()
    (setq ssb (ssget))
    (setq n (sslength ssb))
    (setq i 0)
    (while (< i n)
    (setq n (sslength ssb))
    (setq ent (ssname ssb i))
    (setq name (cadr (entget ent)))
    (if (equal name '(0 . "INSERT"))
    (progn
    (command "explode" ent)
    (setq ssc (ssget "p"))
    (setq n1 (sslength ssc))
    (setq i1 0)
    (while (< i1 n1)
    (setq ent1 (ssname ssc i1))
    (setq ssb (ssadd ent1 ssb))
    (setq i1 (1+ i1))
    )
    )
    )
    (setq i (1+ i))
    (setq n (sslength ssb))
    )
    )

     

    Bạn thử cái này xem nhé:

    (defun c:exbl ()

    (setq ss (ssget '((0 . "INSERT"))))

    (command ".explode" ss "")

    (princ)

    )


  20. Anh Em trong CadViet gi úp m ình nh é !

     

    1-Trong AutoCad 2007, làm thế nào để mình tìm (Search) nhanh bất cứ một Từ giống như trong WinWord hay Excel được không?

     

    Có lệnh nào không ? Vì trong một bản vẽ nhỏ thì chỉ Cross Window hoặc Pan chuột để tìm nhưng còn bản vẽ lớn cả trăm ngàn từ thì làm thế nào để mình "Tìm" nhanh được ?

     

    Edit->Find or alt+E+F


  21. thực ra mình cũng đã viết 1 lisp để làm công việc nhân nhiều số với 1 số, nhưng nó vẫn còn 1 số hạn chế :

    chưa áp dụng được cho số thực ( mình cũng đã chỉnh lại kiểu dữ liệu nhập vào là với số thực, nhưng chẳng hiểu sao lúc được lúc không, lúc lại cho ra KQ ko đúng)

    nếu tích số nhận xong là số nguyên, nó không có ".0"

    Bạn tìm hiểu các biến hệ thống sau: dimzin, luprec và lunits có thể giải quyết vấn đề này

×