文字重叠检测

文字重叠检测

1:选中文字/多行文字

2:确定,软件开始计算文字间的重叠关系

3:输出文字重叠检测结果,包括重叠的文字内容,重叠比例,并且会根据重叠比例排序,在不同程度的重叠会用不同的颜色标识出来。

文字重叠检测

 

发表在 CAD好帮手教程 | 标签为 , | 一条评论

重叠检测

重叠检测,主要用于检测CAD中多段线/直线/圆弧

之间的重叠压盖关系

可以准确快速的计算出所有对象之间的重叠关系

并以列表的形式输出来

重叠关系

1:部分重叠,A曲线部分和B曲线的部分重叠

2:压盖,A曲线压盖整个B曲线

3:被压盖,B曲线压盖整个A曲线

4:完全重叠,AB曲线完全重叠

 

 

发表在 CAD好帮手教程 | 标签为 , | 留下评论

C++获取硬盘的序列号

//网上搜索了好多代码都没法用

//有些没发编译,有些编译成功了计算出来的结果为空,这份代码是可以的,但是用了很多的用不到的输出,我把输出去掉后,直接改换成了一个函数GetHardId,调用后就可以获取硬盘ID,最多只获取19个字符,用处机器码足够了

//用C++获取硬盘的序列号ID以及网卡的MAC地址的源代码,可以用此方式结合md5加密算法进行软件加密。   

 
//获取硬盘ID信息及网卡MAC地址的代码  

/*+++ 
HDID.CPP 
Written by Lu Lin 
http://lu0.126.com 
2000.11.3 
—*/  
#include “stdafx.h”
#include “HDID.h”
#define DFP_GET_VERSION 0x00074080  
#define DFP_SEND_DRIVE_COMMAND 0x0007c084  
#define DFP_RECEIVE_DRIVE_DATA 0x0007c088  

#pragma pack(1)  
typedef struct _GETVERSIONOUTPARAMS {  
 BYTE bVersion; // Binary driver version.  
 BYTE bRevision; // Binary driver revision.  
 BYTE bReserved; // Not used.  
 BYTE bIDEDeviceMap; // Bit map of IDE devices.  
 DWORD fCapabilities; // Bit mask of driver capabilities.  
 DWORD dwReserved[4]; // For future use.  
} GETVERSIONOUTPARAMS, *PGETVERSIONOUTPARAMS, *LPGETVERSIONOUTPARAMS;  

typedef struct _IDEREGS {  
 BYTE bFeaturesReg; // Used for specifying SMART “commands”.  
 BYTE bSectorCountReg; // IDE sector count register  
 BYTE bSectorNumberReg; // IDE sector number register  
 BYTE bCylLowReg; // IDE low order cylinder value  
 BYTE bCylHighReg; // IDE high order cylinder value  
 BYTE bDriveHeadReg; // IDE drive/head register  
 BYTE bCommandReg; // Actual IDE command.  
 BYTE bReserved; // reserved for future use. Must be zero.  
} IDEREGS, *PIDEREGS, *LPIDEREGS;  

typedef struct _SENDCMDINPARAMS {  
 DWORD cBufferSize; // Buffer size in bytes  
 IDEREGS irDriveRegs; // Structure with drive register values.  
 BYTE bDriveNumber; // Physical drive number to send  
 // command to (0,1,2,3).  
 BYTE bReserved[3]; // Reserved for future expansion.  
 DWORD dwReserved[4]; // For future use.  
 //BYTE bBuffer[1]; // Input buffer.  
} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;  

typedef struct _DRIVERSTATUS {  
 BYTE bDriverError; // Error code from driver,  
 // or 0 if no error.  
 BYTE bIDEStatus; // Contents of IDE Error register.  
 // Only valid when bDriverError  
 // is SMART_IDE_ERROR.  
 BYTE bReserved[2]; // Reserved for future expansion.  
 DWORD dwReserved[2]; // Reserved for future expansion.  
} DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;  

typedef struct _SENDCMDOUTPARAMS {  
 DWORD cBufferSize; // Size of bBuffer in bytes  
 DRIVERSTATUS DriverStatus; // Driver status structure.  
 BYTE bBuffer[512]; // Buffer of arbitrary length  
 // in which to store the data read from the drive.  
} SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;  

typedef struct _IDSECTOR {  
 USHORT wGenConfig;  
 USHORT wNumCyls;  
 USHORT wReserved;  
 USHORT wNumHeads;  
 USHORT wBytesPerTrack;  
 USHORT wBytesPerSector;  
 USHORT wSectorsPerTrack;  
 USHORT wVendorUnique[3];  
 CHAR sSerialNumber[20];  
 USHORT wBufferType;  
 USHORT wBufferSize;  
 USHORT wECCSize;  
 CHAR sFirmwareRev[8];  
 CHAR sModelNumber[40];  
 USHORT wMoreVendorUnique;  
 USHORT wDoubleWordIO;  
 USHORT wCapabilities;  
 USHORT wReserved1;  
 USHORT wPIOTiming;  
 USHORT wDMATiming;  
 USHORT wBS;  
 USHORT wNumCurrentCyls;  
 USHORT wNumCurrentHeads;  
 USHORT wNumCurrentSectorsPerTrack;  
 ULONG ulCurrentSectorCapacity;  
 USHORT wMultSectorStuff;  
 ULONG ulTotalAddressableSectors;  
 USHORT wSingleWordDMA;  
 USHORT wMultiWordDMA;  
 BYTE bReserved[128];  
} IDSECTOR, *PIDSECTOR;  

/*+++ 
Global vars 
—*/  
GETVERSIONOUTPARAMS vers;  
SENDCMDINPARAMS in;  
SENDCMDOUTPARAMS out;  
HANDLE h;  
DWORD i;  
BYTE j;  

void CopyRight()
{  
 //cerr<<endl<<“HDD identifier v1.0 for WIN95/98/Me/NT/2000. written by Lu Lin”<<endl;  
 //cerr<<“For more information, please visit Inside Programming: http://lu0.126.com”<<endl;  
 //cerr<<“2000.11.3″<<endl<<endl;  
}  

VOID ChangeByteOrder(PCHAR szString, USHORT uscStrSize)  
{  

 USHORT i;  
 CHAR temp;  

 for (i = 0; i < uscStrSize; i+=2)  
 {  
  temp = szString[i];  
  szString[i] = szString[i+1];  
  szString[i+1] = temp;  
 }  
}  

