PDA

View Full Version : گفتگو: خواندن اطلاعات فایل DXF و رسم آن



hassan p.b
چهارشنبه 28 مهر 1389, 17:38 عصر
:تشویق:سلام خدمت دوستان
تاپیک های قبلی با مدیریت کلان سایت بدون دلیل آن هم دوتا دوتا همزمان پاک می شونند بدون ارائه راه حل و ......
حال امیدوارم در این تاپیک بتوانیم بجایی برسیم
با تسکر از همه دوستان
هدف:
اینجام انواع رسم در دلفی مخصوصا ورژن 6 یا 7 آن
رسم فایل های اتوکد dxf در image دلفی با قابیلت رسم نقطه ای
می توان توسط فرمول های ریاضی و توابع دلفی فایل های کد را خوانده و رسم کرد ان هم نه بصورت خط و دایره بلکه با نقاط
البته می دانم openGL هم هست
اما فعلا دلفی منظور است دوستان راهنمایی نمایید نه حذف تا به نتایج قابل توجه برسیم
استفاده از این دانش
امکان کنترل سیستم های کنترل مانند برش - تراش و غیره
با تشکر از همراهیتان

hassan p.b
چهارشنبه 28 مهر 1389, 17:39 عصر
جستجو در موارد مشابه
http://www.barnamenevis.org/forum/showthread.php?t=146537&highlight=%D8%B1%D8%B3%D9%85+%D8%AF%D9%84%D9%81%DB %8C

مورد دیگر
http://www.barnamenevis.org/forum/showthread.php?t=146231&highlight=%D8%B1%D8%B3%D9%85+%D8%AF%D9%84%D9%81%DB %8C

مورد دیگر
http://www.barnamenevis.org/forum/showthread.php?t=222547&highlight=%D8%B1%D8%B3%D9%85+%D8%AF%D9%84%D9%81%DB %8C&page=3

Mahmood_M
چهارشنبه 28 مهر 1389, 18:24 عصر
خوب که چی ؟! سه تا تاپیک ایجاد کردید ، توی هیچ کدوم یه توضیح درست و حسابی در مورد سئوالتون ندادید ، چی کار می خواید بکنید ، مشکلتون دقیقا توی کدوم قسمت ، مفهوم این عبارات چیه ؟!! :

اینجام انواع رسم در دلفی مخصوصا ورژن 6 یا 7 آن
رسم فایل های اتوکد dxf در image دلفی با قابیلت رسم نقطه ای
می توان توسط فرمول های ریاضی و توابع دلفی فایل های کد را خوانده و رسم کرد ان هم نه بصورت خط و دایره بلکه با نقاط
البته می دانم openGL هم هست
اما فعلا دلفی منظور است دوستان راهنمایی نمایید نه حذف تا به نتایج قابل توجه برسیم
استفاده از این دانش
امکان کنترل سیستم های کنترل مانند برش - تراش و غیره
معلون نیست جملات شما خبریه یا سئوالی ! مشکلتون چیه ؟ می خواید اطلاعات رو از یک فایل اتوکد بخونید و در دلفی اون رو رسم کنید ؟ خوب این موضوع چه ربطی به پردازش تصویر داره ؟

متاسفانه بدون توجه به تذکری که بهتون دادم باز هم اقدام به ارسال پستهای پشت سر هم در تاپیک کردید ! لطفا قوانین رو رعایت کنید :
عنوان مناسب ، توضیح مناسب در مورد سئوال ، عدم ارسال پستهای بی محتوا و پشت سر هم و ...

کمی وقت برای بهتر پرسیدن و رعایت قوانین نمی زارید بعد طلبکار هم هستید که مدیر تاپیک من رو پاک کرد

تاپیک های قبلی با مدیریت کلان سایت بدون دلیل آن هم دوتا دوتا همزمان پاک می شونند بدون ارائه راه حل و ......

