Đến nội dung


Hình ảnh
* * * - - 8 Bình chọn

Viết lisp theo yêu cầu [phần 2]


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#2661 phongthien

phongthien

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 November 2010 - 10:03 AM

Hề hề hề,
Bạn dùng tạm cái này coi sao. Việc cắt râu có nhẽ phải tự làm tay , đặc biệt là ở các góc không vuông. Lisp này chỉ nối các khoảng hở nhỏ hơn 1 vì trong các thửa đất của bạn có thửa chỉ rộng 1,8 nên nếu cho phép nối khe hở lớn hơn có thể dẫn tới mất đi một số thửa bạn ạ. Nó cũng cho phép cắt râu ngắn hơn 1 ở các giao điểm chữ T, nhưng ở các góc chữ L thì chỉ cắt được khi là góc vuông thôi bạn nhé.
Bạn có thể chọn số thửa cần lấy diện tích bằng cách pick vào các text số thửa theo ý của bạn khi lisp yêu cần bạn chọn số thửa cần ghi diện tích. Kết quả sẽ xuất sang file excel đúng những thứ bạn cần.


(defun c:tkqh ( / sls ssl1 ssl2 p1 p2 p3 p4 els sst sld qhlst p sth st x y1 y2 plst ld dt oldos )
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq sls (acet-ss-to-list (ssget (list (cons 0 "line") (cons 8 "thua cly"))))
ssl1 (list)
ssl2 (list)
)
(foreach x sls
(setq obj1 (vlax-ename->vla-object x))
(setq ssl2 (vl-remove x sls))
(foreach y2 ssl2
(setq els (entget y2)
p1 (cdr (assoc 10 els))
p2 (cdr (assoc 11 els))
p3 (vlax-curve-getclosestpointto obj1 p1)
p4 (vlax-curve-getclosestpointto obj1 p2)
)
(if (and (> (distance p1 p3) 0 ) (< (distance p1 p3 ) 1))
(setq els (subst (cons 10 p3) (assoc 10 els) els))
)
(if (and (> (distance p2 p4) 0 ) (< (distance p2 p4) 1))
(setq els (subst (cons 11 p4) (assoc 11 els) els))
)
(entmod els)
)
)

(alert "\n Chon cac thua can tinh dien tich theo so thua")
(setq sst (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "sothua"))))
qhlst (list)
)

