KetcauSoft


Đăng trả lời 
 
Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
11-07-2012, 08:37 AM
Bài viết: #1
AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
Bài này hướng dẫn gán dữ liệu cho đối tượng bằng XDATA,

Project ví dụ có thể download tại đây: download

Tạo project với 2 modul là: 1) molMain để chứa các hàm cơ bản, và 2) molCommand để chứa các lệnh được gọi trong AutoCAD.


Phần 1: Viết các hàm cơ bản trong molMain

Trong molMain, chúng ta tạo các hàm: AddRegAppTableRecord để tạo cơ sở dữ liệu (nôm na), và Add_Line_With_XData để tạo đoạn thẳng có kèm theo dữ liệu. Chúng ta cũng khai báo biến tổng thể SYS_XData_App để chứa tên của cơ sở dữ liệu.

[Hình: p2012110701.PNG]

Ta chấp nhận các câu lệnh trong hàm AddRegAppTableRecord một cách mù quáng Big Grin

Hàm Add_Line_with_XData có 5 thông số là X1, Y1, X2, Y2 là các tọa độ và tXdata dữ liệu cần gán cho đối tượng. Hàm này giống với hàm vẽ đoạn thẳng thông thường cho đến các câu lệnh 35, 36, 37 là các câu lệnh để thao tác gán Xdata cho đối tượng.
Điều đáng chú ý nằm ở dòng lệnh số 35

Code:
Dim rb As ResultBuffer = New ResultBuffer(New TypedValue(1001, SYS_XData_App), New TypedValue(1070, tXData))


Mã 1001 dùng để lưu thông tin về tên của cơ sở dữ liệu
Mã 1070 để gán một dữ liệu dạng Integer.
Chúng ta có thể tìm hiểu thêm các mã tại đây: http://docs.autodesk.com/ACD/2011/ENU/fi...f-7a06.htm

Chúng ta có thể gán nhiều hơn 1 dữ liệu cho đối tượng, ví dụ đoạn mã sau gán thêm cho đối tượng một dữ liệu kiểu String (mã 1000), ví dụ số hiệu của thanh thép là 3a, dòng số 36 có thể viết lại như sau:

Code:
Dim rb As ResultBuffer = New ResultBuffer(New TypedValue(1001, SYS_XData_App), New TypedValue(1070, tXData), New TypedValue(1000, 3a))
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: kthoangviet , ketcau1 , JamesThike , Chesterpeeby , lakishadx18 , rosalieat3 , darGlult , rosannadu18 , cinfescict , yapedGOT , mindyav18 , nadiasi3 , cliffordfl11 , Robertver , corinneak2 , Nikllync , LarryDrict , Nikolllync , CheNigue , alexisvv16 , ChrisKIX , Edgarshoof , JamesHem , wapedGOT , kovaliev.p-1967 , Brianhaulk , Stavetlerorge , akevbelxg , TjalfSodo , TammyOppom , napedGOT , broonrybiory , katherynbf4 , Danielpiemn , DonaldZoomb , eendallTup , StepheErync , Everetanype , natashagb60 , VaidokSporo , PatrickCoow , JamesFrins , katesf2 , Larryidoutt , RoMasa , evams , gildavw18 , Infonowhoks , PatrickEnesy , Antoniotup , PetrHaifs , Lonnieei , Engabycync , margueritegx18 , katytc11 , intentyCew , arnoldvq11 , geraldqh69 , tolikkk , Harolddrack , ScottIdele , VanielRot , Stuartcony , Amefssips , LeonidRep , ScottEromy , flatstomacheluth , RichardKnricha , Drak0Blort , beckyly1 , Kevinsic , Err1Blort , lydiaal69 , BettyLow , jeannineor3 , paulpr3 , TarokgaT , gwendolynwk11 , herushki , DimitraGay , LillieKege
11-07-2012, 08:43 AM
Bài viết: #2
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
Phần 2: Các hàm trong myCommand

Trong molMain, chúng ta viết 2 lệnh cho AutoCAD là: 1) xdline dùng để vẽ đoạn thẳng, và 2) xdread dùng để đọc dữ liệu từ đoạn thẳng

[Hình: p2012110702.PNG]

Hàm xdline tương đối rõ ràng.

Hàm xdread sử dụng các phương thức kết hợp bao gồm: cho phép người dùng chọn các đối tượng trên màn hình (dòng 9, 10, 11); đọc thông tin từ đối tượng (dòng 20, 21) và đọc dữ liệu Xdata của đối tượng (dòng 25 đến 31).

