Jumat, 23 Juni 2023

Fungsi vlax-curve-getDistAtParam

Fungsi autolisp kategori ActiveX ini baik contoh di Autocad maupun di Bricscad sempat membuat pusing lo. Di Bricscad contohnya cuma begini:

(setq vlaLine (vlax-ename->vla-object (entlast)))  #<VLA-OBJECT IAcadCircle 000000003A012150>
(vlax-curve-getdistatparam vlaLine 0.75)  188.669747018779

terus dikasih keterangan seperti ini :

the "distance" is a relative length value, for some curve types !
to obtain the real distance, in such cases, you need to determine the point at the parameter, and use (vlax-curve-getdistatpoint)

Di Autocad sebenarnya lebih detil penjelasannya dengan contoh yang lebih jelas pula, tetapi saya aplikasikan di objek arc (busur) yang lebih sederhana hasilnya malah "nil".

ternyata Argument Param yang dimaksud adalah harus dalam jangkauan pada fungsi vlax-curve-getStartParam dan vlax-curve-getEndParam, pada contoh di Autocad nilai vlax-curve-getStartParam adalah 0.0 dan nilai vlax-curve-getEndParam adalah 17.1546 sehingga nilai Param lebih kecil dari 0.0 atau lebih besar 17.154 akan menghasilkan nilai "nil".

berikut coba-coba fungsi nya sehingga menjadi paham : 

silahkan gambar arc dengan panjang 300

(setq objekku (car(entsel)))  => <Entity name: 772ca8a0> (Tentu saja nantinya Entity namenya berbeda)


(setq awal (vlax-curve-getStartParam objekku )) => 0.501547233590248 (nilainya bisa saja berbeda)

nilai ini adalah nilai parameter titik start kurvanya, jadi jika Argument Param diisi dengan nilai ini fungsi vlax-curve-getDistAtParam akan menghasilkan nilai 0.0 (pada parameter ini panjangnya 0.0)


(setq akhir (vlax-curve-getEndParam objekku)) => 1.55726844093916 (nilainya bisa saja berbeda)

nilai ini adalah nilai parameter titik terakhir kurvanya, jadi jika Argument Param diisi dengan nilai ini fungsi vlax-curve-getDistAtParam akan menghasilkan nilai 300.0 (pada parameter ini panjangnya 300.0)

singkatnya :

(setq panjang (vlax-curve-getDistAtParam objekku awal)) => 0.0

(setq panjang (vlax-curve-getDistAtParam objekku akhir)) => 300.0

Mudah-mudahan bermanfaat.


ps: karena kurva yang dicoba baru "arc" bisa jadi keterangan pada Bricscad pada kurva objek lain memang perlu perhatian.


Tidak ada komentar:

Posting Komentar