hassan p.b
پنج شنبه 29 مهر 1389, 11:57 صبح
با سلام
چـــــــــــرا ناراحت می شویید اولا علت این نام اینست که موضوع بصورت کلی بررسی شود دوم پردازش تصویر در سایت ها هست و نیز OPENGL ولی بحث در مورد اتوکد خیلی کم است شما اگر بعنوان بنده اشکال دارید خب اصلاح کنید دیگه از ریشه نزنید

دوست گرامی آن دو تاپیک مدتهاست بودند و دوستان عزیزی مثال هایی دادند آنجا یک منبع کوچک بود و علت نام آنها در زمان ایجادشان کافی بود و کم کم ما هم با مطالبمان بزرگ می شوییم و موضوعات گسترش می یابند و شما مرا به عدم رعایت قوانین و حتما اخراج هم تهدید می کنید علت کوتاه نوشتن من در کافی نت هستم و بعضا سیستمشان ریست می شود اینرا هم ایراد برمن نگیرید دوست گرامی

منظور من و آنمچه بدنبالش هستم امکان برنامه نویسی و بازکردن فایل کد مانند DXF در دلفی و رسم اطلاعات آن فایل کد بصورتی که بتوان بصورت نقطه به نقطه به ان دسترسی داشتX,Y,Z و از این اطلاعات برای کنترل جهان خارج استفاده کرد

دیگه نمی دانم چگونه بگویم ایراد نگیرید
با تشکر

یک مثال برای منظورم البته سواد من همین قدر است فعلا!!!!!

موارد مشابه که اول جستجو می کنم و قوانین را رعایت می کنم
http://www.barnamenevis.org/forum/showthread.php?t=112582&highlight=%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4+%D8 %AA%D8%B5%D9%88%DB%8C%D8%B1&page=2
گزینه دیگر
http://www.barnamenevis.org/forum/showthread.php?t=233392&highlight=%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4+%D8 %AA%D8%B5%D9%88%DB%8C%D8%B1&page=2

moein+
شنبه 01 آبان 1389, 01:01 صبح
سلام، خب اگر بشه راجع بهش صحبت کنیم، بخشی از این موضوع مورد علاقه شما مورد علاقه من هم هست، حیطه ترسیمات برداری و اینترفیس های سخت افزاری...
پس برای شروع؛ فکر نمی کنم ابزاری مشابه Canvas دلفی، گزینه مناسبی برای ایجاد بستر مورد نظر فعالیت شما باشه، در نگاه ساده تر استفاده از ابزاری مثل Graphic32 رو پیشنهاد می کنم که دیدی شدیدا نقشه بیتی داره و این یه کم آزار دهنده هست... پس گزینه بهتری که می شه ازش نام برد خود +GDI ویندوز هست که یونیت های سر بار گذاری شدش برای دلفی تو همین فروم چند باری برای دانلود توسط سایر اعضا قرار داده شده...
فکر می کنم برای مدیریت و کار با داده های ترسیمات طراحی ساختاری منظم برای نگهداری اشیاء ترسیمی ضروریست...

اما در مورد مطالبی که بیان کردید؛
بیائید مسئله را به قسمت های کوچکتری تبدیل کنیم
-دستیابی به ساختار فایل های متنی کلاسیک AutoCAD یعنی DXF، خواندن وتفسیر اطلاعات آن و شاید هم ذخیره داده های ترسیمی برنامه در این قالب.
-ایجاد محیط طراحی با قابلیت ترسیم طرح های دو و سه بعدی
-و مقوله ای که شما با عنوان "امکان کنترل سیستم های کنترل مانند برش - تراش و غیره" از آن یاد کردید...

در مورد مقوله اول؛ ساختار DXF علی رغم اضافه شدن امضای دیجیتالی توسط صاحبان آن (Autodesk) این روزها در نرم افزارهای متعددی اعم از داخلی و خارجی مورد استفاده قرار گرفته و به همین جهت منابع متعددی در اینترنت جهت معرفی این ساختار وجود دارد ... ولی اگر به دنبال یک چیزی شبیه کامپوننت اونم از نوع رایگان ومثلا کدباز می گردید که به مثابه شی TBitmap مثلا شی TDXFObject رو به شما بدهد و با روتینی مثل LoadFormFile برایتان مثل آب خوردن یک فایل DXF را باز کند، باید بگم من چند وقت پیش دنبال یه همچین چیزی گشتم و پیدا نکردم...لذا اگرپیدا کردید ما رو هم در جریان بگذارید :لبخند: اما اگر کمی توقعتان را کم کنید و به ActiveX ها رضایت بدهید اطمینان دارم یه چیزهایی پیدا می کنید که البته با کمی زحمت کمکتان کنند...

اما در مورد مقوله دوم؛ دوست عزیز راهبرد اصلی شما در این بخش برای من کاملا نا مشخص است، آیا این محیط فقط محیطی نمایشی برای فایل های ترسیمی است و یا اهداف ویرایشی و ترسیمات جدید هم در راستای پروژه شما قرار دارند... در هر حالت و با توجه به سه بعدی بودن محیط یقینا OpenGL آسان ترین راه و قابل اطمینان ترین راه های موجودی است که من با آنها آشنایی دارم، گفته شما را در جمله "البته می دانم openGL هم هست اما فعلا دلفی منظور است"، اصلا درک نکردم، آیا شما تصور می کنید از هر ابزاری که استفاده کنید حتی Canvas غیر از اینست که کار اصلی به دست کتابخانه های ترسیمی خارج از برنامه شماست ... و اگر فکر می کنید OpenGL مقوله پرت و احیانا پیچیده ایست و چنین پروژه ای را می خواهید انجام دهید مطمئنا هر راه دیگری که انتخاب کنید پیچیدگی بیشتری خواهد داشت، در عین حال شما می توانید از کامپوننتها و کتابخانه های کمکی فراوانی که بر اساس OpenGL و یا ابزار مشابه نوشته شده اند بهره ببرید...
واگر باز هم تمایل دارید کار را با همان Canvas برای ترسیمات سه بعدی انجام دهید، ضمن ابراز نگرانی شدید از سرعت به شدت پایین Canvas :لبخند:، سوالی که پیش می آید در مورد میزان آشنایی به هندسه سه بعدی و دویعدی و نگاشنهای دو محیط به یکدیگر است، البته اینها را هم که پشت سر بگذارید باید تحقیقات وسیعی در حیطه محاسبه عمق و امکانات محاوره ای محیط خود انجام دهید و...
و البته منظور شما از ترسیم نقطه ای رو متوجه نشدم،بیشتر توضیح بدهبد!

و در مورد سوم که کاملا ناقص بیان کردید، چه رابطی چه ارتباطی؟ رسانه و یا رابط این فرآیند کنترل چیست؟
دستگاه برش و تراش خاصی مورد نظر شماست و یا به چیز استاندارد مثل به جور CNC؟

خب دوست عزیز با توجه به این همه پرحرفی که در قسمت های بالا کردم، متوجه می شید چه سوال کلی و نامفهومی رو در یک تاپیک مطرح کردید؟به اعتقاد بنده هر کدوم از این بخش ها خوشون در صورت ورود به فاز عملی می تونند سرمنشا تعداد زیادی سوال برای طرح در موضوعی جداگانه باشند..

والبته در مورد عدم پاسخ دادن سایر اعضا به یک سوال، خب برای من هم پیش اومده و البته دلایل زادی می تونه داشته باشه مثل خیلی تخصصی بودن موضوع، نو و جدید بون مقوله، عدم اطلاع سایر اعضا از اون مساله(که البته همه ماهایی که تو این عرصه فعالیت می کنیم نسبت به وسعت اون اشراف نسبی ای رو داریم و البته از اونجایی که حکیم نیستیم جواب همه سوال ها رو نمی دونیم.:لبخند:) و... که معمولا با ترفندهایی مثل کارهایی که شما کردید نمی شه برشون فائق اومد! البته قبول دارم اینجا رفتارها کمی خشونت آمیزه :گریه:
موفق و پایدار باشید.