void DetectIDE(BYTE bIDEDeviceMap){  
 if (bIDEDeviceMap&1){  
  if (bIDEDeviceMap&16){  
   //cout<<“ATAPI device is attached to primary controller, drive 0.”<<endl;  
  }else{  
   //cout<<“IDE device is attached to primary controller, drive 0.”<<endl;  
  }  
 }  
 if (bIDEDeviceMap&2){  
  if (bIDEDeviceMap&32){  
   //cout<<“ATAPI device is attached to primary controller, drive 1.”<<endl;  
  }else{  
   //cout<<“IDE device is attached to primary controller, drive 1.”<<endl;  
  }  
 }  
 if (bIDEDeviceMap&4){  
  if (bIDEDeviceMap&64){  
   //cout<<“ATAPI device is attached to secondary controller, drive 0.”<<endl;  
  }else{  
   //cout<<“IDE device is attached to secondary controller, drive 0.”<<endl;  
  }  
 }  
 if (bIDEDeviceMap&8){  
  if (bIDEDeviceMap&128){  
   //cout<<“ATAPI device is attached to secondary controller, drive 1.”<<endl;  
  }else{  
   //cout<<“IDE device is attached to secondary controller, drive 1.”<<endl;  
  }  
 }  
}
void AddToHardId(char hardId[20],const char* str,const int nSize)
{
 for(int i=0;i<nSize;i++)
 {
  if(str[i]==’\0′)
  {
   break;
  }
  if((str[i]>=’0’&&str[i]<=’9′)||
   (str[i]>=’A’&&str[i]<=’Z’)||
   (str[i]>=’a’&&str[i]<=’z’))
  {
   for(int j=0;j<19;j++)
   {
    if(hardId[j]==’\0′)
    {
     hardId[j]=str[i];
     break;
    }
   }
  }
 }
}
bool GetHardId_nt(char hardId[20])
{
 TCHAR hd[80]={0};  
 PIDSECTOR phdinfo;  
 char s[41];  

 ZeroMemory(&vers,sizeof(vers));  
 //We start in NT/Win2000  
 for (j=0;j<4;j++)
 {  
  wsprintf(hd,_T(“\\\\.\\PhysicalDrive%d”),j);  
  h=CreateFile(hd,GENERIC_READ|GENERIC_WRITE,  
   FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);  
  if (!h)
  {  
   continue;  
  }  
  if (!DeviceIoControl(h,DFP_GET_VERSION,0,0,&vers,sizeof(vers),&i,0)){  
   CloseHandle(h);  
   continue;  
  }  
  //If IDE identify command not supported, fails  
  if (!(vers.fCapabilities&1)){  
   //cout<<“Error: IDE identify command not supported.”;  
   CloseHandle(h);  
   return false;  
  }  
  //Identify the IDE drives  
  ZeroMemory(&in,sizeof(in));  
  ZeroMemory(&out,sizeof(out));  
  if (j&1){  
   in.irDriveRegs.bDriveHeadReg=0xb0;  
  }else{  
   in.irDriveRegs.bDriveHeadReg=0xa0;  
  }  
  if (vers.fCapabilities&(16>>j)){  
   //We don’t detect a ATAPI device.  
   //cout<<“Drive “<<(int)(j+1)<<” is a ATAPI device, we don’t detect it”<<endl;  

   continue;  
  }else{  
   in.irDriveRegs.bCommandReg=0xec;  
  }  
  in.bDriveNumber=j;  
  in.irDriveRegs.bSectorCountReg=1;  
  in.irDriveRegs.bSectorNumberReg=1;  
  in.cBufferSize=512;  
  if (!DeviceIoControl(h,DFP_RECEIVE_DRIVE_DATA,&in,sizeof(in),&out,sizeof(out),&i,0)){  
   //cout<<“DeviceIoControl failed:DFP_RECEIVE_DRIVE_DATA”<<endl;  
   CloseHandle(h);  
   return false;  
  }  
  phdinfo=(PIDSECTOR)out.bBuffer;  
  memcpy(s,phdinfo->sModelNumber,40);  
  s[40]=0;  
  ChangeByteOrder(s,40);  
  //cout<<endl<<“Module Number:”<<s<<endl;  
  memcpy(s,phdinfo->sFirmwareRev,8);  
  s[8]=0;  
  ChangeByteOrder(s,8);  
  //cout<<“\tFirmware rev:”<<s<<endl;  
  memcpy(s,phdinfo->sSerialNumber,20);  
  s[20]=0;  
  ChangeByteOrder(s,20);
  AddToHardId(hardId,s,19);
  //cout<<“\tSerial Number:”<<s<<endl;  
  //cout<<“\tCapacity:”<<phdinfo->ulTotalAddressableSectors/2/1024<<“M”<<endl<<endl;  
  CloseHandle(h);  
 }  
 CopyRight();
 return true;
}
bool GetHardId_9x(char hardId[20])
{
 ZeroMemory(&vers,sizeof(vers));  
 //We start in 95/98/Me  
 h=CreateFile(_T(“\\\\.\\Smartvsd”),0,0,0,CREATE_NEW,0,0);  
 if (!h)
 { 
  return false;
 }  

 if (!DeviceIoControl(h,DFP_GET_VERSION,0,0,&vers,sizeof(vers),&i,0))
 {  
  CloseHandle(h);  
  return false;  
 }  
 //If IDE identify command not supported, fails  
 if (!(vers.fCapabilities&1))
 {  
  CloseHandle(h);  
  return false;  
 }  
 //Display IDE drive number detected  
 DetectIDE(vers.bIDEDeviceMap);  
 //Identify the IDE drives  
 for (j=0;j<4;j++)
 {  
  PIDSECTOR phdinfo;  
  char s[41];  

  ZeroMemory(&in,sizeof(in));  
  ZeroMemory(&out,sizeof(out));  
  if (j&1){  
   in.irDriveRegs.bDriveHeadReg=0xb0;  
  }else{  
   in.irDriveRegs.bDriveHeadReg=0xa0;  
  }  
  if (vers.fCapabilities&(16>>j)){  

   //We don’t detect a ATAPI device.  
   //cout<<“Drive “<<(int)(j+1)<<” is a ATAPI device, we don’t detect it”<<endl;  
   continue;  
  }else{  
   in.irDriveRegs.bCommandReg=0xec;  
  }  
  in.bDriveNumber=j;  
  in.irDriveRegs.bSectorCountReg=1;  
  in.irDriveRegs.bSectorNumberReg=1;  
  in.cBufferSize=512;  
  if (!DeviceIoControl(h,DFP_RECEIVE_DRIVE_DATA,&in,sizeof(in),&out,sizeof(out),&i,0))
  {  
   //cout<<“DeviceIoControl failed:DFP_RECEIVE_DRIVE_DATA”<<endl;  
   CloseHandle(h);
   continue;
  }  
  phdinfo=(PIDSECTOR)out.bBuffer;  
  memcpy(s,phdinfo->sModelNumber,40);  
  s[40]=0;  
  ChangeByteOrder(s,40);  
  //cout<<endl<<“Module Number:”<<s<<endl;  
  memcpy(s,phdinfo->sFirmwareRev,8);  
  s[8]=0;  
  ChangeByteOrder(s,8);  
  //cout<<“\tFirmware rev:”<<s<<endl;  
  memcpy(s,phdinfo->sSerialNumber,20);  
  s[20]=0;  
  ChangeByteOrder(s,20);
  AddToHardId(hardId,s,19);  
 }  

 //Close handle before quit  
 CloseHandle(h);  
 CopyRight();
 return true;
}
bool GetHardId(char hardId[20])
{
 OSVERSIONINFO VersionInfo;  

 ZeroMemory(&VersionInfo,sizeof(VersionInfo));  
 VersionInfo.dwOSVersionInfoSize=sizeof(VersionInfo);  
 GetVersionEx(&VersionInfo);
 bool rc=false;
 if(VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
 {
  rc=GetHardId_9x(hardId);
 }
 else if(VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
 {
  rc=GetHardId_nt(hardId);
 }
 else
 {
  return false;
 }
 if(rc)
 {
  if(hardId[19]!=’\0′)
  {
   hardId[19]=’\0′;
  }
  if(strlen(hardId)<5)
  {
   rc=false;
  }
 }
 return rc;
}
/*
void main(){  
 char szAddr[20];  
 GetMacAddress(szAddr);  
 cout<<“\nNet adapter MAC Address:”<<szAddr<<endl<<endl;  

 OSVERSIONINFO VersionInfo;  

 ZeroMemory(&VersionInfo,sizeof(VersionInfo));  
 VersionInfo.dwOSVersionInfoSize=sizeof(VersionInfo);  
 GetVersionEx(&VersionInfo);  

 switch (VersionInfo.dwPlatformId){  
 case VER_PLATFORM_WIN32s:  
  cout<<“Win32s is not supported by this programm.”<<endl;  
  break;  
 case VER_PLATFORM_WIN32_WINDOWS:  
  hdid9x();  
  break;  
 case VER_PLATFORM_WIN32_NT:  
  hdidnt();  
  break;  
 }  

 // TODO: Add your control notification handler code here  
}
*/

发表在 C++ | 标签为 , , , | 一条评论

文字递增

文字递增功能支持对数字格式(例如:312456)的或字母格式(ABCDFG或abcdft)的单行文本或多行文本进行递增复制

文字递增

支持两种模式

第一种:不设定间距,如上图,则文字可插入任何位置

第二种:选中间距复选框,则固定间距,文字分布在圆上。

支持自定义增量,一次增加多少。

所有参数均可以在递增的过程中调整。

本功能需要注册后才可以使用

我要注册

 

发表在 CAD好帮手教程 | 标签为 , | 留下评论

升级到版本1.0.3

软件升级到版本1.0.3

下载地址1:http://www.cadgj.com/GoodAssistantUpdate/HaoBangShou%201.0.3.exe

下载地址2:http://pan.baidu.com/share/link?shareid=318843460&uk=721859502

版本升级说明

/**************************************/

更新时间:20130918
************九一八,勿忘国耻******************
**********************************************
软件新增了注册功能,注册后可无限制使用所有功能
前一百位用户无条件免费注册,详情见
http://www.cadgj.com/?p=364
**********************************************
更新内容:
1:修补1.0.2发现的BUG
2:增加功能,简单选择,支持根据用户选中的一个或多个图层或全部图层
一个或多个实体类型或所有实体类型选择相应的实体
并且支持反选(选中所有不符合条件的实体)
3:修复了BUG,设置统一颜色中多行文字设置颜色失败的情况
4:统一文件版本:统一多个文件和目录中dwg文件的版本
5:批量文件清理,清理多个文件和目录,支持保存成特定版本
6:一键清理,一键清理所有不需要的资源,压缩文件
鼠标预览,可以预览图层,面积,长度,文字样式,块名称
填充名称等,支持自动启动预览
7:设置当前图层,选择一个实体,将实体所在的图层设为当前图层
8:新增软件注册功能
9:新增文字递增功能,需要先注册软件

发表在 CAD好帮手发布 | 标签为 , , | 留下评论

软件注册

好消息:CAD好帮手完全免费了,所有功能均免费开放使用,不再需要注册了。

 

下面内容请忽略,无视就可以了。

 

通过支付宝付款后给我就可以了

50元/套

账号:wdzhangsl@126.com

QQ:245804736

淘宝店由于我把保证金提取出来了暂时关闭
造成不便,深表歉意

一:注册时间的定义

软件的注册时间为八位数字,例如20130918

表示的意思是您可以使用所有发布时间在2013年9月18日

之前的功能,以及所有无需注册的功能。

软件的注册时间目前分为三个月,半年,一年,两年以及无限制(仅送给早期用户,不对外开放)

二:注册方法

符合条件的用户将注册码通过邮箱或QQ发送给我,我会在收到后第一时间处理(正常情况下在两个工作日之内)。

QQ:245804736

邮箱:wdzhangsl@126.com

1:早期用户,软件的早期用户对支持软件的发展起到了非常好的促进工作,一些用户提出了很多有用的意见建议,为感谢这些用户的支持,免费赠送无限期授权,可永久免费使用软件的所有功能。

2:CAD工具之家论坛注册并有效发帖(广告灌水不算)

初步定义的规则是

500金币兑换3个月注册码

750金币兑换半年注册码

1200金币兑换一年注册码

3:论坛提出合理意见建议被采纳。

4:付费注册,50元/年

开户银行:中国工商银行上海市分行张江支行

户名:张曙亮

账号:6222021001067962966

或者通过支付宝转账:wdzhangsl@126.com

汇款后将特征码通过邮件或者QQ发送给我

新增加淘宝网店,欢迎大家访问

5:前一百位注册,目前已全部送完

三:承诺

承诺一:需要注册后才可以使用的功能不超过软件总功能的20%

承诺二:对非常大众化的功能,例如图纸比较,格式转换,图层工具啊原则上不强制要求注册后才可以使用。

承诺三:已经发布免费的功能永久免费使用。

四:致歉

因网站运营,广告宣传投入等均有一些耗费。且自己辛苦劳动也想略微有些回报,给大家带来的不便,在此深表歉意。

发表在 CAD好帮手教程 | 标签为 , | 2条评论

c++ 获取MAC地址

//获取MAC
CString GetMac()
{
NCB ncb;
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
}ASTAT, * PASTAT;
ASTAT Adapter;

typedef struct _LANA_ENUM
{
UCHAR length;
UCHAR lana[MAX_LANA];
}LANA_ENUM ;
LANA_ENUM lana_enum;

UCHAR uRetCode;
memset(&ncb, 0, sizeof(ncb));
memset(&lana_enum, 0, sizeof(lana_enum));

ncb.ncb_command = NCBENUM;
ncb.ncb_buffer = (unsigned char *)&lana_enum;
ncb.ncb_length = sizeof(LANA_ENUM);
uRetCode = Netbios(&ncb);
for(int lana=0; lana<lana_enum.length; lana++)
{
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = lana_enum.lana[lana];
uRetCode = Netbios(&ncb);
if(uRetCode == NRC_GOODRET)
break;
}
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = lana_enum.lana[0];
strcpy((char*)ncb.ncb_callname, “*”);
ncb.ncb_buffer = (unsigned char *)&Adapter;
ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios(&ncb);
CString strMac;
strMac.Format(_T(“%02X%02X%02X%02X%02X%02X”),Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5]);
return strMac;
}

发表在 C++ | 标签为 , | 留下评论

C++ 获取CPUID

//获取CPUID
CString GetCpuId()
{
CString str2,str3;
unsigned long s1,s2;
_asm // 得到CPU ID的高32位
{
mov eax,01h
xor edx,edx
cpuid
mov s2,eax
}
str2.Format(_T(“%08X-“),s2);
_asm // 得到CPU ID的低64位
{
mov eax,03h
xor ecx,ecx
xor edx,edx
cpuid
mov s1,edx
mov s2,ecx
}
str3.Format(_T(“%08X-%08X\n”),s1,s2);
CString strCpuId=str2+str3;
return strCpuId;
}

发表在 C++ | 标签为 , | 留下评论

Privileged instruction

特权指令

在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统
崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那
么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非
特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通
的应用程序只能使用那些不会造成灾难的指令。形象地说,特权指令就是那
些儿童不宜的东东,而非特权指令则是老少皆宜。

发表在 C++ | 标签为 , | 留下评论

什么样的链接会被百度整站惩罚

我们做的哪些链接会引起株整站,会导致您的整个网站有影响。

  第一点:

  我们做的一些站内性的链接,他都是一些慢性的毒药,为什么那么说,因为大家知道SEO这个行业是05年开始兴起的,然后在持续不断的进行发展。在这些变化过程中,很多人依然保持在一些陈旧的思想观念上,或者凭着经验主意开始做东西,在自己脑海里面积累了很多很多一些SEO优化操作的手段,类似与一些技巧的展示。但是他没有即时的去更新一个自己的知识库,没有即时的去更新脑海里的一些思维。所以说导致自己很多的一些做法已经过时了,但是他没有意识到自己这过时的问题的严重性。在很多程度上会对自己网站造成一种慢性的“中毒”,将自己的网站慢慢慢慢的在搜索引擎中信任度被降低,甚至会出现降权的一些影响;今天给大家普及下,站内哪些链接会影响到你网站一个牵连性的降权。

  第二点:

  就是有可能你忽视到的一些陷阱,今天我们还需要和大家说说我们都会遇到哪些链接性的陷阱来导致我们网站,既然是陷阱,那保证是我们毫无觉察的慢慢走进去的,慢慢慢慢的你被一些操作的手法思维给带入到一个误区。

  第三点:

  一些外部性的链接,我们做网站一个主内、一个主外。那么外部性的一些链接究竟有哪些影响,会株连我们网站的一些影响。今天晚上藤设计小编就根据这3点和大家进行分享。

  网站自身的内部内容的链接,谈到这个,我相信应该很多人会想到一个描文本。站内链接大家都知道,通过文本的指向增加自己网站关键词的密度,加大自己网站区域性的东西。那么在我们站内操作的过程中会发现哪些问题呢?出现的我们就从站内的文章开始,首先我们在做很多站内文章的时候都会添加某文章中出现的关键词。这是大家在做的过程中最最最普遍的一种方式。那么请问这样做有什么好处,他只知道这样去做,但不明白这样去做是为了什么?其实很多人会在那说,这样可以增加蜘蛛的回访量和提供百度的权重,但是今天藤设计小编很明确的告诉你,其实这样做毫无价值。并且会形成株连网站的信誉度降低、牵连网站降权的一种潜在的影响。其实我们不是所有的文章内容都一定需要去做描文本的,如果您的网站内容足够原创并且有很好的引导性,用户能成功阅读,并且停留该页面时间超过8秒的,那么其实是否做描文本,这个意义并不是很大。很多站内的描文本其实都是没有任何价值的。没有任何意义的,很多人现在做SEO他都不是做给用户看的,而是去做给搜索引擎看的。很多站长把自己做网站的一个思维观念还只是停留在前几年或者是说搜索引擎1.0、2.0的那个时代,如果一旦把这种思维关键停留在这种时代里,他会认为蜘蛛会通过查看源码来读取设置的很多描文本链接,那么很多的一些关键词都会去他首页累计权重。其实并不是增加关键词的密度,并且输出很多描文本的链接,就能提升网站的排名和权重。但事实整站或者这样大面积的指向首页,是存在一定问题的(可以说现优化的80%的思维方式都是这么去做的),今天藤设计很明确的告诉你这种思维方式是会被淘汰的,并且会牵引你网站权重的降低或者说会造成一个网站隐性的问题。

  

链接对象过度重复是会被baidu惩罚的
  链接对象过度重复是会被baidu惩罚的

  可能很多人听了上面的说法会说,你的依据是什么,凭什么说这种做法会被淘汰。这是藤设计经过这几年给众多客户优化网站,不断的被百度K和提升所总结出来的经验,如果您觉得这种纯属谣传,那么您可以继续这么做。因为所有的站长如果依然保持这种老套的行为去优化网站,而不站在用户的角度去做推广,那么再有价值的网站也讲被淘汰。并且根据百度官方给出来的一些算法升级的通知,并且与同行之间进行交流的一些新的和技术,得道一些体会。

  对于某一些没有任何意义的加粗或带链接,比如有些朋友在写文章的时候强制性的插入一些关键词,来强化这个关键词的明显度。365天,天天如此,他可能还在认为,我对关键词这样的一个加粗,相当于我们对这个关键词进行了一个着重化的展示。但是未必是这样的,不要强制性的插入和累积导出这种关键词描文本。

  至于相关文章藤设计想请问大家,你的文章真的相关吗?很多网站用的都是一些织梦的网站,或者帝国的一些程序,很多人用的都是些CMS的系统,这种系统有一个功能是系统直接从文章中调用tags。其实系统自动调用出来的文章,真正意义上并不是相关的。当然这种相关文章在您的当前页面里也被称为内部链接,你这种毫无意义价值,毫无相关的内链的文章,是具有很大的杀伤性和危害的,他会造成你的网站丢失信誉度和价值。首先整个网站的正文内容就比较少,但在他的侧边或底下多了很多最新文章、相关文章、热门文章。所谓的这些版块都已经占据你当前页面很多内链了,而且都是一些没有任何价值的,都是一些强制插入的东西,这都网站内部链接的一个构造是非常有危害性的。

  我们上节课刚讲过面包屑导航,可能你的思想又需要颠覆了,面包屑在很多CMS里面,他默认的是首页。但很多人耍聪明,他将面包屑的链接转向了一个和回到首页并无关系的一个页面。但这样会迷失用户的操作性,如果你这样去做的话,是极大可能的会被百度降权的。

  最后大量使用tags,也就是说当你发布完一篇文章后,会出现很多无价值的关键词堆积。你只是把搜索引擎当做一个检索的工具,你没有讲引擎做为用户体验的东西。也就是说我们平常做的那么多工作都只是为了迎合搜索引擎去做的,没有做到SEO一个真正价值的作用。

  以上内容是藤设计经验分享,如果你觉得不错,转载请加上出处:http://www.tengsj.com/

发表在 网站建设 | 留下评论

CAD命令大全

转载至:http://zhidao.baidu.com/question/282908948.html
快捷命令名称, * 命令全名 
如: CO , * COPY 
即键入快捷命令后,再键入一个逗号和快捷命令所替代的命令全称。AutoCAD的命令必须用一个星号作为前缀。 

附:常见的快捷命令 
(一)字母类 
1、对象特性 
ADC, *ADCENTER(设计中心“Ctrl+2”) 
CH, MO *PROPERTIES(修改特性“Ctrl+1”) 
MA, *MATCHPROP(属性匹配) 
ST, *STYLE(文字样式) <BR< p> 
COL, *COLOR(设置颜色) 
LA, *LAYER(图层操作) 
LT, *LINETYPE(线形) 
LTS, *LTSCALE(线形比例) 
LW, *LWEIGHT (线宽) 
UN, *UNITS(图形单位) 
ATT, *ATTDEF(属性定义) 
ATE, *ATTEDIT(编辑属性) 
BO, *BOUNDARY(边界创建,包括创建闭合多段线和面域) 
AL, *ALIGN(对齐) 
EXIT, *QUIT(退出) 
EXP, *EXPORT(输出其它格式文件) 
IMP, *IMPORT(输入文件) 
OP,PR *OPTIONS(自定义CAD设置) 
PRINT, *PLOT(打印) 
PU, *PURGE(清除垃圾) 
R, *REDRAW(重新生成) 
REN, *RENAME(重命名) 
SN, *SNAP(捕捉栅格) 
DS, *DSETTINGS(设置极轴追踪) 
OS, *OSNAP(设置捕捉模式) 
PRE, *PREVIEW(打印预览) 
TO, *TOOLBAR(工具栏) 
V, *VIEW(命名视图) 
AA, *AREA(面积) 
DI, *DIST(距离) 
LI, *LIST(显示图形数据信息) 
2、绘图命令: 
PO, *POINT(点) 
L, *LINE(直线) 
XL, *XLINE(射线) 
PL, *PLINE(多段线) 
ML, *MLINE(多线) 
SPL, *SPLINE(样条曲线) 
POL, *POLYGON(正多边形) 
REC, *RECTANGLE(矩形) 
C, *CIRCLE(圆) 
A, *ARC(圆弧) 
DO, *DONUT(圆环) 
EL, *ELLIPSE(椭圆) 
REG, *REGION(面域) 
MT, *MTEXT(多行文本) 
T, *MTEXT(多行文本) 
B, *BLOCK(块定义) 
I, *INSERT(插入块) 
W, *WBLOCK(定义块文件) 
DIV, *DIVIDE(等分) 
H, *BHATCH(填充) 
3、修改命令: 
CO, *COPY(复制) 
MI, *MIRROR(镜像) 
AR, *ARRAY(阵列) 
O, *OFFSET(偏移) 
RO, *ROTATE(旋转) 
M, *MOVE(移动) 
E, DEL键 *ERASE(删除) 
X, *EXPLODE(分解) 
TR, *TRIM(修剪) 
EX, *EXTEND(延伸) 
S, *STRETCH(拉伸) 
LEN, *LENGTHEN(直线拉长) 
SC, *SCALE(比例缩放) 
BR, *BREAK(打断) 
CHA, *CHAMFER(倒角) 
F, *FILLET(倒圆角) <BR< p> 
AutoCAD 2000快捷命令的使用 
作者:breeze 转贴自:本站原创 点击数:802 文章录入:breeze 
PE, *PEDIT(多段线编辑) 
ED, *DDEDIT(修改文本) 
4、视窗缩放: 
P, *PAN(平移) 
Z+空格+空格, *实时缩放 
Z, *局部放大 
Z+P, *返回上一视图 
Z+E, *显示全图 
5、尺寸标注: 
DLI, *DIMLINEAR(直线标注) 
DAL, *DIMALIGNED(对齐标注) 
DRA, *DIMRADIUS(半径标注) 
DDI, *DIMDIAMETER(直径标注) 
DAN, *DIMANGULAR(角度标注) 
DCE, *DIMCENTER(中心标注) 
DOR, *DIMORDINATE(点标注) 
TOL, *TOLERANCE(标注形位公差) 
LE, *QLEADER(快速引出标注) 
DBA, *DIMBASELINE(基线标注) 
DCO, *DIMCONTINUE(连续标注) 
D, *DIMSTYLE(标注样式) 
DED, *DIMEDIT(编辑标注) 
DOV, *DIMOVERRIDE(替换标注系统变量) 
(二)常用CTRL快捷键 
+1 *PROPERTIES(修改特性) 
+2 *ADCENTER(设计中心) 
+O *OPEN(打开文件) 
+N、M *NEW(新建文件) 
+P *PRINT(打印文件) 
+S *SAVE(保存文件) 
+Z *UNDO(放弃) 
+X *CUTCLIP(剪切) 
+C *COPYCLIP(复制) 
+V *PASTECLIP(粘贴) 
+B *SNAP(栅格捕捉) 
+F *OSNAP(对象捕捉) 
+G *GRID(栅格) 
+L *ORTHO(正交) 
+W *(对象追踪) 
+U *(极轴) 
(三)常用功能键 
*HELP(帮助) 
*(文本窗口) 
*OSNAP(对象捕捉) 
*GRIP(栅格) 
*ORTHO(正交)