(foreach st sst
(setq p (cdr (assoc 10 (entget st)))
sth (cdr (assoc 1 (entget st)))
)
(command ".boundary" p "")
(setq plst (acet-geom-vertex-list (entlast))
sld (ssget "cp" plst (list (cons 0 "text") (cons 8 "loaidat")))
)
(if (/= sld nil)
(setq ld (cdr (assoc 1 (entget (ssname sld 0)))))
(setq ld "No")
)
(command "area" "o" (entlast))
(setq dt (getvar "area")
qhlst (append qhlst (list (list sth ld dt)))
)

(command "erase" (entlast) "" )
)
(setvar "osmode" oldos)
(command "undo" "e")
(writetoexcel qhlst)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;
(defun WriteToExcel (lst_data / col row x xlApp xlCells)
(setq xlApp (vlax-get-or-create-object "Excel.Application")
xlCells (vlax-get-property
(vlax-get-property
(vlax-get-property
(vlax-invoke-method
(vlax-get-property xlApp "Workbooks")
"Add")
"Sheets")
"Item" 1)
"Cells"))
(setq row 3)
(foreach pt lst_data
(setq col 3)
(foreach coor pt
(vlax-put-property xlCells 'Item row col coor)
(setq col (1+ col)))
(setq row (1+ row)) )
(vla-put-visible xlApp :vlax-true)
(mapcar
(function (lambda (x)
(vl-catch-all-apply
(function (lambda ()(if x (vlax-release-object x)))))))
(list xlCells xlApp))
(gc) (gc) )

Hy vọng nó sẽ có ích cho bạn phần nào...


sao em chon số thửa xong thì nó báo ở dùng lênh comand là (error: bad argument type: fixnump: nil) vậy anh bình
với lại cho em thêm tên CSD xuất qua exell chung với số thủa, loại đất, diện tích luôn nhe anh bình
nếu được cám ơn anh nhiều
  • 0

#2662 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 22 November 2010 - 03:06 PM

em hiểu ý bạn lacvanhoa rồi anh bình ơi!
ý bạn là phải tách thành 3 lớp tên gì cũng được màu nào cũng được nhưng phải là text chứ đừng là Mtext.
cái dòng ở giữa là sau khi explode thôi. chủ yếu là kết quả sau cùng đó.mong anh giúp dùm em nhe.
em cũng làm chung bản đồ đó nè nên em cũng đang gặp rắc rối nè. huhu
file upload

Hề hề hề,
Mình bí rồi, không rõ tại sao bạn lacvanhoa gõ được tiếng Việt bằng cái text style "moi" của bạn ấy nữa. Mình nhập text bằng style này thì không gõ ra tiếng Việt được nên chịu thua chả biết cách gỡ.... Đặc biệt là cái dòng text "NGUYỄN KIM HƯỜNG" ở trong cái kết quả ấy....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2663 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 22 November 2010 - 03:10 PM

sao em chon số thửa xong thì nó báo ở dùng lênh comand là (error: bad argument type: fixnump: nil) vậy anh bình
với lại cho em thêm tên CSD xuất qua exell chung với số thủa, loại đất, diện tích luôn nhe anh bình
nếu được cám ơn anh nhiều

Hề hề hề,
Khi chọn số thửa của bạn, cái text đánh số thửa phải là dạng text chứ không phải mtext và phải nằm trên lớp số thửa đúng như cái bản vẽ bạn đã post mới được.
Trên bản vẽ bạn post làm gì có tên CSD mà xuất. Nếu bạn muốn thì phải gửi file lên mới biết đường để làm chứ....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2664 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 22 November 2010 - 03:34 PM

vâng,anh bình cố giằng bỏ tí thời gian coi giúp em tí nhé,anh cứ làm theo ý của anh đi,với cái bình đồ của em nhé,em cảm ơn anh trước

Chào bạn atl,
Như đã nói ở bài trước, để dựng được các mặt cắt mình cần biết cao độ của các đường đồng mức và cái nguyên tắc nội suy của bạn. Bạn mới trả lời là nguyên tắc nội suy do mình tự chọn còn cách xác định cao độ của các đường đồng mức thì sao??? Thực tế trên bình đồ mình thấy các đường đồng mức có màu sắc khác nhau và xem lẫn với các điểm ghi độ cáo mà chưa rõ cao độ của các đường đồng mức này xác định ở đâu bạn ạ.
Bạn nói đã có lisp để dụng mặt cắt, vậy có thể gửi lên để mình tham khảo được chăng??? Điều đó sẽ giúp mình hiểu rõ hơn và sẽ giải quyết vấn đề được tốt hơn bạn ạ.
Hề hề hề, mình có tham quá không nhể????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2665 phongthien

phongthien

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 November 2010 - 06:20 PM

Hề hề hề,
Khi chọn số thửa của bạn, cái text đánh số thửa phải là dạng text chứ không phải mtext và phải nằm trên lớp số thửa đúng như cái bản vẽ bạn đã post mới được.
Trên bản vẽ bạn post làm gì có tên CSD mà xuất. Nếu bạn muốn thì phải gửi file lên mới biết đường để làm chứ....

http://www.cadviet.c...iles/3/44_1.dwg
file mới nè anh Bình
thì em cũng thực hiện trên file em gửi anh đó
kích nhiều thửa thì được còn 1, 2 thửa thì nó lại không ra
hihi
  • 0

#2666 phongthien

phongthien

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 November 2010 - 06:35 PM

Hề hề hề,
Mình bí rồi, không rõ tại sao bạn lacvanhoa gõ được tiếng Việt bằng cái text style "moi" của bạn ấy nữa. Mình nhập text bằng style này thì không gõ ra tiếng Việt được nên chịu thua chả biết cách gỡ.... Đặc biệt là cái dòng text "NGUYỄN KIM HƯỜNG" ở trong cái kết quả ấy....

Em đánh toàn bộ là font chữ TCVN3 đó anh bình ơi!
em thấy trên diễn đàn có lisp tách 1 text thành 3 đoạn theo ba lớp đó
nhưng em muốn vừa tách vừa chuyển từ mtext sang text luôn
vì em giao bản đồ bên microstation nên khi chuyển sang thì mtext nó bị lỗi giống như khi explode ra vậy.
huhu
anh thử lại lần nữa giúp em nhe
hoặc có cách nào qua microstation mà không bị lỗi font chữ hong anh
nếu bí quá thì có thể explode mtext ra thành text mà không bị lỗi font chữ cũng được nữa anh Bình ơi!
mong anh giúp em. Xin chân thành cám ơn
hihihi!!!!
  • 0

#2667 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 22 November 2010 - 06:45 PM

http://www.cadviet.c...iles/3/44_1.dwg
file mới nè anh Bình
thì em cũng thực hiện trên file em gửi anh đó
kích nhiều thửa thì được còn 1, 2 thửa thì nó lại không ra
hihi

Cái lỗi này như bác Bình đã biết là lệnh Boundary chỉ thực hiện khi Các Pline tạo thành đa tuyến được "nhìn thấy trọn vẹn
Cách sửa : tìm đoạn mã sau :
(foreach st sst
(setq p (cdr (assoc 10 (entget st)))
sth (cdr (assoc 1 (entget st)))
)
(command ".boundary" p "")
(setq plst (acet-geom-vertex-list (entlast))
sld (ssget "cp" plst (list (cons 0 "text") (cons 8 "loaidat")))
)
(if (/= sld nil)
(setq ld (cdr (assoc 1 (entget (ssname sld 0)))))
(setq ld "No")
)
(command "area" "o" (entlast))
(setq dt (getvar "area")
qhlst (append qhlst (list (list sth ld dt)))
)
(command "erase" (entlast) "" )
)

Thêm vào như sau :
(command "zoom" "e")
(foreach st sst
(setq p (cdr (assoc 10 (entget st)))
sth (cdr (assoc 1 (entget st)))
)
(command ".boundary" p "")
(setq plst (acet-geom-vertex-list (entlast))
sld (ssget "cp" plst (list (cons 0 "text") (cons 8 "loaidat")))
)
(if (/= sld nil)
(setq ld (cdr (assoc 1 (entget (ssname sld 0)))))
(setq ld "No")
)
(command "area" "o" (entlast))
(setq dt (getvar "area")
qhlst (append qhlst (list (list sth ld dt)))
)
(command "erase" (entlast) "" )
)

(command "zoom" "p")
Hơn nữa, để Lisp chạy đúng với PLINE nên thay dòng :
(setq sls (acet-ss-to-list (ssget (list (cons 0 "line") (cons 8 "thua cly"))))
ssl1 (list)
ssl2 (list))
thành dòng :
(setq sls (acet-ss-to-list (ssget (list (cons 0 "*line") (cons 8 "thua cly"))))
ssl1 (list)
ssl2 (list))
@Bác Bình : Có thể tìm điểm min và max của tập chọn ssget và thao tác lệnh zoom window
  • 1

#2668 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 22 November 2010 - 07:41 PM

http://www.cadviet.c...iles/3/44_1.dwg
file mới nè anh Bình
thì em cũng thực hiện trên file em gửi anh đó
kích nhiều thửa thì được còn 1, 2 thửa thì nó lại không ra
hihi

Chào bạn phongthien,
Mình đã phát hiện ra có trường hợp nó bị lỗi như bạn nói. Đó là do cái text số thửa của bạn . Có vẻ như khi nhập text bạn chọn điểm nhập text không đồng phẳng với các đường line bao quanh (Tỷ như cái thửa số 141 của bạn vậy) vì thế khi lấy boundary nó không chọn được biên. Bạn hãy thử nhập text cẩn thận lại xem.
Đây là cái đã bổ sung tên chủ đất cho bạn. Tuy nhiên muốn xem được cái text tên này trong excel bạn nhớ phải đổi nó về font thích hợp với cái font bạn đã dùng trong cái style phong của bạn nhé. (Mình mò mẫm thì thấy cái font .VnTimeH là có vẻ OK bạn ạ). Hãy thử lại coi nhé.
Mình đã test trên cái bản vẽ bạn post mới nhất này thì chỉ có thửa số 141 là có vấn đề, còn lại thì chạy khá chuẩn. Hy vọng nó giúp được bạn ít nhiều. Hê hề hề.


(defun c:tkqh ( / sls ssl1 ssl2 p1 p2 p3 p4 els sst sld qhlst p sth st x y1 y2 plst ld dt oldos scd cd )
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq sls (acet-ss-to-list (ssget (list (cons 0 "line") (cons 8 "thua cly"))))
ssl1 (list)
ssl2 (list)
)
(foreach x sls
(setq obj1 (vlax-ename->vla-object x))
(setq ssl2 (vl-remove x sls))
(foreach y2 ssl2
(setq els (entget y2)
p1 (cdr (assoc 10 els))
p2 (cdr (assoc 11 els))
p3 (vlax-curve-getclosestpointto obj1 p1)
p4 (vlax-curve-getclosestpointto obj1 p2)
)
(if (and (> (distance p1 p3) 0 ) (< (distance p1 p3 ) 1))
(setq els (subst (cons 10 p3) (assoc 10 els) els))
)
(if (and (> (distance p2 p4) 0 ) (< (distance p2 p4) 1))
(setq els (subst (cons 11 p4) (assoc 11 els) els))
)
(entmod els)
)
)

(alert "\n Chon cac thua can tinh dien tich theo so thua")
(setq sst (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "sothua"))))
qhlst (list)
)