Chạy đoạn mã và lần lượt thực hiện các lệnh, kết quả như sau:

[Hình: p2012110703.PNG]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: kthoangviet , MatthikStymn , TimrrhyWoodo , WalterBuh , JasperTiz , mistyca3 , mageadlola , winifredym18 , Johnnyirori , Fordhele , GrierClilk , mayrayv11 , Marcobiowl , amiemc3 , ellajl4 , luellamp60 , nzrewbShums , louellafg69 , capedGOT , Andrewler , geraldkw3 , napedGOT , Jessezem , johnxp3 , Charlesvine , nikBubsymnpaussy , Stasllync , Russellweimb , kristenyi1 , ihelufuuc , Philipexits , TammyOppom , heextmaite , TreslottOa , Merdarionwam , wisepfNeks , StepheErync , lamstoreglue , Reagoorago , Williambiafe , DavidStila , DarrylPl , BenWelo , anneuu11 , ethelut1 , gipedittepal , carlyaj60 , tessarg4 , Itangalaft , Mt.parumon1977 , DarrylMa , ritaEa , NathanEt , coleenoq4 , HoraceRold , Fittetpame , Ugolfdush , adelezg11 , anneue16 , Tangachbync , mandyru2 , tolikkk , Howardstima , Pieftorie , lyndado18 , Robert0Blort , Russellboomy , Amefssips , apbisiniwakig , Sergioineme , karingt3 , JesseTer , Stephenweve , Edwardhak , robertocm3 , francescaff69 , BobbyNeina , thelmasu1 , Cronoshids , deas23givigot , ser22shcgot , sherylft1 , Ronnietupeed , Auguststaug , JamesHem , iyicoyfepekam , virgilhh2 , Paulolor , LarryDrict , robertoty1 , eddiefa11 , TultBete , deloreshp60 , sidneyra11 , Edwardcam , faygg60 , herushki , hughig1 , DimitraGay , tomyw16 , cialisCed , LillieKege
11-08-2012, 09:47 PM
Bài viết: #3
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
Cảm ơn bạn Mình đã chọn 2 điểm vẽ 1 đoạn thẳng và gán cho nó đường kính, số hiệu như hướng dẫn.
Thêm một câu hỏi nữa về lọc và gán số lượng những đoạn thẳng có chiều dài, đường kính, bằng nhau

Ví dụ mình vẽ 3 đoạn thẳng : có 2 đoạn chiều dài bằng nhau, đường kính bằng nhau -> sẽ hiện thông báo : "số lượng 2 đoạn, đường kính là d25, chiều dài là 1200 và số lượng là 1 đoạn, đường kính là 22, chiều dài 1100"
Rất mong được giúp đỡ
Diễn đàn rất bổ ích, mình học được rất nhiều từ đây
Thanks!
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: vanphuc57 , lokesVeida , darGlult , lorettali4 , clarissazt2 , Shawncof , Wenaerorge , cinfescict , mageadlola , roysw18 , markxn69 , myrawp16 , brankFib , GrierClilk , deboraav60 , Richardasync , LubosWhows , lawandans1 , adrianff1 , eugeniays16 , phoeberj11 , Jamesrub , harveysn18 , gracielanb18 , kapedGOT , Pakwanst , diannajl18 , KennethAmiva , Francislip , lizzieti3 , UQDouglasvene , CheNigue , Robertver , DavidChedo , ElitKnig , serfeg , LarryDrict , Timothyunemo , christinair60 , Thews , AlexeySi , LouisCat , TERenlei , TjalfSodo , LukjanOt , DaroViat , Hassantize , mairiursE , Nalfbilla , BernarTroxy , BriamPsync , JailtdHig , StepheErync , Jamespic , Reagoorago , carolty4 , KaffuVof , PetrGak , Zoorkdrah , GracerHak , angeliarl18 , avali69 , MichelKic , Larryidoutt , KirbyGag , DerrickMr , kovaliev.p-1967 , fumclile , fredyk60 , VictorHaifs , gapedGOT , eetaqin , ErmestDads , katytc11 , victorgn4 , intentyCew , roslynlq11 , PhillipNenty , esmeraldasd11 , Howardstima , michealgl69 , Amefssips , Antoniotup , Alfonsozenal , Tanyget , danielny1 , OsciarAxiob , RichardKnricha , iguatij , DelazarKa , FramkieSl , ThomasDiCytho , MasterBigisows , GornEa , oliviabq69 , virgilhh2 , jacklynll69 , WilliamBurawill , saranm1 , Drak0Blort , TultBete , KevinItave , DenisSi , RandyAgisa , rebaqy4 , RandyVex , sherihf3 , hazelie60 , Err1Blort , CharlesCar , LillieKege
11-09-2012, 08:44 AM
Bài viết: #4
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
(11-08-2012 09:47 PM)kthoangviet Đã viết:  Cảm ơn bạn Mình đã chọn 2 điểm vẽ 1 đoạn thẳng và gán cho nó đường kính, số hiệu như hướng dẫn.
Thêm một câu hỏi nữa về lọc và gán số lượng những đoạn thẳng có chiều dài, đường kính, bằng nhau