3DARRAY:创建三维阵列 3A 
3DFACE:创建三维面 3F 
3DORBIT:控制在三维空间中交互式查看对象 3DO 
3DPOLY:在三维空间中使用“连续”线型创建由直线段组成的多段线 3P 
ADCENTER:管理内容 ADC 
ALIGN:在二维和三维空间中将某对象与其他对象对齐 AL 
APPLOAD:加载或卸载应用程序并指定启动时要加载的应用程序 AP 
ARC:创建圆弧 A 
AREA:计算对象或指定区域的面积和周长 AA 
ARRAY:创建按指定方式排列的多重对象副本 AR 
ATTDEF:创建属性定义 ATT 
ATTEDIT:改变属性信息 ATE 
ATTEXT:提取属性数据 DDATTEXT 
BHATCH:使用图案填充封闭区域或选定对象 H、BH 
BLOCK:根据选定对象创建块定义 B 
BOUNDARY:从封闭区域创建面域或多段线 BO 
BREAK:部分删除对象或把对象分解为两部分 BR 
CHAMFER:给对象的边加倒角 CHA 
CHANGE:修改现有对象的特性 -CH 
CIRCLE:创建圆形 C 
COLOR:定义新对象的颜色 COL 
COPY:复制对象 CO、CP 
DBCONNECT:为外部数据库表提供 AutoCAD 接口 AAD、AEX、ALI、ASQ、ARO、ASE、DBC 
DDEDIT:编辑文字和属性定义 ED 
DDVPOINT:设置三维观察方向 VP 
DIMALIGNED:创建对齐线性标注 DAL 
DIMANGULAR:创建角度标注 DAN 
DIMBASELINE:从上一个或选定标注的基线处创建线性、角度或坐标标注 DBA 
DIMCENTER:创建圆和圆弧的圆心标记或中心线 DCE 
DIMCONTINUE:从上一个或选定标注的第二尺寸界线处创建线性、角度或坐标标注 DCO 
DIMDIAMETER:创建圆和圆弧的直径标注 DDI 
DIMEDIT:编辑标注 DED 
DIMLINEAR:创建线性尺寸标注 DLI 
DIMORDINATE:创建坐标点标注 DOR 
DIMOVERRIDE:替代标注系统变量 DOV 
DIMRADIUS:创建圆和圆弧的半径标注 DRA 
DIMSTYLE:创建或修改标注样式 D 
DIMTEDIT:移动和旋转标注文字 DIMTED 
DIST:测量两点之间的距离和角度 DI 
DIVIDE:将点对象或块沿对象的长度或周长等间隔排列 DIV 
DONUT:绘制填充的圆和环 DO 
DRAWORDER:修改图像和其他对象的显示顺序 DR 
DSETTINGS:指定捕捉模式、栅格、极坐标和对象捕捉追踪的设置 DS、RM、SE 
DSVIEWER:打开“鸟瞰视图”窗口 AV 
DVIEW:定义平行投影或透视视图 DV 
ELLIPSE:创建椭圆或椭圆弧 EL 
ERASE:从图形中删除对象 E 
EXPLODE:将组合对象分解为对象组件 X 
EXPORT:以其他文件格式保存对象 EXP 
EXTEND:延伸对象到另一对象 EX 
EXTRUDE:通过拉伸现有二维对象来创建三维原型 EXT 
FILLET:给对象的边加圆角 F 
FILTER:创建可重复使用的过滤器以便根据特性选择对象 FI 
GROUP:创建对象的命名选择集 G 
HATCH:用图案填充一块指定边界的区域 -H 
HATCHEDIT:修改现有的图案填充对象 HE 
HIDE:重生成三维模型时不显示隐藏线 HI 
IMAGE:管理图像 IM 
IMAGEADJUST:控制选定图像的亮度、对比度和褪色度 IAD 
IMAGEATTACH:向当前图形中附着新的图像对象 IAT 
IMAGECLIP:为图像对象创建新剪裁边界 ICL 
IMPORT:向 AutoCAD 输入文件 IMP 
INSERT:将命名块或图形插入到当前图形中 I 
INTERFERE:用两个或多个三维实体的公用部分创建三维复合实体 INF 
INTERSECT:用两个或多个实体或面域的交集创建复合实体或面域并删除交集以外的部分 IN 
INSERTOBJ:插入链接或嵌入对象 IO 
LAYER:管理图层和图层特性 LA 
-LAYOUT:创建新布局,重命名、复制、保存或删除现有布局 LO 
LEADER:创建一条引线将注释与一个几何特征相连 LEAD 
LENGTHEN:拉长对象 LEN 
LINE:创建直线段 L 
LINETYPE:创建、加载和设置线型 LT 
LIST:显示选定对象的数据库信息 LI、LS 
LTSCALE:设置线型比例因子 LTS 
LWEIGHT: LW 
MATCHPROP:设置当前线宽、线宽显示选项和线宽单位 MA 
MEASURE:将点对象或块按指定的间距放置 ME 
MIRROR:创建对象的镜像副本 MI 
MLINE:创建多重平行线 ML 
MOVE:在指定方向上按指定距离移动对象 M 
MSPACE:从图纸空间切换到模型空间视口 MS 
MTEXT:创建多行文字 T、MT 
MVIEW:创建浮动视口和打开现有的浮动视口 MV 
OFFSET:创建同心圆、平行线和平行曲线 O 
OPTIONS:自定义 AutoCAD 设置 GR、OP、PR 
OSNAP:设置对象捕捉模式 OS 
PAN:移动当前视口中显示的图形 P 
PASTESPEC:插入剪贴板数据并控制数据格式 PA 
PEDIT:编辑多段线和三维多边形网格 PE 
PLINE:创建二维多段线 PL 
PRINT :将图形打印到打印设备或文件 PLOT 
POINT:创建点对象 PO 
POLYGON:创建闭合的等边多段线 POL 
PREVIEW:显示打印图形的效果 PRE 
PROPERTIES:控制现有对象的特性 CH、MO 
PROPERTIESCLOSE:关闭“特性”窗口 PRCLOSE 
PSPACE:从模型空间视口切换到图纸空间 PS 
PURGE:删除图形数据库中没有使用的命名对象,例如块或图层 PU 
QLEADER:快速创建引线和引线注释 LE 
QUIT:退出 AutoCAD EXIT 
RECTANG:绘制矩形多段线 REC 
REDRAW:刷新显示当前视口 R 
REDRAWALL:刷新显示所有视口 RA 
REGEN:重生成图形并刷新显示当前视口 RE 
REGENALL:重新生成图形并刷新所有视口 REA 
REGION:从现有对象的选择集中创建面域对象 REG 
RENAME:修改对象名 REN 
RENDER:创建三维线框或实体模型的具有真实感的渲染图像 RR 
REVOLVE:绕轴旋转二维对象以创建实体 REV 
RPREF:设置渲染系统配置 RPR 
ROTATE:绕基点移动对象 RO 
SCALE:在 X、Y 和 Z 方向等比例放大或缩小对象 SC 
SCRIPT:用脚本文件执行一系列命令 SCR 
SECTION:用剖切平面和实体截交创建面域 SEC 
SETVAR:列出系统变量并修改变量值 SET 
SLICE:用平面剖切一组实体 SL 
SNAP:规定光标按指定的间距移动 SN 
SOLID:创建二维填充多边形 SO 
SPELL:检查图形中文字的拼写 SP 
SPLINE:创建二次或三次 (NURBS) 样条曲线SPL 
SPLINEDIT:编辑样条曲线对象 SPE 
STRETCH:移动或拉伸对象 S 
STYLE:创建或修改已命名的文字样式以及设置图形中文字的当前样式 ST 
SUBTRACT:用差集创建组合面域或实体 SU 
TABLET:校准、配置、打开和关闭已安装的数字化仪 TA 
THICKNESS:设置当前三维实体的厚度 TH 
TILEMODE:使“模型”选项卡或最后一个布局选项卡当前化 TI、TM 
TOLERANCE:创建形位公差标注 TOL 
TOOLBAR:显示、隐藏和自定义工具栏 TO 
TORUS:创建圆环形实体 TOR 
TRIM:用其他对象定义的剪切边修剪对象 TR 
UNION:通过并运算创建组合面域或实体 UNI 
UNITS:设置坐标和角度的显示格式和精度 UN 
VIEW:保存和恢复已命名的视图 V 
VPOINT:设置图形的三维直观图的查看方向 -VP 
WBLOCK:将块对象写入新图形文件 W 
WEDGE:创建三维实体使其倾斜面尖端沿 X 轴正向 WE 
XATTACH:将外部参照附着到当前图形中 XA 
XBIND:将外部参照依赖符号绑定到图形中 XB 
XCLIP:定义外部参照或块剪裁边界,并且设置前剪裁面和后剪裁面 XC 
XLINE:创建无限长的直线(即参照线) XL 
XREF:控制图形中的外部参照 XR 
ZOOM:放大或缩小当前视口对象的外观尺寸 Z
发表在 CAD技巧 | 标签为 | 留下评论

