标题:麻烦大侠修改程序,把输出的点文件存在电脑硬盘里面;
只看楼主
adong2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2022-9-18
结帖率:50%
已结贴  问题点数:10 回复次数:5 
麻烦大侠修改程序,把输出的点文件存在电脑硬盘里面;
#include "stdio.h"
#include "math.h"
void main ()
{

 //FILE*fp;
 double pi=3.1415926;

 double L2,L1,L3,L4,L5;

 double L0;

 double xb,yb;

 double r1=31.0;//凸轮直径(可设定)
 double r2=31.0;//夹持工件滚子直径(可设定)
 double Rmin=23.0,Rmax=152.0;//夹持工件半径值(可设定)
 double xita=147.0*pi/180.0;//两臂之间的夹角(可设定)
 double airfmin=0.0, airfmax=0.0, airf=0.0;

 double beita=0.0, omg=0.0;

 double t=0.0;//加持工件半径差值
    xb=0.0;
    yb=0.0;
    L1=355.0, L2=150.0;//支撑臂长度(可设定)
    L3=225.0, L4=280.0;//工件回转中心与侧臂回转中心的距离(可设定)
    L5=234.0;//夹持最小工件时滚子到凸轮最小端面的距离(可设定)
    L0=sqrt(L3*L3+L4*L4);
    omg=atan(L3/L4);
    airfmin=acos((L1*L1+L0*L0-(Rmin+r2)*(Rmin+r2))/(2*L1*L0));//最小弧度
    airfmax=acos((L1*L1+L0*L0-(Rmax+r2)*(Rmax+r2))/(2*L1*L0));//最大弧度
       //fp=fopen("f:\tulunquxian.dat","wb");
 for(t=0.0; t<=Rmax-Rmin; t=t+0.01)      
{
                 airf=acos((L1*L1+L0*L0-(Rmin+r2+t)*(Rmin+r2+t))/(2*L1*L0));
    if(airf<airfmin) break;
    if(airf>airfmax) break;
    beita=pi-xita-omg+airf;
    xb=L4+L2*cos(beita)-(L5+(Rmin+r2)/2+t);
    yb=L3-L2*sin(beita);
    //fprintf(fp,"%1f%1f%1f\r\n",xb,yb,0.0);
    printf("xb=%1f,yb=%1f,\n",xb,yb);
}
     //fclose(fp);
}


//上面是程序的源代码,,现在的程序产生的点文件太大在DOS窗口里显示已经超过10万行,就不显示其余的了,麻烦修改一下程序,让输出的点文件全部存在电脑硬盘里面谢谢
搜索更多相关主题的帖子: double 存在 文件 设定 修改 
2022-10-06 16:47
adong2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2022-9-18
得分:0 
补充一下,我的电脑系统是WIN10; 谢谢各位大侠
2022-10-06 16:57
yahooboby
Rank: 2
等 级:论坛游民
威 望:2
帖 子:6
专家分:40
注 册:2016-4-27
得分:10 

#include "stdio.h"
#include "math.h"
#include <fstream>
#include <string.h>
#include <iostream>
#include <iomanip>
int main (void)
{

 //FILE*fp;
 double pi=3.1415926;

 double L2,L1,L3,L4,L5;

 double L0;

 double xb,yb;

 double r1=31.0;//凸轮直径(可设定)
 double r2=31.0;//夹持工件滚子直径(可设定)
 double Rmin=23.0,Rmax=152.0;//夹持工件半径值(可设定)
 double xita=147.0*pi/180.0;//两臂之间的夹角(可设定)
 double airfmin=0.0, airfmax=0.0, airf=0.0;

 double beita=0.0, omg=0.0;

 double t=0.0;//加持工件半径差值
    xb=0.0;
    yb=0.0;
    L1=355.0, L2=150.0;//支撑臂长度(可设定)
    L3=225.0, L4=280.0;//工件回转中心与侧臂回转中心的距离(可设定)
    L5=234.0;//夹持最小工件时滚子到凸轮最小端面的距离(可设定)
    L0=sqrt(L3*L3+L4*L4);
    omg=atan(L3/L4);
    airfmin=acos((L1*L1+L0*L0-(Rmin+r2)*(Rmin+r2))/(2*L1*L0));//最小弧度
    airfmax=acos((L1*L1+L0*L0-(Rmax+r2)*(Rmax+r2))/(2*L1*L0));//最大弧度
    //fp=fopen("f:\tulunquxian.dat","wb");
    std::ofstream myfile ("out.txt");
    if (myfile.is_open()){
    for(t=0.0; t<=Rmax-Rmin; t=t+0.01){
    airf=acos((L1*L1+L0*L0-(Rmin+r2+t)*(Rmin+r2+t))/(2*L1*L0));
    if(airf<airfmin) break;
    if(airf>airfmax) break;
    beita=pi-xita-omg+airf;
    xb=L4+L2*cos(beita)-(L5+(Rmin+r2)/2+t);
    yb=L3-L2*sin(beita);
    //fprintf(fp,"%1f%1f%1f\r\n",xb,yb,0.0);
    printf("xb=%1f,yb=%1f,\n",xb,yb);
    myfile << "xb=" << xb << std::fixed << std::setprecision(6) << "," << "yb=" << yb << std::fixed << std::setprecision(6) << "," << std::endl;
    }
    myfile.close();
    }
    //fclose(fp);
}
2022-10-07 01:40
adong2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2022-9-18
得分:0 
楼上的老师您好!

您修改的这个程序的第三行   #include <fstream>  ; 我DEV-C++中运行,提示错误    [Error] fstream: No such file or directory  程序运行不了,
您能否再帮我们修改一下,多谢
2022-10-07 09:46
adong2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2022-9-18
得分:0 
那位老师帮我解决一下这个问题,谢谢!!急用!![
2022-10-07 11:00
adong2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2022-9-18
得分:0 
输出的点文件的格式是(例如)    xb=78.670345,yb=104.291795
2022-10-07 11:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510214-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.116448 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved