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

ahdvip

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

    19
  • Đã tham gia

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

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


  1. Hề hề hề,

    Thế là quá rõ rồi còn muốn gì nữa???

    Dễ không dễ là vì không phải cứ thấy là ăn ngay được.

    Khó không khó là vì nếu muốn sẽ có cách làm được chứ chả đến nỗi tắc tị đâu.

    Làm cách chi thì bạn phải chờ thôi nếu như không tự làm lấy được.

    Hề hề hề.

    Trả lời như vậy để bạn tự quyết định xem nên làm hay nên bỏ. Mà nếu muốn làm thì phải lao tâm khổ tứ một chút chớ không phải cứ post yêu cầu lên là có ngay cái bạn cần đâu. Phải biết kiên nhẫn và chịu khó mới thành công được bạn ạ.

    hi!!!

    Em biết mà. Em không không viết được mấy lisp này nên phải nhờ mấy anh. Nhưng em không có chỉ biết post bài nhờ người khác làm hết mà chẳng biết làm gì cả.

    em muốn nói rõ tí để em có thể học hỏi.

    em đang bắt đầu học viết lisp nên cần các anh chỉ giáo thêm mà.

    thanks anh nha. Để em text thử.


  2. Em có 1 bản vẽ vd như sau: http://www.cadviet.c...600_thu3d_1.dwg

    Yêu cầu như sau:

    - Bước 1: tự động vẽ 1 cái nền(Box) với x và y thì yêu cầu mình nhập(nghĩa là yêu cầu nhập chiều dài và chiều rộng của cái nền đó) còn trục Z thì tùy người lập trình (khoảng 5-> 10mm cũng được).

    - Bước 2: dời gốc tọa độ về đỉnh trên của hình hộp(BOX) đã vẽ ở bước 1, trục Z vuông góc với nền.

    - Bước 3: bước này là thủ công: mình sẽ vẽ 1 hình hộp bất kì lên cái nền đó.

    - Bước 4: tạo ra n mặt phẳng song song với nền theo thứ tự: mặt phẳng thứ nhất đi qua điểm cao nhất của hình khối mà mình đã vẽ. Khoảng cách giữa các mặt phẳng thì yêu cầu mình nhập vào.

    - Bước 5: lấy giao của các mặt phẳng với hình khối đã vẽ, giao điểm ở đây chỉ lấy đường biên thôi (nghĩa là vd như ta có 1 hình cầu thì giao điểm của các mặt phẳng đó là các đường tròn)

    - Bước 6: bước này xử lý trên từng mặt phẳng. Lúc này trên mỗi mặt phẳng ta có các đương 2D. Nếu là đường tròn thì ta lấy tọa độ tâm và bán kính, đường thẳng thì lấy tọa độ điểm đầu và điểm cuối, nếu là hình vuông hoặc hình chữ nhật hoặc hình thoi thì lấy tọa độ 4 đỉnh, còn lại nếu là đường cong (spline, elip …) thì ta tách đường đó thành nhiều đoạn thẳng nhỏ với chiều dài mỗi đoạn yêu cầu mình nhập vào, sau đó lấy tọa độ các đỉnh của đường cong đó (gồm nhiều đỉnh do đã tách thành nhiều đường thẳng nhỏ)

    - Bước 7:xuất thuộc tính và các tọa độ ở bước 6 đã lấy ra file text với cấu trúc như sau:

     

    - Lớp 1

    - Line, tọa độ điểm đầu, tọa độ điểm cuối.

    - Circle, tọa độ tâm, bán kính.

    - Hình vuông, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Hình chữ nhật, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Hình thoi, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Đa giác, tọa độ đỉnh 1, tọa độ đỉnh 2, …, tọa độ đỉnh n .

    - Đường spline, tọa độ đỉnh 1, tọa độ đỉnh 2,…, tọa độ đỉnh n.

    - elip, tọa độ đỉnh 1, tọa độ đỉnh 2,…, tọa độ đỉnh n.

    .

    .

    .

    - Lớp n

    - Line, tọa độ điểm đầu, tọa độ điểm cuối.

    - Circle, tọa độ tâm, bán kính.

    - Hình vuông, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Hình chữ nhật, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Hình thoi, tọa độ đỉnh 1, tọa độ đỉnh 2, tọa độ đỉnh 3, tọa độ đỉnh 4 .

    - Đa giác, tọa độ đỉnh 1, tọa độ đỉnh 2, …, tọa độ đỉnh n .

    - Đường spline, tọa độ đỉnh 1, tọa độ đỉnh 2,…, tọa độ đỉnh n.

    - elip, tọa độ đỉnh 1, tọa độ đỉnh 2,…, tọa độ đỉnh n.

     

    Muốn có được 1 lisp như vậy nhưng mà đi nhờ người khác mà yêu cầu nhiều quá thấy cũng ngại. Nên anh em nào chỉ được phần nào thì chỉ cho mình với nha.

    - THANKS!!!


  3. Bạn ahdvip chú ý là bạn không cần phải phóng to chứ, mọi người cũng vẫn đọc được!
    Hề hề hề, Như vậy, theo yêu cầu củ bạn thì cái lisp mình viết cơ bản đả đạt được, chỉ khác một vài điểm như sau: 1/- Lisp đã hoàn toàn tự động lấy các đối tượng trong vùng chọn của bạn. bạn có thể thêm vào báo nhiêu đường chăng nữa lisp vẫn chỉ chạy một lần là ra cái bảng thống kê cho bạn, với đầy đủ các đối tượng dạng đường (gồm line, lwpolyline, circle, polyline) còn các đường khác như arc ellipse, spline mình chưa viết nhưng co lẽ không quá khó khăn để làm với cấu trú tương tụ của lisp. 2/- Mình xuất riêng rẽ tọa độ x, y ,z, nay bạn muốn xuất cả cụm củng không thành vấn đề nhưng lưu ý bạn rằng không dùng cái dấu phẩy để ngăn cách các tọa độ x, y, z được vì như vậy khi xuất sang file csv nó sẽ hiểu là tách cột ra bạn ạ. Do vậy mình sẽ để một khoảng trắng ngăn cách giữa các tọa độ này, bạn có đồng ý không??? 3/- Mình sẽ bổ sung phần xử lý các đường spline, arc và ellipse để bạn dùng thử. Chịu khó chờ một chút nghen. Của bạn đây:
     (defun c:getpr (/ ssl fn fw els name lay col txt p p1 p2 pt x y z x1 x2 y1 y2 z1 z2 bk ) (setq ssl (acet-ss-to-list (ssget)) fn (getfiled "Chon file de save" "" "txt" 1) fw (open fn "w") ) (princ " Bang liet ke thuoc tinh co ban cua doi tuong \n " fw) (if (not d0) (setq d0 0.5)) (setq d1 (getreal "\n Nhap do dai cua moi phan doan Spline: ")) (if d1 (setq d0 d1) (setq d1 d0)) (foreach en ssl (setq els (entget en) name (cdr (assoc 0 els)) lay (cdr (assoc 8 els)) col (if (assoc 62 els) (rtos (cdr (assoc 62 els)) 2 0) (rtos (cdr (assoc 62 (tblsearch "layer" lay))) 2 0)) txt (strcat name "," lay "," col ) ) (cond ((= name "LINE") (setq p1 (cdr (assoc 10 els)) p2 (cdr (assoc 11 els)) x1 (rtos (car p1) 2 2) x2 (rtos (car p2) 2 2) y1 (rtos (cadr p1) 2 2) y2 (rtos (cadr p2) 2 2) z1 (rtos (caddr p1) 2 2) z2 (rtos (caddr p2) 2 2) txt (strcat txt "," x1 " " y1 " " z1 "," x2 " " y2 " " z2) ) ) ((= name "CIRCLE") (setq bk (rtos (cdr (assoc 40 els)) 2 2) pt (cdr (assoc 10 els)) x (rtos (car pt) 2 2) y (rtos (cadr pt) 2 2) z (rtos (caddr pt) 2 2) txt (strcat txt "," x " " y " " z "," bk ) ) ) ((= name "LWPOLYLINE") (foreach el els (if (= (car el) 10) (progn (setq z (rtos (cdr (assoc 38 els)) 2 2) x (rtos (cadr el) 2 2) y (rtos (caddr el) 2 2) txt (strcat txt "," x " " y " " z) ) ) ) ) ) ((= name "POLYLINE") (setq en (entnext en)) (while (/= (cdr (assoc 0 (entget en))) "SEQEND") (setq x (rtos (cadr (assoc 10 (entget en))) 2 2) y (rtos (caddr (assoc 10 (entget en))) 2 2) z (rtos (cadddr (assoc 10 (entget en))) 2 2) txt (strcat txt "," x " " y " " z) en (entget en) ) ) ) (( or (= name "SPLINE") (= name "ARC" ) (= name "ELLIPSE") ) (makepl en d1) (setq en1 (entlast) plst (acet-geom-vertex-list en1) ) (foreach p plst (setq txt (strcat txt "," (rtos (car p) 2 2) " " (rtos (cadr p) 2 2) " " (rtos (caddr p) 2 2) ) ) ) ) (T nil) ) (princ (strcat txt "\n") fw) ) (close fw) (princ) ) ;;;------------------------------------------------------------- (defun makepl ( e d1 / ps pe d d2 p2) ;;;Make pline along curve e. Length of 1 segment = d1 (vl-load-com) ;;;Load Visual LISP extensions before use vlax-xxxx functions (setq ps (vlax-curve-getStartPoint e) ;;;Start point pe (vlax-curve-getEndPoint e) ;;;End point d (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)) ;;;Length of curve e d2 d1 ;;;Init variable distance ) (command "pline") ;;;Call pline command (command ps) ;;;Start point (while (<= d2 d) ;;;While not over end point pe (setq p2 (vlax-curve-getPointAtDist e d2)) ;;;Variable point at d2 = length along curve (command p2) ;;;Continue pline command from current point to p2 (setq d2 (+ d2 d1)) ;;;Increase distance d2 by d1 ) ;;;End while (command pe "") ;;;Pline to pe and finish command ) ;;;------------------------------------------------------------- 

    Chúc bạn vui. Chú ý mình vẫn để hai giá trị chỉ thuộc tính laỷe và màu của đối tượng trong líp. Nếu bạn không thích thì có thể thoải mái xóa nó đi.

     

    Chắc làm ảnh hưởng tới anh rồi. Box này mà lại hỏi đến mấy cái lisp, sai quy đinh rồi. Anh giúp đỡ nhiều quá, thanks anh nhiều.

     

     

    Được vậy thì tốt quá, nếu không thì xuất file với cấu trúc như vậy cũng được nha anh. Tối nay dùng thử lisp này vui quá, đúng yêu cầu lun.

    Ak, nếu anh thêm elip thì anh cứ xem elip như đường spline nha, cứ là elip hay spline thì anh cứ tách thành nhiều đoạn thẳng lun(ngoại trừ đường thẳng và đường tròn là không thôi).


  4. Hề hề hề, Như vậy, theo yêu cầu củ bạn thì cái lisp mình viết cơ bản đả đạt được, chỉ khác một vài điểm như sau: 1/- Lisp đã hoàn toàn tự động lấy các đối tượng trong vùng chọn của bạn. bạn có thể thêm vào báo nhiêu đường chăng nữa lisp vẫn chỉ chạy một lần là ra cái bảng thống kê cho bạn, với đầy đủ các đối tượng dạng đường (gồm line, lwpolyline, circle, polyline) còn các đường khác như arc ellipse, spline mình chưa viết nhưng co lẽ không quá khó khăn để làm với cấu trú tương tụ của lisp. 2/- Mình xuất riêng rẽ tọa độ x, y ,z, nay bạn muốn xuất cả cụm củng không thành vấn đề nhưng lưu ý bạn rằng không dùng cái dấu phẩy để ngăn cách các tọa độ x, y, z được vì như vậy khi xuất sang file csv nó sẽ hiểu là tách cột ra bạn ạ. Do vậy mình sẽ để một khoảng trắng ngăn cách giữa các tọa độ này, bạn có đồng ý không??? 3/- Mình sẽ bổ sung phần xử lý các đường spline, arc và ellipse để bạn dùng thử. Chịu khó chờ một chút nghen. Của bạn đây:
     (defun c:getpr (/ ssl fn fw els name lay col txt p p1 p2 pt x y z x1 x2 y1 y2 z1 z2 bk ) (setq ssl (acet-ss-to-list (ssget)) fn (getfiled "Chon file de save" "" "txt" 1) fw (open fn "w") ) (princ " Bang liet ke thuoc tinh co ban cua doi tuong \n " fw) (if (not d0) (setq d0 0.5)) (setq d1 (getreal "\n Nhap do dai cua moi phan doan Spline: ")) (if d1 (setq d0 d1) (setq d1 d0)) (foreach en ssl (setq els (entget en) name (cdr (assoc 0 els)) lay (cdr (assoc 8 els)) col (if (assoc 62 els) (rtos (cdr (assoc 62 els)) 2 0) (rtos (cdr (assoc 62 (tblsearch "layer" lay))) 2 0)) txt (strcat name "," lay "," col ) ) (cond ((= name "LINE") (setq p1 (cdr (assoc 10 els)) p2 (cdr (assoc 11 els)) x1 (rtos (car p1) 2 2) x2 (rtos (car p2) 2 2) y1 (rtos (cadr p1) 2 2) y2 (rtos (cadr p2) 2 2) z1 (rtos (caddr p1) 2 2) z2 (rtos (caddr p2) 2 2) txt (strcat txt "," x1 " " y1 " " z1 "," x2 " " y2 " " z2) ) ) ((= name "CIRCLE") (setq bk (rtos (cdr (assoc 40 els)) 2 2) pt (cdr (assoc 10 els)) x (rtos (car pt) 2 2) y (rtos (cadr pt) 2 2) z (rtos (caddr pt) 2 2) txt (strcat txt "," x " " y " " z "," bk ) ) ) ((= name "LWPOLYLINE") (foreach el els (if (= (car el) 10) (progn (setq z (rtos (cdr (assoc 38 els)) 2 2) x (rtos (cadr el) 2 2) y (rtos (caddr el) 2 2) txt (strcat txt "," x " " y " " z) ) ) ) ) ) ((= name "POLYLINE") (setq en (entnext en)) (while (/= (cdr (assoc 0 (entget en))) "SEQEND") (setq x (rtos (cadr (assoc 10 (entget en))) 2 2) y (rtos (caddr (assoc 10 (entget en))) 2 2) z (rtos (cadddr (assoc 10 (entget en))) 2 2) txt (strcat txt "," x " " y " " z) en (entget en) ) ) ) (( or (= name "SPLINE") (= name "ARC" ) (= name "ELLIPSE") ) (makepl en d1) (setq en1 (entlast) plst (acet-geom-vertex-list en1) ) (foreach p plst (setq txt (strcat txt "," (rtos (car p) 2 2) " " (rtos (cadr p) 2 2) " " (rtos (caddr p) 2 2) ) ) ) ) (T nil) ) (princ (strcat txt "\n") fw) ) (close fw) (princ) ) ;;;------------------------------------------------------------- (defun makepl ( e d1 / ps pe d d2 p2) ;;;Make pline along curve e. Length of 1 segment = d1 (vl-load-com) ;;;Load Visual LISP extensions before use vlax-xxxx functions (setq ps (vlax-curve-getStartPoint e) ;;;Start point pe (vlax-curve-getEndPoint e) ;;;End point d (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)) ;;;Length of curve e d2 d1 ;;;Init variable distance ) (command "pline") ;;;Call pline command (command ps) ;;;Start point (while (<= d2 d) ;;;While not over end point pe (setq p2 (vlax-curve-getPointAtDist e d2)) ;;;Variable point at d2 = length along curve (command p2) ;;;Continue pline command from current point to p2 (setq d2 (+ d2 d1)) ;;;Increase distance d2 by d1 ) ;;;End while (command pe "") ;;;Pline to pe and finish command ) ;;;------------------------------------------------------------- 

    Chúc bạn vui. Chú ý mình vẫn để hai giá trị chỉ thuộc tính laỷe và màu của đối tượng trong líp. Nếu bạn không thích thì có thể thoải mái xóa nó đi.

     

     

    xem

    Việc bạn đang yêu cầu lisp ở box này đã là k đúng nội quy rồi, mà bác Bình nhiệt tình quá nên đành chịu vậy ^^ CHúc bạn sớm thành công :)

     

    hic. Khi mà em nói đến mấy cái lisp thì em cũng biết là không đúng nơi nên em đã viết một bài ở box khác để định chuyển qua đó nhưng bài đó lại bị xóa.

    biết sai!!!!

    có gì anh thông cảm, thanks anh nhiều.


  5. Hề hề hề,

    Bạn đã chạy cái lisp mình gửi chưa???, Chạy xong nó ra cái gì???? Cái đó bạn đọc có hiểu không??? Và cái đó cần sửa những gì????

    Về cái file doc bạn gửi thì mình chưa rõ là lisp có thể xuất ra file *.doc như yêu cầu của bạn hay không nên không thể đảm bảo sẽ làm được lisp.

    nếu là xuất ra file *.txt thì không thể làm thành cái bảng như bạn gửi.

    Nếu là xuất ra file *.csv thì có thể sẽ được cái bảng gần giống với cái bảng bạn gửi.

    Tuy nhiên mình thấy cái kết cấu bảng ấy của bạn không hợp lý nên không muốn làm Đề nghị bạn cân nhắc kỹ lưỡng cái kết cấu bảng ấy, sao cho nó nhất quán và hợp lý thì mới có thể làm lisp được. (Cùng một bảng nhưng chỗ thì xuất tọa độ x tọa độ y, chỗ thì xuất cả x và y vào một rọ hay cột tên đối tượng lại nhét tên các dỉnh vào, trong khi các đỉnh này chỉ là các dối tượng con của đối tượng chính. Như vậy khi đọc cái bảng người đọc sẽ hiểu ra sao????/)

    Cái cột nếu có của bạn là cái cột để làm chi vậy, hay là cũng ghi chữ nếu có vào như cái bảng mẫu của bạn??? Với cái cột này thì nếu bạn chưa thể trả lời thì cũng chưa thể làm lisp cho bạn được.

    Cái lisp c2p của bạn gửi là dùng để chuyển tất cả các đối tượng line, circle, lwpolyline, spline,arc, ellipse thành polyline chứ chả phảio chỉ có spline thôi đâu. Cái lisp này chuyển dựa trên cơ sở là chiều dài của mỗi phân đoạn nhập vào. Khi đó với spline đủ dài và khoảng cách bạn nhập vào đủ nhỏ thì số lượng điểm đỉnh sẽ là đủ lớn khiến cho cái bảng của bạn trở thành ........ khó chấp nhận.

    cái lisp vc_1 bạn gửi không thể áp dụng trong trường hợp này vì nó được viết để là việc khác, hoàn toàn khác với cái yêu cầu bạn đưa ra.

    Vậy nên rất mong bạn suy nghĩ nghiêm túc về những yêu cầu của mình để có được các yêu cầu hợp lý khả thi trước khi post yêu cầu.

    Chúc bạn vui.

    Em đã chạy lisp của anh gửi và cũng nắm được những điểm cần thiết trong file text.

    (file kết quả: TÊN ĐƯỜNG, xxx,xxx, TỌA ĐỘ X1, TỌA ĐỘ Y1, TỌA ĐỘ Z1,…, TỌA ĐỘ Xn, TỌA ĐỘ Yn, TỌA ĐỘ Zn).

    Các chỉnh sửa:

    - Em muốn vẽ nhiều đường vào bản vẽ, lisp tự động nhân biết đâu là line, circle, spline.

    - Nếu có đường spline thì tự động chia nhỏ spline thành nhiều đoạn thẳng với độ dài do mình nhập.

    - Cuối cùng là xuất ra file text hoặc file excel đều được.

    Về file kết quả thì không cần phải làm thành bảng cũng được anh ak.

     

    Anh cứ làm sao cho có được cái cấu trúc như thế này thôi:

    Line, tọa độ điểm đầu(x,y,z), tọa độ điểm cuối(x,y,z).

    Cicle, tọa độ tâm(x,y,z), bán kính.

    Pline, số đỉnh, tọa độ điểm 1(x,y,z), tọa độ điểm 2(x,y,z),…, tọa độ điểm n(x,y,z).

     

    Xuất ra file excel cũng được nha anh.

    (về pline thì em chỉ cần lấy tọa độ các đỉnh chứ không quan trọng đó là đỉnh chính hay phụ, miễn sao đúng thứ tự là được).

    (em viết “nếu có” nghĩa là nếu trong bản cad mà có thì file kết quả phải có hàng đó- hàng đó để chú thích thôi)

     

    THANKS ANH NHIỀU NHA!!!


  6. Hề hề hề,

    Chả biết cái bạn cần có giống cái này không??? Song do bạn trình bày hơi ..... tiết kiệm nên mình chỉ có thể đoán mò, Trúng thì là hên xui, trật thì là cái để bạn có thể rút kinh nghiệm trình bày sao cho người đọc khỏi phải ..... mò.

    
    (defun c:getpr (/ ssl fn fw els name lay col txt p1 p2 pt x y z x1 x2 y1 y2 z1 z2 bk )
    (setq ssl (acet-ss-to-list (ssget))
             fn (getfiled "Chon file de save" "" "txt" 1)
             fw (open fn "w") )
    (princ " Bang liet ke thuoc tinh co ban cua doi tuong \n " fw)
    (foreach en ssl
      	(setq els (entget en)
        			name (cdr (assoc 0 els))
        			lay (cdr (assoc 8 els))
        			col (if (assoc 62 els) (rtos (cdr (assoc 62 els)) 2 0) (rtos (cdr (assoc 62 (tblsearch "layer" lay))) 2 0))
        			txt (strcat name "," lay "," col )
           )
      	(cond
      			((= name "LINE") (setq p1 (cdr (assoc 10 els))  p2 (cdr (assoc 11 els))
                                              			x1 (rtos (car p1) 2 2)  x2 (rtos (car p2) 2 2)
                                              			y1 (rtos (cadr p1) 2 2)  y2 (rtos (cadr p2) 2 2)
                                              			z1 (rtos (caddr p1) 2 2)  z2 (rtos (caddr p2) 2 2)
                                                         txt (strcat txt "," x1 "," y1 "," z1 "," x2 "," y2 "," z2) ) )
      			((= name "CIRCLE") (setq bk (rtos (cdr (assoc 40 els)) 2 2)  pt (cdr (assoc 10 els))
                                                         x (rtos (car pt) 2 2) y (rtos (cadr pt) 2 2) z (rtos (caddr pt) 2 2)
                                                         txt (strcat txt ","  bk  "," x "," y "," z) ) )
      			((= name "LWPOLYLINE") (foreach el els
                                                                       (if (= (car el) 10)
                                                                           (progn
                                                                                 (setq  z (rtos (cdr (assoc 38 els)) 2 2)
                                                                                			x (rtos (cadr el) 2 2) y (rtos (caddr el) 2 2)
                                                                                           txt (strcat txt ","  x  ","  y  ","  z) )                                                                              
                                                                           )
                                                            			)
                                                                     ) )
                 ((= name "POLYLINE") (setq en (entnext en))
                                                         (while (/= (cdr (assoc 0 (entget en))) "SEQEND")
                                                        			(setq x (rtos (cadr (assoc 10 (entget en))) 2 2)
                                                                  			y (rtos (caddr (assoc 10 (entget en))) 2 2)
                                                                  			z (rtos (cadddr (assoc 10 (entget en))) 2 2)
                                                                             txt (strcat txt ","  x  ","  y  ","  z)
                                                                             en (entget en) ) ) )
                 (T nil)
           )
    
    
           (princ (strcat txt "\n") fw)
    )
    (close fw)
    (princ)
    )
    
    

    Cái này mình cóp pi, nhặt mót của các bác trên diễn đàn, mỗi người một tí, rồi ghép lại để bạn xài tạm. Tuy chưa được ngay ngắn lắm, nhưng thôi thì của nhà trồng được, bạn hẵng xơi tạm cho đỡ nóng ruột nhé.

    Hề hề hề,..

    thanks anh trước đã.

    Nhưng mà chưa đúng anh ơi.

    hôm qua em viết bài để nói rõ hơn cho anh rồi nhưng mà sao lại bị xóa mất rồi. Hic

    file cad vd : http://www.cadviet.c..._drawing1_1.dwg

    trong đó có các đường line, cicle, spline(đường này em muốn nếu là đường spline thì dùng lệnh c2p để chuyển thành pline với n đoạn thẳng(đây là lisp c2p : http://www.cadviet.c...02600_c2p_1.lsp))

     

    trong file cad ví dụ em đã dùng lệnh c2p thủ công rồi nha anh. Anh giúp em cứ gặp đường spline là tự động dùng lệnh đó.

     

    em download được 1 cái lisp xuất tọa độ các đỉnh nhưng bảng tọa độ nằm trong cad luôn http://www.cadviet.c...102600_vc_1.lsp

     

    file kết quả như mong muốn http://www.cadviet.c...600_ket_qua.doc

    xuất ra .txt hoặc excel cũng được anh ak. thanks anh.


  7. Hề hề hề,

    Tiến bộ hơn nhiều rồi, nhưng mà vẫn chưa đạt. Bạn cần trình bày cho chuẩn hơn mới được.

    Này nhé , cái khái niệm tọa độ của các đường của bạn được hiểu ra sao đây???? Mình chỉ hiểu được khái niệm tọa độ của các điểm và khái niệm phương trình của các đường chứ chưa biết tọa độ của các đường được xác định ra sao cả????

    Như vậy với các pline, bạn vừa muốn có tọa độ của các đường pline này, vừa muốn có cả tọa độ của các đỉnh pline nữa hay sao??? Với pline chứa cung tròn hay cung elip thì bạn muốn lấy những gì vậy???

    Càng nhiều càng tốt của bạn là nhiều loại đường hay là nhiều đường cùng loại????

    Hề hề hề, chọc ngoáy bạn tí chơi, chớ có giận đấy nhé.

    Hề hề hề,...

    Ko sao cả, em thấy em nói chưa rõ thật.

    ở đây đúng hơn là xuất ra thuộc tính của các đường + tọa độ .

    Vd: line thì có tọa độ điểm đầu + điểm cuối

    circle thì có tọa độ tâm + bán kính

    còn pline của em thực ra là đường spline được em đùng lệnh c2p chuyển thành pline nên chỉ chứa n đoạn thẳng. Em thấy có lisp để đặt tên cho các đỉnh rồi xuất ra tọa độ các đỉnh đó nhưng em không thể download được các file .rar trên diễn đàn này được(chăc file .rar là bị lỗi hết anh ak), nên em hỏi để mọi người giúp đỡ.


  8. Ý của em là như thế này:

    Trong bản vẽ có các đường line, pline, circle, rectangle(càng nhiều càng tốt) mình muốn xuất tọa độ của các đường đó ra file text, với pline thì xuất tọa độ các đỉnh nữa. Em muốn làm bằng lệnh chứ không phải làm thủ công. Nhờ anh em giúp đỡ nha!!!! Thanks

    http://www.mediafire...9otohr09i6vwfhh

×