AutoCAD注册机大全

下载:http://pan.baidu.com/share/link?shareid=500686779&uk=721859502

包含AutoCAD2002注册机

AutoCAD2004注册机

AutoCAD2005注册机

AutoCAD2006注册机

AutoCAD2007注册机

AutoCAD2008注册机

AutoCAD2009注册机

AutoCAD2010注册机

AutoCAD2011注册机

AutoCAD2012注册机

后续将增加AutoCAD2013以及AutoCAD2014的注册机

包括64位版本的

发表在 CAD实用软件 | 标签为 | 留下评论

wordpress显示文章阅读次数方法

转载至:http://hi.baidu.com/xvweima/item/a9ec15ccc1c0ec3cee466597

当我们发表某篇文章后,如何显示有多少人浏览过这篇文章,这样访客就可以有选择的浏览文章,然而WordPress本身是没文章阅读次数计数器的,如果想像zblog一样显示出文章的阅读次数就得自己想办法了。不过我们可以借助插件来实现之前我使用的是 WP-PostViews 这款插件,这款插件可以实现侧边栏  Widget功能,比较强大。   

  使用方法:

  1.安装很简单,只需要在后台添加插件输入” WP-PostViews”后就能安装了,然后就可以在首页(index.php)和内容页(single.php)中调用以下代码来显示浏览次数。

  <?php if(function_exists(‘the_views’)) {the_views();} ?>

  笔者是在这两个文件中找到如下代码并把上面的代码加在后面

  <span><?php the_time(__(‘F jS, Y’, ‘inove’)) ?></span>

  2.可以在”小工具”中调用它在侧边栏中显示最受欢迎的文章或页面。

  3.代码调用

  3.1显示阅读次数最多的文章或页面:

  <?php if (function_exists(‘get_most_viewed’)): ?>

  <?php get_most_viewed(); ?>

  <?php endif; ?>Get_most_viewed()函数的括号中有两个参数。

  第一个参数的类型是”文章或页面”或”两者都有”,如:”post”、”page””或”both”。

  第二个参数是类型是列表对象的个数。

  3.2显示某个分类目录下阅读次数最多的文章:

  <?php if (function_exists(‘get_most_viewed_category’)): ?>

  <?php get_most_viewed_category(the_catagory_ID(false)); ?>

  <?php endif; ?>get_most_viewed_category()

  函数的括号中有三个参数。

  第一个参数为分类目录的ID。

  第二个参数的类型是”文章”或”页面”或”两者都有”,如:”post”、”page”或”both”。

  第三个参数是列表对象的个数。

  例子:

  get_most_viewed_category(5,’both’,10);// ID为5的分类目录下阅读最多的10篇文章。

Related posts:

wordpress统计插件:WP-PostViews Plus 语法调用 

浏览数显示模板 :

 

%VIEW_COUNT%人

 

最多人浏览的模板 :

 

<li><a title=”%POST_TITLE%” href=”%POST_URL%”>%POST_TITLE%</a>( %VIEW_COUNT%人次)</li>

 

机器人的 User_agent :

 

bot spider slurp

 

这是后台设定语法 

以下是前台呼出语法,大家可以根据自己的需要进行参数的调整。

 

the_bot_views(null, true)

 

该篇文章的机器人浏览数第一个参数为加在数字后面的说明文字取消本功能,改为后台设定第二个参数是否输出(true为直接印出,false为回传数值)

 

the_user_views(null, true)

 

该篇文章的使用者浏览数第一个参数为加在数字后面的说明文字取消本功能,改为后台设定第二个参数是否输出(true为直接印出,false为回传数值)

 

the_views(null, true)

 

该篇文章的浏览数第一个参数为加在数字后面的说明文字取消本功能,改为后台设定第二个参数是否输出(true为直接印出,false为回传数值)

 

get_totalviews(true, true)

 

