در زیر برنامهای کاربردی برای تبدیل چندخطیهای سهبعدی (۳DPolyline) به چندخطیهای دوبعدی(۲DPolyline) در سند نرمافزارهای اتودسک (اتوکد، لنددسکتاپ، سیویل تری دی)، قرار داده شده است. البته در نسخههای جدید نرمافزارهای اتودسک این قابلیت اضافهشده است. در اینجا برنامه دیگری که مشابه همین کار را انجام میدهد قرار دادهشده (برنامهای برای تبدیل کلیه چندخطیهای سهبعدی به دوبعدی)، تفاوت این دو برنامه در این است که این برنامه تمام چندخطیهای سهبعدی را پس از تبدیل به چندخطی دوبعدی یکپارچه میسازد ولی برنامه دیگر پس از تبدیل به چندخطی دوبعدی آنها را یکپارچه نمیسازد.
دوستانی که نحوهی فراخوانی فایلهای لیسپ (LISP) را در نرمافزارهای اتودسک نمیدانند، برای رفتن به صفحه آموزش فراخوانی فایلهای لیسپ (LISP) در نرمافزارهای اتودسک اینجا کلیک کنند.
برای دستیابی به موارد بالا، ابتدا کدهای زیر را در یک فایل متن (مانند نوتپد “Notpad”، ورد “Word” و …) کپی کرده و در نهایت پسوند فایل را به lsp. تغییر دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
;-======================================-; ;- Convert 3DPolylines to 2DPolylines -; ;- Tested on AutoCAD 2002-2014 -; ;- Written by -; ;- Ebrahim Rastgou -; ;- WWW.GeoGIS.ir -; ;- 05-05-14 -; ;-======================================-; ;---------------Convert 3DPolylines to 2DPolylines------------------ (defun C:3DP2DP (/ *error* acdoc obj_lst ss tmp_ss) (alert " Hello friends \nConverting all 3dPolyLines to 2DPolyLines") (or (vl-load-com)) (or acdoc (setq acdoc (vla-get-activedocument (vlax-get-acad-object) ) ) ) (vla-endundomark acdoc ) (vla-startundomark acdoc ) (setvar "peditaccept" 1) (setvar "delobj" 1) (setq ss (ssget "_X" (list (cons 0 "polyline") (cons 100 "AcDb3dPolyline") ) ) ) (vlax-for a (vla-get-activeselectionset acdoc) (setq obj_lst (vlax-invoke a 'Explode)) (setq tmp_ss (ssadd)) (foreach itm obj_lst (ssadd (vlax-vla-object->ename itm) tmp_ss) ) (command "._pedit" "_m" tmp_ss "" "_j" 0.000 "") (delobject a) (setq tmp_ss nil) ); end for ; ------ delobject ------ (defun *error* (msg) (princ msg) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object) ) ) (princ) ); end defun *error* ; ------ delobject ------ (defun delobject (obj) (vl-catch-all-apply (function (lambda () (vla-delete obj) ) ) ) ); end defun delobject (*error* nil) (princ) ); end defun 3DP2DP |
دوستانی که تمایل به کپی کردن کد برنامه را ندارند میتوانند فایل لیسپ (LISP) برنامه بالا را از پیوندهای زیر دریافت نمایند.
برای اجرای این برنامه پس از دریافت و بارگذاری برنامه روی نرم افزار اتودسک خود، کافیست در خط فرمان (Command Line) نام اجرای برنامه که در خط تعریف برنامه (defun)، نوشته شده است و اینتر کنند. نامه این برنامه برای اجرا ۳DP2DP است.
نکته : جزوات و اطلاعات این سایت به روز خواهند شد پس در زمان دانلود، به تاریخ انتشار آن توجه فرمایید.
حجم داده : ۲۳ کیلوبایت
تاریخ انتشار : ۹۳/۰۴/۲۲
دانلود : دانلود از لینک کمکی ۱
دانلود : دانلود از لینک کمکی ۲
نظر شما