Ví dụ mình vẽ 3 đoạn thẳng : có 2 đoạn chiều dài bằng nhau, đường kính bằng nhau -> sẽ hiện thông báo : "số lượng 2 đoạn, đường kính là d25, chiều dài là 1200 và số lượng là 1 đoạn, đường kính là 22, chiều dài 1100"
Rất mong được giúp đỡ
Diễn đàn rất bổ ích, mình học được rất nhiều từ đây
Thanks!

Để làm được công tác thống kê, bạn cần có một mảng lưu được dữ liệu các thanh thép, bao gồm chiều dài, đường kính, số lượng, v.v... Cách thích hợp nhất là khai báo một kiểu dữ liệu mới thông qua cấu trúc Structure và khai bảo mảng có kiểu dữ liệu mới này.
Quá trình chọn tập hợp đối tượng và đọc thông tin từ XREF, tiến hành so sánh trong mảng, nếu thấy đã có thành thép giống thì cộng thêm vào số lượng, nếu chưa thấy thì thêm thống kê mới.

Download project ví dụ tại đây: http://www.ketcausoft.com/store/public/viduthongke.rar


Trong molMain, các hàm AddRegAppTableRecord Add_Line_With_XData vẫn như ví dụ trước. Bổ sung thêm đoạn mã về khai báo kiểu dữ liệu mới:

[Hình: p2012110902.PNG]


Trong myCommand, lệnh xdline được bổ sung thêm một vài đoạn làm ví dụ

[Hình: p2012110903.PNG]


Lệnh xdread được bổ sung thêm phần thống kê

[Hình: p2012110904.PNG]


Chạy phần mềm, netload đến file xdata.dll, gọi lệnh xdline để vẽ các đoạn thẳng ví dụ, gọi lệnh xdread, chọn các đoạn thẳng, ta có kết quả như sau:

[Hình: p2012110901.PNG]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: kthoangviet , sonfa , lokesVeida , alicewm16 , Kennethdub , ninalo11 , corasb3 , sondrayj3 , crystaldp60 , Wenaerorge , mageadlola , Johnnyirori , mayrayv11 , PeterOwefe , isabelck3 , belindaqs60 , capedGOT , murielke11 , JamesRarSe , dwighttm2 , diannajl18 , Claudewen , ehosihat , janieok60 , WHETTEDIA , coiplisfacile , EusebioHes , Nikllync , Bennieguice , JamesHem , katyfh2 , Runexecofe , Sergioineme , Everetanype , BernarTroxy , eendallTup , Wallachuche , JarockSn , kapedGOT , KaffuVof , PetrGak , Gambalsery , BryanAnato , MichelKic , fertGelm , christinapi18 , ucopupaxowa , eosabivairu , ritaEa , carlenetk16 , CraigGaume , gotselyuk1987got , Nafaster , SXTravis , Engabycync , ImmumeSmence , VenAffevapap , petravl69 , Ellynactiof , AretmButsin , tolikkk , Harolddrack , Davidfek , michealgl69 , japedGOT , Amefssips , SkinnerHow , bernicedk3 , Vladimtup , Danilovox , Michaeldum , Dwaynesync , kiunsieyVedo , Auguststaug , GreggBroom , JeffreyReolf , lakeishayv11 , josefatz11 , KennethMib , Carmenkacar , robertoty1 , leeed60 , Sargfahcap , herushki , susanneje2 , ScottEromy , Marcelliarl , Dephechara , SylviaOn , LillieKege , Ambittils
11-12-2012, 12:37 PM
Bài viết: #5
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
em chào anh!
Anh cho em hỏi em muốn thống kế block động đế làm thống kê thép sàn
trong block động em gán đầy đủ : đường kính, chiều dài
block động theo hai phương:
phương X(Y):chiều dài thanh thep
phương Y(X): chiều dài rải thép
làm thế nào sau một lần quyets chọn nó sẽ ra bảng thông kê vậy anh
cảm ơn anh nhiều
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: MatthikStymn , CharlesRog , glennms69 , linasp16 , clintonai18 , danieldf18 , raulpf4 , Wenaerorge , leonardnu11 , nfrxsdShums , mageadlola , JamesIromo , revaky1 , egitikyuweo , ritaEa , pearliequ3 , russelldi4 , earlkq11 , cathyhb60 , williambx60 , louellafa11 , Pakwanst , jannafl4 , dwighttm2 , LubosWhows , hogan2017 , MichaelCerse , effiesw11 , Charlesvine , PrestonVem , Robertver , DavidNuapS , StevenDof , Laresbip , Tarokot , kristenyi1 , marciii16 , murielke11 , Charlieemumb , kapedGOT , Runexecofe , Hamlartut , RufusRix , JamesHem , GheNigue , Wallachuche , maryellenum11 , Ronaldshiew , Leetep , BrettRal , MichaeelMub , Mauriceen , JesseStoro , PetrHaifs , marano1 , Larryidoutt , NathanEt , FrancisCox , Fittetpame , mikeki18 , Infonowhoks , Mt.kuglov1953 , Nollissl , bridgetgx4 , katytc11 , guadalupeti1 , Pieftorie , maryloure11 , HextraSop , bernicedk3 , Ramonvom , ReneeCen , Kathydox , EthanShuri , joannahn1 , Auguststaug , Err1Blort , Charlesbetcha , FramkieSl , Drak0Blort , RichardKnricha , JasonKek , ruthieuj60 , mistyyt3 , Sarahfuh , sandrasa1 , herushki , Danielbuina , ericaio3 , lotsandArBeecy , sherihf3 , NerDiabe , DimitraGay , Ambittils , LillieKege
11-12-2012, 09:59 PM
Bài viết: #6
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
(11-12-2012 12:37 PM)rum Đã viết:  em chào anh!
Anh cho em hỏi em muốn thống kế block động đế làm thống kê thép sàn
trong block động em gán đầy đủ : đường kính, chiều dài
block động theo hai phương:
phương X(Y):chiều dài thanh thep
phương Y(X): chiều dài rải thép
làm thế nào sau một lần quyets chọn nó sẽ ra bảng thông kê vậy anh
cảm ơn anh nhiều
.
chào rum
Anh vẫn chưa tìm hiểu việc đọc giữ liệu từ Dynamic Block,
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: rum , brentqt11 , roybg4 , helenlq69 , Stephenhah , GrierClilk , genevieverp3 , celiagi60 , Kvas , cinfescict , mageadlola , Eugeniatousy , karitf16 , rochelletp11 , glenpi16 , claudepj3 , luellamp60 , frannh3 , louellafa11 , lessiebq11 , GheNigue , raymondhe18 , hogan2017 , jannafv16 , bradvl18 , Nikllync , nikBubsymnpaussy , tameraue3 , Ivanmn , hapedGOT , cliffordyz2 , Maximkryma25 , Flintmi , Nikolllync , Hoatetaquot , Steventipus , OralkikaTa , Frithjofbip , broonrybiory , ErraldHig , TreslottOa , BernarTroxy , eendallTup , Randyzep , gordonad11 , BrettRal , SAGabriel , PetrGak , bethanybm60 , LutherMr , gotselyuk1987got , LarryDrict , joannajx11 , audrawa2 , Tommyfic , kovaliev.p-1967 , Capsishisp , AlbertoHib , feleciatr11 , Fittetpame , DennisDus , Mt.romanenov1965 , DanielBax , chkana.1974got , tolikkk , Robert0Blort , deas23givigot , chelseawu11 , MaryCen , Howardstima , Amefssips , melanieue3 , Mobert0Blort , Jaredtub , JesseTer , JosephDot , BobbyNeina , RichardPaync , thelmasu1 , Lonnieei , Ramonvom , kiunsieyVedo , FrankAneve , courtneyis16 , rochellesp16 , abigailxr1 , Err1Blort , herushki , racemusic.ru , jessicaul69 , suzettepa69 , darrylbd60 , LillieKege , Waynecet , DimitraGay , opalhp1
01-05-2013, 05:31 PM
Bài viết: #7
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
Kiểm tra Block có phải là Dynamic ko qua properties IsDynamicBlockDuyệt qua DynamicBlockReferenceProperty kiểm tra kiểu dữ liệu -> you got it! Big Grin
Good luck!