总共的浏览数
第一个参数为是否输出(true时直接印出, false时回传数值)
第二个参数是否包含机器人的阅览数(true为包含, false为不包含)

 

get_timespan_most_viewed_tag??(1, null, 10, 0, true, true, 7)

 

限定分类中最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为限定的分类ID(可为由分类ID所组成的阵列)
第二个参数文章的型态(‘post’为文章’page’为分页”为两者都要)
第三个参数为输出回传的文章数量
第四个参数为文章标题的字数(0为不限制)
第五个参数为是否输出(true时直接印出, false时回传数值)
第六个参数为是否包含机器人的阅览数(true为包含, false为不包含)
第七个参数为查询的最近天数

 

get_timespan_most_viewed_category(1, null, 10, 0, true, true, 7)

 

限定分类中最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为限定的分类ID(可为由分类ID所组成的阵列)
第二个参数文章的型态(‘post’为文章’page’为分页”为两者都要)
第三个参数为输出回传的文章数量
第四个参数为文章标题的字数(0为不限制)
第五个参数为是否输出(true时直接印出, false时回传数值)
第六个参数为是否包含机器人的阅览数(true为包含, false为不包含)
第七个参数为查询的最近天数

 

get_timespan_most_viewed(“, 10, 0 , true , true, 7)

 

最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为查询文章的型态(‘post’为文章’page’为分页”为两者都要)
第二个参数输出回传的文章数量
第三个参数为文章标题的字数(0为不限制)
第四个参数为是否输出(true时直接印出, false时回传字串)
第五个参数为是否包含机器人的阅览数(true为包含, false为不包含)
第六个参数为查询的最近天数

 

get_most_viewed_tag??(1, null, 10, 0, true, true)

 

限定分类中最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为限定的分类ID(可为由分类ID所组成的阵列)
第二个参数文章的型态(‘post’为文章’page’为分页”为两者都要)
第三个参数为输出回传的文章数量第四个参数为文章标题的字数(0为不限制)
第五个参数为是否输出(true时直接印出, false时回传数值)
第六个参数为是否包含机器人的阅览数(true为包含, false为不包含)

 

get_most_viewed(“, 10, 0 , true , true)

 

最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为查询文章的型态(‘post’为文章’page’为分页”为两者都要)
第二个参数输出回传的文章数量
第三个参数为文章标题的字数(0为不限制)
第四个参数为是否输出(true时直接印出, false时回传字串)
第五个参数为是否包含机器人的阅览数(true为包含, false为不包含)

 

get_most_viewed_category(1, null, 10, 0, true, true)

 

限定分类中最多阅览数的文章输出回传的型态为以<li>和</li>包围的项目清单
第一个参数为限定的分类ID(可为由分类ID所组成的阵列)
第二个参数文章的型态(‘post’为文章’page’为分页”为两者都要)
第三个参数为输出回传的文章数量第四个参数为文章标题的字数(0为不限制)
第五个参数为是否输出(true时直接印出, false时回传数值)
第六个参数为是否包含机器人的阅览数(true为包含, false为不包含)

发表在 网站建设 | 标签为 , | 一条评论

如何推广自己的网站

如何推广自己的网站
(发外链)
内链为王,外链为皇
对于去哪里发外链,
怎么发外链,
如何发的外链容易被搜索引擎收录,
网站获得高质量外链!
方法一:软文增加外链

软 文一直是比较寿光站长青睐的增加外链的方法,因为你传播出去的不仅仅是网站的外链,你传播出去的还有你的思想和你的经验,这些都是不能用利益来衡量的东西,一篇 软文只有给读者带来实际的作用让他在你的文章中真真正正的受到了启发,并且在运用当中有了实际的效果,那才能算是一篇成功的软文,一个凝聚了你思想结晶艺 术品。我们老师曾经说过,做什么东西如果你想要让他有价值,那你就必须把他做成一件艺术品。有价值的东西才能传播得更长更远,效果必然也更显著,所以希望 大家把每一篇软文都当做艺术品来精心的雕琢。
通过在A5 淘宝联盟,28推 落伍论坛 站长论坛,seowhy等

方法二:百度产品增加外链