hassan p.b
شنبه 01 آبان 1389, 16:35 عصر
ســلام خدمت دوست گرامي موعين عزيز
کاملا با شما موافق هستم منظور من اين است که بيشتر از امکانات دلفي بهره ببرييم دنبال يادگرفتنم
من در دستگاه
cnc
محصول داخل اين کار را ديدم نرم افزار فوق با لود کردن فايل
dxf
اين امکان را دارد که در ترسيمات فوق رفته و در روي آنها حرکت نمايد و با آيکون کوچکي هم اين حرکت قابل ديدن است
حرکت فوق به ابزارها و قطعه کار منتقل مي گردد اين نرم افزار از يک ايمپورتر استفاده مي کند
DxfImporter.dll
که بنده آن را هم ديدم و دموي آن از سايت ها قابل دريافت است ولي بنده به اشکال نمايش داده شده دسترسي ندارم
بنابراين اگر خودم بتوانم الگوريتمي ايجاد کنم که با آن اين فايل باز و ترسيم گردد مي توانم براحتي به ترسيمات دست يابم زيرا الگوريتم
ايجاد و ترسيم اشکال در دسترس است براي شروع هم به شناخت ساختار فايل
dxf
نياز بود که الان در هيمن جا در دسترس دوستان قرار مي دهم و تمامي اين امور را هم با تحقيق اوليه و ديدن نمونه هاي کار شده از سراسر جهان
دنبال نموده و تلاش کردم ياد بگيرم
البته سورس در دسترس نبوده و فقط رفتار نرم افزار را مشاهده مي نمايم
بطور مثال اين برنامه در آدرس زير توسط دلفي و کامپوننت
cadsys
نوشته شده است
---------------
http://www.mr-soft.net/en/bmp2cnc.html
bmp2cnc programs!
---------------
در مورد
ActiveX
هم کاملا موافق هستم وبعضا کاملا بدرد بخورهستند و نمايش و اديت را امکان پذير مي نمايند و لي هدف من دسترسي به ترسيمات نمايش داده شده بصورت اطلاعات نقطه اي
يا همان ترسيمي بر اساس جدول مختصات است که بدانم نتقطه فوق در محورهاي
z,y,z,u
در کجا قرار دارد
در مورد
opengl,directx
هم مطالب زيادي است البته منظور من اين است که گام به گام جلو بريم و وارد مباحث فوق شويم که در هيمن راستا مبحث
hpgl
از شرکت
hp
هم وجود دارد که حتي براي دلفي داراي کامپوننت است
در مورد مختصات بصورت نقطه به نقطه هم منظورم اينست که اگر بفرض کماني بر اساس اطلاعات فايل کــــد رسم مي شود بتوان اطلاعات آن کمان را يا خط را بصورت نقطه براساس محورهاي مختصات
داشته باشم يا قابل مراجعه و دسترسي باشد مانند مثال بالا
test1
-----------------
در مورد پرحرفي شما بقول خودتان مخصوصا آخر آن که اميدوارم تمامي پرحرفي ها مانند شما و ديگاه خوب شما باشند و بنده کلي لذت بردم کاش شما زودتر در سايت برنامه نويس عضو مي شديد
نقل قول:
خب دوست عزيز با توجه به اين همه پرحرفي که در قسمت هاي بالا کردم، متوجه مي شيد چه سوال کلي و نامفهومي رو در يک تاپيک مطرح کرديد؟به اعتقاد بنده هر کدوم از اين بخش ها خوشون در صورت ورود به فاز عملي مي تونند سرمنشا تعداد زيادي سوال براي طرح در موضوعي جداگانه باشند..
---------------------------------------------
بنده هم موافقم ولي تا به امروز اگر جستجو نماييد چيز قابل توجهي نمي يابيد و بايستي از جايي شروع نماييم در سايت هاي خارجي هم مخصوصا براي ايرانيها فقط پولي است و آموزشي هم نخواهد ديد و درصورت تمايل به خريد هم موفق نخواهيد شد که
بنده نتوانستم يک کتاب بيست دلاري را تهيه نمايم
++++++++++++++++++++++++++++++
در مورد خودمان هم بگويم اينجاييم تا فکرها را روي هم بگذاريم.....تا شايد بجايي برسيم
++++++++++++++++++++++++++++++
با تشکر
ساختار فايل هاي کد با فرمت
dxf

ساختار فایل های dxf

یک مثال دلفی البته بایستی از همان مثال هم کامپوننت zoomer را نصب نمایید البته مثال دمو است وفقط فایل های خودش را باز می کند در مورد ایراد کانواس دوستان این کامپوننت نوعی کانواس(image or paintBox) توسعه یافته است
با تشکر

آدرس زیر یک مثال بدون سورس opengl است
http://www.shareit.com/product.html?productid=300251730

hassan p.b
یک شنبه 02 آبان 1389, 20:11 عصر
سلام این هم فایل importer فایل dxf که در بالا اشاره کردم
من از نحوه استفاده از ان و توابع داخلیش چیزی نمی دانم و فایل محافظت شده است

Saeed_m_Farid
دوشنبه 03 آبان 1389, 10:49 صبح
دوست عزیز، من فایل هدر (به زبان C) رو پیدا کردم ولی اولاً نیاز به یکسری فایل دیگه بعنوان AppKit داره که باید استفاده کنید : AppKit (http://www.koders.com/c/fid66AF92C36949711A895696191678FBA1FE20C1F4.aspx) ثانیاً سینتکس عجیبی داره، @interface و @end و - و ... که من نمیدونم چخ معنی میدن! احتمالاً تو AppKit اینجور سینتکس ها #define شده :

/* DXFImport.h
* DXF import object
*
* Copyright (C) 1996-2005 by vhf interservice GmbH
* Author: Georg Fleischmann
*
* created: 1996-05-01
* modified: 2005-01-06
*
* This file is part of the vhf Import Library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the vhf Public License as
* published by the vhf interservice GmbH. Among other things,
* the License requires that the copyright notices and this notice
* be preserved on all copies.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the vhf Public License for more details.
*
* You should have received a copy of the vhf Public License along
* with this library; see the file LICENSE. If not, write to vhf.
*
* If you want to link this library to your proprietary software,
* or for other uses which are not covered by the definitions
* laid down in the vhf Public License, vhf also offers a proprietary
* license scheme. See the vhf internet pages or ask for details.
*
* vhf interservice GmbH, Im Marxle 3, 72119 Altingen, Germany
* eMail: info@vhf.de
* http://www.vhf.de
*/

#include <AppKit/AppKit.h>

#define MODE_NORMAL 0
#define MODE_VERTEX 1

#define MODE_CLOSED 1

/* layer flags */
#define LAYERFLAG_FROZEN 1
#define LAYERFLAG_FROZENNEW 2
#define LAYERFLAG_LOCKED 4

typedef struct _DXFGroup
{
NSString *text;
NSString *name;
NSString *layer;
NSString *handle;
int lineType;
float x0, y0;
float x1, y1;
float x2, y2;
float x3, y3;
float width;
float endWidth;
float a;
float begAngle, endAngle;
int color;
int more;
int flags;
int genFlags;
float adjust;
int numGrp;
}DXFGroup;

typedef struct _DXFState
{
NSColor *color; /* color of object */
float width; /* width of object */

int mode; /* mode for loop in svDXFGetGraphicFromData */
float begWidth, endWidth; /* begin and end width for polylines */
float bw, ew; /* begin and end width for vertex elements */
NSPoint point; /* coordinates, used in polyline */
float A; /* Ausbuchtung for vertex */
int id; /* id, used in vertex elements */
NSPoint first; /* for vertex, the first coordinate for close */
int modeClosed; /* for vertex to close */

NSPoint offset; /* offset to move inserts by */
float rotAngle; /* angle to rotate inserts by */
}DXFState;

@interface DXFImport:NSObject
{
id list; // the base list for all contents
DXFState state; // the current gstate
NSPoint extMin, extMax; // bounds from header
NSPoint ll, ur; // bounds of data
float res; // device resolution in pixel per inch
NSArray *table; // layer table
NSArray *visibleList; // array of visible objects (from IDBUFFER) or nil for all visible
DXFGroup group; // contents of current group

NSScanner *blockScanner; // global block scanner
}

/* start import
*/
- (void)setRes:(float)rs;
- importDXF:(NSData*)dxfData;

/* dealloc import object
*/
- (void)dealloc;

/* methods needed to be sub classed
*
* create and return a list of the layers
* - allocateList:(NSArray*)layers
* make a line-object and add it to aList or layer
* - addLine:(NXPoint)beg :(NXPoint)end toList:aList
* - addLine:(NXPoint)beg :(NXPoint)end toLayer:layerName
* make a arc-object and add it to aList or layer
* - (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toList:aList
* - (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toLayer:layerName
* make a curve-object and add it to aList or layer
* - addCurve:(NXPoint)p0 :(NXPoint)p1 :(NXPoint)p2 :(NXPoint)p3 toList:aList
* - addCurve:(NXPoint)p0 :(NXPoint)p1 :(NXPoint)p2 :(NXPoint)p3 toLayer:layerName
* make a text-object and add it to layer
* - addText:(NSString*)text :(NSString*)font :(NXCoord)angle ofSize:(NXCoord)size :ar at:(NXPoint)p toLayer:layerName
* add aList as a stroked path to layer
* - addStrokeList:aList toLayer:layerName
* add aList as a filled path to layer
* - addFillList:aList toLayer:layerName
*/
- (id)allocateList:(NSArray*)layers;
- (void)addLine:(NSPoint)beg :(NSPoint)end toList:(NSMutableArray*)aList;
- (void)addLine:(NSPoint)beg :(NSPoint)end toLayer:(NSString*)layerName;
- (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toList:(NSMutableArray*)aList;
- (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toLayer:(NSString*)layerName;
- (void)addCurve:(NSPoint)p0 :(NSPoint)p1 :(NSPoint)p2 :(NSPoint)p3 toList:(NSMutableArray*)aList;
- (void)addCurve:(NSPoint)p0 :(NSPoint)p1 :(NSPoint)p2 :(NSPoint)p3 toLayer:(NSString*)layerName;
- (void)addText:(NSString*)text :(NSString*)font :(float)angle :(float)size :(float)ar :(int)alignment at:(NSPoint)p toLayer:(NSString*)layerName;
- (void)addStrokeList:aList toLayer:(NSString*)layerName;
- (void)addFillList:aList toLayer:(NSString*)layerName;
- (void)setBounds:(NSRect)bounds;

@end

hassan p.b
دوشنبه 03 آبان 1389, 12:41 عصر
با سلام وتشکر لطفا بیشتر توضیح بدید با تشکر

hassan p.b
جمعه 05 آذر 1389, 20:05 عصر
سایت مشابهه ...
http://www.barnamenevis.org/forum/showthread.php?p=1161353&posted=1#post1161353

hassan p.b
چهارشنبه 18 اسفند 1389, 03:04 صبح
متاسفانه بعد ارتقاسایت من نوشته هام را سخت می توانم پیدا کنم

hassan p.b
پنج شنبه 02 آذر 1391, 02:17 صبح
سلام بعد مدتها می بینم که همگی از فعالیت افتادیم فروم مشابهه دیگه
http://barnamenevis.org/showthread.php?257203-%D9%BE%DB%8C%D8%B4-%D8%A8%D9%87-%D8%B3%D9%88%DB%8C-%D8%B5%D9%86%D8%B9%D8%AA&p=1161353&posted=1

hassan p.b
دوشنبه 06 آذر 1391, 17:12 عصر
دوستان در این سایت خوب هم در این زمینه فعال هستند البته بهتر از ما
http://www.iranmicro.ir/forum/showthread.php?t=6630&page=5