Ideas don't matter, execution does!
Link to facebook
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: Ho Viet Hung , xdapro , lokesVeida , marcidz18 , hogan2017 , bztpa , lakishadx18 , TimrrhyWoodo , uapedGOT , rhodaay2 , terrygf69 , toniadu60 , hannahml69 , geraldinebt16 , BobbyNeina , cinfescict , Wenaerorge , johndo2 , concettadg60 , leslieqt60 , marshallua3 , francisyc4 , avtojap , ChytsVeida , Brianhaulk , KennethAmiva , lessiezt11 , carolety16 , Samuellync , Charlesvine , GheNigue , Robertver , jerrydc3 , Ronaldmok , Stasllync , RamonLer , ISBruntonCype , danielletm18 , RepSeaft , allaniq60 , Stavetlerorge , DonaldZoomb , Wallachuche , juliolo18 , BrettRal , SirNigue , quobloyall , nanetteku11 , dennisbp2 , StevenWhone , bungamizugot , Stevencoelt , franciscodz2 , maricelaco3 , NathanEt , Feorgeciz , Howardstima , KennethZep , roycy16 , Nafaster , DennisDus , Mooterabure , Rolandlow , Mt.romanenov1965 , pillsWaH , JefferyPiems , Jeholor , RogerrNag , ser22shcgot , Walshersiz , kaseyms16 , VindentSok , Nollissl , melanieue3 , deanaby3 , Davidpaync , Dephechara , kiunsieyVedo , eugenemh2 , krisql3 , Ernestfer , FramkieSl , Auguststaug , GeorgeLiff , minervajd2 , WilliamBurawill , RobertCen , herushki , Err1Blort
08-23-2017, 04:16 PM
Bài viết: #8
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
Anh cho em hỏi cách đọc dữ liệu Xdata cho đường cong hay cung tròn.
Xin chân thành cảm ơn anh Hùng và diễn đàn
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: clarissazt2 , summerau3 , darGlult , Kvas , brankFib , freddiejw2 , GrierClilk , jenniferep4 , karitf16 , LubosWhows , leannedk11 , friedagu1 , lawandans1 , joshuadc3 , qapedGOT , eugenehc11 , stacink4 , Robertver , rosannayi69 , JamesRarSe , lessiezt11 , GheNigue , Charlesvine , Samuellync , christinair60 , jodievd2 , murielke11 , OlgaWhina , BernarTroxy , Everetanype , MichaeelMub , ruthuq3 , lizzieom60 , Larryidoutt , DonaldZoomb , evams , ronzc3 , tessarg4 , PetrHaifs , AlbertoHib , MelvinSn , brianadb3 , LucienEn , DenisSi , Lindseylor , Michaelbek , ritaEa , RyanCen , ser22shcgot , Amefssips , Stasllync , Dwaynesync , deas23givigot , Howardstima , Jaredtub , ScottEromy , EthanShuri
08-30-2017, 04:23 PM
Bài viết: #9
RE: AutoCAD .NET - Gán dữ liệu cho đối tượng với XDATA
(08-23-2017 04:16 PM)Kicon Đã viết:  Anh cho em hỏi cách đọc dữ liệu Xdata block, đưa xdata vô block thì được, nhưng em không biết đoạn code xuất dữ liệu xdata ra block như thế nào,Xin chân thành cảm ơn anh Hùng và diễn đàn
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: ralphni3 , florencevg2 , deborayi69 , Wenaerorge , brankFib , Jamkittip , marshafl18 , dorotheays1 , cindyku60 , russelldi4 , xxx porno , tamikanr60 , antonioul4 , jacquelynnp3 , dwighttm2 , angeliaed60 , Nikolllync , GheNigue , leahiy3 , DimonKags , rosariozq60 , albaye18 , Stavetlerorge , lupekm16 , katyfh2 , MapWrorb , Aleuouasex , Runexecofe , Everetanype , Richrerossy , Wallachuche , imogeneiu69 , StephenMl , JesseStoro , jannavg11 , MichelKic , Larryidoutt , DavidphymN , cindyxi60 , ronzc3 , carlenetk16 , Mt.kuglov1953 , AlbertoHib , Dwaynesync , GilborTug , FrancisCox , Elliotmaph , PetrHaifs , Infonowhoks , Rolandlow , VictorHaifs , margueritegx18 , Michaelbek , BrettRal , Ambittils , Dephechara , LarryDrict
Đăng trả lời 


Di chuyển nhanh:


Những người đang xem chủ đề này:
2 khách

Trở về đầu trangTrở lên trên