贴吧就像是百度的儿子一样,他们之间有着血缘的关系,关系 自然也是最紧密的。从而导致了贴吧在百度的权重特别的高,如果你在贴吧发表的东西会第一时间被百度收录,外链也不例外。也许有的朋友会说贴吧是禁止发外链 的,事实上只有那些大型的且人流量大的贴吧才会屏蔽链接,有很多小贴吧是不会这种限制的,你比如一些地方网站的链接就不会被屏蔽。发上一篇能引发人们讨论 的文章,在末尾带上你网站的链接,在不错的顶贴之间,也会给你带来不小的流量哦!还有一个方法在这里向大家透漏一下,在一些大型的贴吧虽然是禁止发链接 的,但是有一点我们可以利用的就是发图片,大家都知道在贴吧发图片是要用外部链接的,所以一张图片就是你网站的一个链接,但需要记住的是一定要调用自己网 站的图片,不然就是替别人做嫁衣了哦!在网民眼里那是一张图片,可在百度搜索眼里那可是白花花的链接啊,试想下每张图片都是一个链接,发上成千上万的图片 的话,自己去想象一下吧~呵呵!
建议:
1.百度贴吧,你可以选取自己已经收录的而文章,或者别人的而文章找一些人气少的贴吧进行发帖,加上自己外链,外链的方法
Hh.baidu.com/你的外链(不要带上http://)
2.百度百科、先找一些电子产品编辑词条做些任务等到四级,达到85百分的通过率就可以编辑词条,编辑词条在参考资料里加上自己的外链!
3.百度知道,人气流量很大,也可以传递权重、适合因新手引流,发外链先写上50字以上的文章,再参考资料里加上格式:baidu.zhidao.www.xxx.com/ sdjsds/dsd/ads,如果你想通过知道引流,就把你的链接用百度搜藏,然后把搜藏的链接发在知道上1

方法三:源码网站增加外链
源码大家应该都很熟悉了吧!但是很多人却不知道怎么利用源码来增加网站 的外链,大家可以看一下一些大型的源码网站,那里每个源码的下载量都是成千上万的,最少的话也有好几百的下载量。那么我们怎么利用源码来增加外链呢?方法 很简单,大家可以去下载一套网站源码程序,把上面的一切信息都改成你自己的信息,链接当然也改成自己的链接,人家在下载源码程序的时候自然也会带上你的网 站链接,因为版权是你的,所以人家是会尊重你的,为你留下一个友链也是很合理的。大家不要担心这样做是不是侵权,网站上的每一套源码都不知被改过多少次版 权了,真正是谁的版权谁也不清楚,也不会去追究。把带上你链接和版权的网站源码上传到各大源码网站,只要你坚持多改几十套,相信你的外链肯定是不会少的。

方法四:在一些高权重的信息网站进行发外链
58,赶集、百姓、列表,天涯发广告论坛,qu114 、kov
建议:发一些招聘网站客服,兼职站长,发布广告的信息加上自己网站链接,不要贪多
我现在操作主要是114 天涯广告、列表 、kov
方法五:论坛签名留链接法
A5 落伍 淘宝联盟、站长论坛、28推、推一把,seowhy
建议:
1. 最好发原创的知识加上链接,如果有困难,就把28推的文章复制一下,修改换上自己的链接发到其他的论坛:
2. 顶贴最好抢上前三,这样帖子被收录,你的外链也会被收录,因为搜索引擎对收录论坛文章有些限制,回复内容不要过于单调,积极一下!
方法六:视频留链接法!
优酷、土豆、56 ku6 爆米花,
建议:把搞笑的、恶搞、美女、小视频下载下来再上传,在标题里加上自己外链,尽量把视频标题和外链整合一起,或者在描述里加上也可以,然后查看是否审核,如果成功,自己先分享到人人、腾讯、等人气高的地方!
没分享一次,你的外链就多一个!
建议每天上传1到2个视频即可,推荐优酷、爆米花、土豆

方法七:在一些高权重的网站进行发外链
搜搜百科、还有在这新浪问问、搜搜问问 新浪微博 和讯微博转发外链
搜搜问问:比较不错,你可以问一下关于网站的问题加上自己外链
比如:我的网站在搜搜浏览器上输入site:www.cadgj.com,怎么就是0呢

方法八:养博客发链接
推荐搜狐、天涯 、和讯 ,新浪这个博客非常好,建议长期养,但
网易博客:因为不能在文章中加上链接,但是可以加锚文本!
搜狐博客:对于新博客、收录快、可以加锚文本和超链接(我力挺)和讯博客:对于新博客、收录快、可以加锚文本和超链接(我力挺)
方法九:交换外链

方法十:友情链接
在你的外链和收录都稳定以后,就开始使用这个终极必杀,那就是找到同类型里头排名很好的站点,然后去查他们的外链,他们在哪里做外链,你就在哪里做!比如他在论坛上发表一篇软文文章,你就可以回帖同意他说的话,用你的网站域名补充他所说。具体等往后有机会在详细讲解。这样最大程度解决了你不知道在哪做外链的头痛。
2、外链的级别
a.高级外链:既能传递权重、pr 还能带来流量
对于这样的外链:比如百度贴吧!百度知道、百度百科、搜搜百科、搜搜问问、维基百科 、互动百科、新浪博客 新浪问问

b.中级外链:传递权重、pr、和流量选其一
58、百姓、赶集网、B2b网站进行软文推广,高权重的友链,一部分博客!
C.下级外链
只能让你的站达到外链的数量,
外强中干!
单纯地视频标题描述留下链接、论坛签名,
其实这种方式,不可取,下策,因为做外链,我建议大家注重外链的质量,而不是数量

不过说实话,说起来容易做起来就难了,主要是持久的恒心和毅力。

 

发表在 网站建设 | 标签为 , | 留下评论

自动画中心线(多选)

下载:center
自动画中心线,不管是圆的是方的还是不规则的,一选就能画出。只是中心线没有超出边界的长度
命令为:center.
加载方法:菜单  工具(T)>加载应用程序>加载(L)
追加说明一下:
此方法做的圆弧中心线在大多数情况下并不是通过圆心的,我自己用的时候是禁选圆弧的
发表在 CAD实用软件 | 留下评论

AutoCAD_VBA开发经典实例集

AutoCAD_VBA开发经典实例集

下载地址

http://pan.baidu.com/share/link?shareid=4144680054&uk=721859502

发表在 CAD技巧 | 留下评论

WordPress 关键字优化

WordPress 关键字优化

WordPress的默认主题是不能生成keyword和description标签的,这非常不利于搜索引擎收录

可以用下面的代码解决

修改主题的顶部(Header.php)文件

在</title>标签后增加

<?php if (is_home())
{
//是首页
    $description = “CAD工具之家/cadgj.com,CAD好帮手|图纸比较|Baidusitemap|三一邮件群发|CAD工具收集发布|CAD二次开发|其它实用小工具收集发布|C++个人编程博客”;
    $keywords = “CAD好帮手|图纸比较|Baidusitemap|三一邮件群发|CAD工具收集发布|CAD二次开发|其它实用小工具收集发布|C++个人编程博客”;
}
elseif (is_single())
{  
//是文章页面
    $description =  $post->post_title;
    $keywords = “”;      
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag )
{
        $keywords = $keywords . $tag->name . “, “;
    }
if(empty($keywords))
{
$keywords=$description;
}
}
elseif(is_page())
{
//是页面
$description =  $post->post_title;
    $keywords = $post->post_title;
}
elseif(is_category())
{
//是分类页面
$description =  category_description();
    $keywords = single_cat_title( ”, false );
if(empty($description))
{
//如果页面描述是空的,直接也设置为标题吧
$description=$keywords;
}

}
?>
<meta name=”keywords” content=”<?=$keywords?>” />
<meta name=”description” content=”<?=$description?>” />

就可以了

发表在 网站建设 | 标签为 , , , | 留下评论

WordPress中is_single()与is_singular()的区别

简单的认为is_sigular()相当于is_single()||is_page()||is_attachment()没有什么大问题。
也就是说,有is_single()||is_page()

 

的地方,都可以替换成is_singular()

 

但是其实上述这种理解不是太准确。来比较一下is_single()is_sigular()的文档。
is_single()是可以加参数的。参数可以是post_id,post_slug,post_title。2.5之后还可以同时对这几个参数加以判断。
当不带参数时,返回的是当前显示的是不是一个单独的post(而且类型不是page和attachment)。
而带了参数,返回的就是当前显示的是不是编号/标题/标志为“XXX”的那篇post。
在数据库里,is_single不仅要查询ID是否存在,还要保证type是“post”而不是“page”,“attachment”甚至“revision”。

is_sigular()则简单的多。就是当前显示的是不是一条单独的post所形成的页面。
在数据库里,is_sigular()也只是判断ID是否存在即可。

发表在 网站建设 | 标签为 , , | 留下评论

WordPress首页SEO优化

实现的效果是列举出所有的分类及分类下面的前面一定篇数的文章

这样首页不用显示一大摞一大摞的文章内容

可以用更多的位置去放置文章标题,内链大幅度增加,对于非常看重首页的百度非常重要。

下面是实现代码

第一步:修改主题首页模板(index.php)

将显示文章内容的代码替换为下面的代码

<?php
//获得全部
$cat_index=0;
$scat = get_categories(‘hide_empty=1’);
foreach ($scat as $mx_cat)
{
$cat_index=$cat_index+1;
echo ‘<div>’;
echo $mx_cat->cat_name.”<br>”;
$recentPosts = new WP_Query();
// showposts=20,表示最多显示20篇文章,应该要按时间倒序排列,不过还没有来得及做
$query_str=”cat=”.$mx_cat->cat_ID.”&showposts=10″;
$recentPosts->query($query_str);
while ($recentPosts->have_posts()) : $recentPosts->the_post();
echo ‘<a href=”‘;
echo the_permalink();
echo ‘”>’;
echo $post->post_title;
echo ‘</a><br/>’;
endwhile;
echo ‘<a href=”‘;
echo get_category_link($mx_cat->cat_ID);
echo ‘”>’;
echo ‘查看分类 “‘.$mx_cat->cat_name.'” 全部文章…’;
echo ‘</a><br/>’;
echo ‘</div>’;
//输出竖向分隔符
echo ‘<div></div>’;
if($cat_index%3==0)
{
//输出横向分隔符
echo ‘<div></div>’;
}
}

第二步:修改样式表(style.css)

在最后面增加下面的内容就可以了

/*增加首页文章分类列表.css样式(20130912)*/
.index-cat-art-list{width:30%;height:350px;float:left;background:#eee;font-size:10px;}
/*增加首页文章分类列表竖直分隔.css样式(20130912)*/
.index-catartlist-vfg{width:3%;height:350px;float:left;font-size:10px;}
/*增加首页文章分类列表水平分隔.css样式(20130912)*/
.index-catartlist-hfg{width:100%;height:10px;float:left;font-size:10px;}

发表在 网站建设 | 标签为 , | 留下评论

百度权重升到1了

百度权重升到1了

呵呵,虽然比较晚一点,但是晚来总比不来的好吧。

争取年底升级到2吧。

加油。

发表在 网站建设 | 标签为 | 留下评论