(foreach st sst
(setq p (cdr (assoc 10 (entget st)))
sth (cdr (assoc 1 (entget st)))
)
(command ".boundary" p "")
(setq plst (acet-geom-vertex-list (entlast))
sld (ssget "cp" plst (list (cons 0 "text") (cons 8 "loaidat")))
scd (ssget "cp" plst (list (cons 0 "text") (cons 8 "tenCSD")))
)
(if (/= sld nil)
(setq ld (cdr (assoc 1 (entget (ssname sld 0)))))
(setq ld "No")
)
(if (/= scd nil)
(setq cd (cdr (assoc 1 (entget (ssname scd 0)))))
(setq cd "Nobody")
)
(command "area" "o" (entlast))
(setq dt (getvar "area")
qhlst (append qhlst (list (list sth cd ld dt)))
)

(command "erase" (entlast) "" )
)
(setvar "osmode" oldos)
(command "undo" "e")
(writetoexcel qhlst)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;
(defun WriteToExcel (lst_data / col row x xlApp xlCells)
(setq xlApp (vlax-get-or-create-object "Excel.Application")
xlCells (vlax-get-property
(vlax-get-property
(vlax-get-property
(vlax-invoke-method
(vlax-get-property xlApp "Workbooks")
"Add")
"Sheets")
"Item" 1)
"Cells"))
(setq row 3)
(foreach pt lst_data
(setq col 3)
(foreach coor pt
(vlax-put-property xlCells 'Item row col coor)
(setq col (1+ col)))
(setq row (1+ row)) )
(vla-put-visible xlApp :vlax-true)
(mapcar
(function (lambda (x)
(vl-catch-all-apply
(function (lambda ()(if x (vlax-release-object x)))))))
(list xlCells xlApp))
(gc) (gc) )


PS: Có vẻ như bạn cùng đơn vị với bạn lacvanhoa thì phải, vậy bạn có thể chỉ giùm cái cách bạn gõ ra tiếng Việt bằng cái font VHARIAL.TTF này được không??? Tại sao mình dùng cái style đó mà vẫn không thể gõ ra tiếng Việt trong bản vẽ của bạn lacvanhoa được????

Hề hề hề, Bạn là phong thiên (gió trời) hay là phong thiện hay là PHONG THIẾN vậy???? Chớ giận nghen.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2669 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 22 November 2010 - 07:51 PM

Thank bác đã chỉ dẫn,
Song mình cũng đã thử test khá chi tiết và cẩn thận thì không hẳn đã là lỗi do không nhình thấy hết biên bác ạ. Mình đã cố tình zoom về chỉ để thấy trọn vẹn một thửa số 141 của bạn phongthien vẫn bị dính đòn. Trong khi dùng lệnh boundary nhưng pick vào vùng chọn thì OK nhưng nếu dùng boundary với việc chọn điểm bằng cách nhập !p với p là điểm đặt của cái text 141 ấy thì lại không tạo boundary được bác ạ. Vậy nên mình mới phỏng đoán như bài post trên.
Thực tế cũng chỉ bị một thửa đó thôi còn các thửa khác và cả cái bản vẽ của bạn ấy mình chạy thử đều được mới lạ chứ.....
Để mình thử sửa lại như bác hướng dẫn xem có ngon hơn không. Chúc bác luôn mạnh để còn hỗ trợ được anh em nhiều nhiều.

Nhân tiện bác cho mình hỏi, tại sao mình sử dụng hàm enmake để tạo một Mtext không được, tạo text thì ngon lành nhưng tạo Mtext mà có cả cái định dạng font của text thì tạo hoài hổng ra, chả biết nó thiếu cái gì nữa. Thậm chí mình đã lấy toàn bộ mã dxf của một mtext bằng hàm entget rồi lần lượt thêm vào các mã dxf tương ứng trong hàm entmake mà nó vẫn chẳng ra bác ạ?????? Khó thế???? Bác có võ gì chỉ cho mình với... Hề hề hề....
Thank bác lần nữa....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2670 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 22 November 2010 - 09:02 PM

.........

Nhân tiện bác cho mình hỏi, tại sao mình sử dụng hàm enmake để tạo một Mtext không được, tạo text thì ngon lành nhưng tạo Mtext mà có cả cái định dạng font của text thì tạo hoài hổng ra, chả biết nó thiếu cái gì nữa. Thậm chí mình đã lấy toàn bộ mã dxf của một mtext bằng hàm entget rồi lần lượt thêm vào các mã dxf tương ứng trong hàm entmake mà nó vẫn chẳng ra bác ạ?????? Khó thế???? Bác có võ gì chỉ cho mình với... Hề hề hề....
Thank bác lần nữa....

Có lẽ bác đã thiếu mã dxf 100. Bác xem bài viếtnày của bác elleHCSC nhé :
Bài viết số 7- Cách tạo Mtext bằng entmake
  • 1

#2671 lacvanhoa

lacvanhoa

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 22 November 2010 - 09:12 PM

http://www.cadviet.c...s/3/mtext_4.dwg
Nhờ anh Bình xem lại giúp em Mtext trong file của em gõ tiếng việt bằng font .VnArialH được bình thường mà, file của em nhận về toàn là Mtext như vậy không hà, nếu em gõ lại từng cái một thì không biết đến bao giờ mới xong. kết quả sau cùng
trong file của em có 3 đối tượng nằm trong 3 layer khác nhau ten và màu layer không có ràng buộc về tên và màu, tên gì màu gì cũng được hết( kết quả phải là text không còn là Mtext nữa tại vì sau khi em biên tập hoàn chỉnh em xuất qua Microstation để giao sản phẩm). Kết quả khi xuất qua exel mỗi đối tượng nằm trong 1 cột khác nhau, nếu được như vậy thì công việc của em sẽ nhẹ nhàng hơn và ít tốn thời gian hơn rất rất nhiều.
Em cám ơn Anh Bình trước nhiều nhe!!!
  • 0

#2672 atl

atl

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 November 2010 - 10:49 PM

Chào bạn atl,
Như đã nói ở bài trước, để dựng được các mặt cắt mình cần biết cao độ của các đường đồng mức và cái nguyên tắc nội suy của bạn. Bạn mới trả lời là nguyên tắc nội suy do mình tự chọn còn cách xác định cao độ của các đường đồng mức thì sao??? Thực tế trên bình đồ mình thấy các đường đồng mức có màu sắc khác nhau và xem lẫn với các điểm ghi độ cáo mà chưa rõ cao độ của các đường đồng mức này xác định ở đâu bạn ạ.
Bạn nói đã có lisp để dụng mặt cắt, vậy có thể gửi lên để mình tham khảo được chăng??? Điều đó sẽ giúp mình hiểu rõ hơn và sẽ giải quyết vấn đề được tốt hơn bạn ạ.
Hề hề hề, mình có tham quá không nhể????

xin lổi anh bình,em không cho được,hi,em có ý này không biết thế nào,nhưng có vẽ hới dài tí,đấy là (1,anh chọn tuyến công trình,sau đó anh nhập sẽ nhập cao độ cho các đường đồng mức từ bàn phím,chọn đường đồng mức nào thì nhập cao độ đường đm đấy,sau đó sẽ chạy cắt dọc tuyến,ngang tại các cọc,đấy chỉ mới chạy ra được cắt ngang địa hình thôi,sau đó mới bắt đầu ngập liệu đầu vào cho cái đường chân đập,dài quá phải không anh bình,
  • 0

#2673 vailin

vailin

    biết zoom

  • Members
  • Pip
  • 17 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 23 November 2010 - 10:26 AM

Trong Nova có lệnh THB hiệu chỉnh xuất khối lượng qua EXCEL mà
Bạn thử xem
Nếu không được thì bạn gửi file lên tôi xem thử


Bạn xem giúp mình với. Mình ko thể lập đc bảng khối lương. Liệu có lisp nào giúp tổng hợp khối lượng này ko. Chân thành cảm ơn.

http://www.mediafire...5lo1aamt6i3up9g
  • 0

#2674 tulamquan

tulamquan

    biết vẽ line

  • Members
  • PipPip
  • 26 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 10:49 AM

Bạn xem giúp mình với. Mình ko thể lập đc bảng khối lương. Liệu có lisp nào giúp tổng hợp khối lượng này ko. Chân thành cảm ơn.

http://www.mediafire...5lo1aamt6i3up9g


file của bạn đưa lên đã loại đối tượng rồi phải ko, nếu đúng thì mình thấy TD, TN đã chết => các diện tích điền ở TN ko thuộc đối tượng NOVA nên không dùng đuợc lệnh của nova nưa.
  • 0

#2675 lacvanhoa

lacvanhoa

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 10:50 AM

Mong cac bac xem giup, chỉ dùm em cách giải quyết với em cám ơn nhiều.
  • 0

#2676 phongthien

phongthien

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 12:00 PM

phongthien là gió trời đó anh Bình à
không phải phong thiến mà cũng không phải phong thiện đâu
có cách nào giải quyết giúp em với bạn hoa với anh
em với bạn lacvanhoa làm chung bản đồ nè. Chuyển BĐQuy hoạch sang bản đồ địa chính.
huhu
nếu ngồi đánh lại tên chắc chết quá anh
kíu em với!!!!!!
  • 0

#2677 black.dragon02

black.dragon02

    Chưa sử dụng CAD

  • Members
  • Pip
  • 2 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 03:54 PM

Em không biết gì về lisp. Mong các bác đừng cười chê. Em có file này muốn nhờ các bác trên diễn đàn giúp đỡ em với. Em được bạn cho 1 file lisp tính diện tích nhưng mỗi lần chọn vùng cần tính lại phải nhập chiều cao chữ. Nhờ các bác bổ sung giúp để nó mặc định được chiều cao là 0.1, 0.5 hoặc 1 cũng được. Nội dung thế này ạ:

(defun c:dtm()
(defun ctext (diem gt / lst)
(setq lst
(list
(cons 0 "TEXT")
(cons 1 gt)
(cons 10 diem)
(cons 40 (getdist p "\nChieu cao chu: "))
)
)
(entmake lst)
)
(defun dtdoituong (entdt /)
(command ".area" "o" entdt)
(command ".erase" entdt "")
(getvar "area")
)
(defun getbound(p)
(setq ent (entlast))
(command ".boundary" "A" "B" "E" "I" "Y" "" p "")
(setq ent1 (entlast))
(cond
((eq ent ent1) nil)
(t ent1)
)
)
(princ "\ncadviet.com")
(setq
p (getpoint "\nVao diem can tinh dien tich: ")
entpl (getbound p)
)
(if entpl
(ctext p (rtos (dtdoituong entpl)))
(alert "Diem ban chon khong kin!")
)
(princ)
)

(princ "\ndtm - cadviet.com")
(princ)
  • 0

#2678 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 23 November 2010 - 04:02 PM

Em không biết gì về lisp. Mong các bác đừng cười chê. Em có file này muốn nhờ các bác trên diễn đàn giúp đỡ em với. Em được bạn cho 1 file lisp tính diện tích nhưng mỗi lần chọn vùng cần tính lại phải nhập chiều cao chữ. Nhờ các bác bổ sung giúp để nó mặc định được chiều cao là 0.1, 0.5 hoặc 1 cũng được. Nội dung thế này ạ:

(defun c:dtm()
(defun ctext (diem gt / lst)
(setq lst
(list
(cons 0 "TEXT")
(cons 1 gt)
(cons 10 diem)
(cons 40 (getdist p "\nChieu cao chu: "))
)
)
(entmake lst)
)
(defun dtdoituong (entdt /)
(command ".area" "o" entdt)
(command ".erase" entdt "")
(getvar "area")
)
(defun getbound(p)
(setq ent (entlast))
(command ".boundary" "A" "B" "E" "I" "Y" "" p "")
(setq ent1 (entlast))
(cond
((eq ent ent1) nil)
(t ent1)
)
)
(princ "\ncadviet.com")
(setq
p (getpoint "\nVao diem can tinh dien tich: ")
entpl (getbound p)
)
(if entpl
(ctext p (rtos (dtdoituong entpl)))
(alert "Diem ban chon khong kin!")
)
(princ)
)

(princ "\ndtm - cadviet.com")
(princ)

Bạn thay dòng này (cons 40 (getdist p "\nChieu cao chu: ")) -> (cons 40 0.5) để có cao chữ là 0.5 hoặc bạn có thể thay số bất kì.
  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#2679 lacvanhoa

lacvanhoa

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 05:14 PM

Mong được các bác cao thủ trên diễn đàn xem giúp em. file em toàn là mtext nhưng lại explode thì không còn đọc được chũ gì nữa. Kết quả em muốn sau cùng là text 3 đối tượng của text thuộc 3 lớp khác nhau, 3 lớp đó tên gì màu gì cũng được hết.dùng lisp hay chương trình úng dụng nào các bác biết chỉ giáo dùm mà có thể xuất text đó qua excel nằm trong 3 cột khác nhau.
em thì chưa rành về cad nhiều, hỏi bạn bè đồng nghiệp cũng pó tay, các bác biết chỉ giúp em với.
.
  • 0

#2680 lacvanhoa

lacvanhoa

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 November 2010 - 05:44 PM

Mong được các bác cao thủ trên diễn đàn xem giúp em. file em toàn là mtext nhưng lại explode thì không còn đọc được chũ gì nữa. Kết quả em muốn sau cùng là text 3 đối tượng của text thuộc 3 lớp khác nhau, 3 lớp đó tên gì màu gì cũng được hết.dùng lisp hay chương trình úng dụng nào các bác biết chỉ giáo dùm mà có thể xuất text đó qua excel nằm trong 3 cột khác nhau.
em thì chưa rành về cad nhiều, hỏi bạn bè đồng nghiệp cũng pó tay, các bác biết chỉ giúp em với.
EM QUÊN UPLOAD FILE NỮA, FILE CỦA EM NÈ http://www.cadviet.c...es/3/2311_1.dwg
  • 0