找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 167|回复: 0

使用全局函数创建一个简单实体-圆,返回圆的实体数据链表,圆心和半径由用户输入

[复制链接]

1

主题

0

回帖

43

积分

管理员

积分
43
发表于 2024-3-14 20:36:10 | 显示全部楼层 |阅读模式
  1. 定义一个LISP函数,功能:使用全局函数创建一个简单实体-圆,返回圆的实体数据链表,圆心和半径由用户输入;
  2. static int ads采用circle()  
  3. {  
  4.         ads采用point pt;  
  5.         if(acedGetPoint(NULL,采用T("\n选择圆心"),pt) != RTNORM)  
  6.         {  
  7.                 return 0;  
  8.         }  
  9.         ads采用real realNum;  
  10.         if(acedGetReal(采用T("\n输入半径"),&realNum)!= RTNORM)  
  11.         {  
  12.                 return 0;  
  13.         }  
  14.         ////垂直平面法向量  
  15.         AcGeVector3d vec(0,0,1);  
  16.         ////圆心  
  17.         AcGePoint3d ptCenter(pt[X],pt[Y],pt[Z]);  
  18.         AcDbCircle* pCircle = new AcDbCircle(ptCenter,vec,realNum);  
  19.         LoadEntity(pCircle);  
  20.         ////打印出类型为字符串的接收参数  
  21.         resbuf* pInput = acedGetArgs();  
  22.         CString str;  
  23.         while (pInput != NULL)  
  24.         {  
  25.                 if (pInput->resval.rstring != NULL)  
  26.                 {  
  27.                         acutPrintf(pInput->resval.rstring);  
  28.                         acutPrintf(采用T("\n"));  
  29.                 }  
  30.                 pInput = pInput->rbnext;  
  31.         }  
  32.         ////构造圆形实体  
  33.         struct resbuf* rb ;  
  34.         rb = acutBuildList(  
  35.                 RTDXF0,采用T("CIRCLE"),  
  36.                 62,1,//1 == RED  
  37.                 10,ptCenter,  
  38.                 40,realNum,//radius  
  39.                 0);  
  40.         acedRetList(rb);  
  41.         return RTNORM;  
  42. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2025-1-10 21:47 , Processed in 0.106295 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表