lethuongtri 发表于 2022-1-15 02:36:05

无法准确地获得投影点并将其发送到Autocad的命令

大家早上好,我是个新手,我有个问题。我试图通过找到投影点并按该点移动实体,为X/Y方向创建一个简单的对齐命令。源代码如下。请查看
无效
cmdAXY()
{
ads_name ss
TCHAR千瓦
int-rc
rc=acedsget(NULL、NULL、NULL和ss)
如果(rc!=RTNORM)返回
acedInitGet(1,_T(“X,Y”)
acedGetKword(_T(“\n符号方向:
”),千瓦)
//Khai báo,&#273ịnh-ngh;g;c 0 UCS
点pt0、pt1、pt2、pt1T
pt0=0
pt0=0
pt0=0
/&#272ịnh-ngh;pt1
acedInitGet(1,NULL)
rc=acedGetPoint(pt0,_T(“\n选择第一个点:”),pt1)
如果(rc!=RTNORM)返回
/&#272ịnh-ngh;a pt2:
acedInitGet(1,NULL)
rc=acedGetPoint(pt1,_T(“\n选择第二个点:”),pt2)
如果(rc!=RTNORM)返回
struct resbuf*cmdlist
如果(_tcscmp(Kw,_T(“X”)==0)
{
pt1T=pt1
pt1T=pt2
pt1T=pt1
}
其他
{
pt1T=pt2
pt1T=pt1
pt1T=pt1
}
cmdlist=acutBuildList(RTSTR,_T(“.move”)、RTSTR、_T(“P”)、RTSTR、_ T(“)和RTPOINT
,pt1,RTPOINT,pt1T,0)
<div>acedCmdS(cmdlist)
<div>acutRelRb(cmdlist)
acedSSFree(ss)
}



**** Hidden Message *****

lethuongtri 发表于 2022-1-15 19:11:23

RT3DPOINT而不是RTPOINT?

lethuongtri 发表于 2022-1-16 02:26:19

谢谢你的回复。我也试过了,但不起作用。

lethuongtri 发表于 2022-1-16 03:46:09

可能尝试不使用move命令<br>静态无效ArxBrxTest_doit()</div>
{
ads_name ss{0L,0L}
TCHAR-Kw={0}
int-rc
rc=acedsget(NULL、NULL、NULL和ss)
如果(rc!=RTNORM)返回
acedInitGet(1,_T(“X,Y”)
acedGetKword(_T(“\n符号方向:
”),千瓦)
<div>AcGePoint3d pt1、pt2、pt1T
acedInitGet(1,NULL)
rc=acedGetPoint(NULL,_T(“\n选择第一个点:”),asDblArray(pt1))
如果(rc!=RTNORM)返回
acedInitGet(1,NULL)
rc=acedGetPoint(asDblArray(pt1),_T(“\n选择第二个点:”),asdblaray(pt2))
如果(rc!=RTNORM)返回
AcGePlane
如果(_tcscmp(Kw,_T(“X”)==0)
平面。集合(pt1,AcGeVector3d::kYAxis)
其他
平面。集合(pt1,AcGeVector3d::kXAxis)
pt1T=平面接近点(pt2)
<div>AcGeMatrix3d xform=ACGEMATTRIX3D::translation(pt2-pt1T)
ACDBObjectiveDarray ID
<div>acedGetCurrentSelectionSet(ids)
用于(自动id:ids)
{
if(AcDbEntityPointer-pEnt(id,AcDb::kForWrite);被压抑的。openStatus()==eOk)
pEnt->transformBy(xform)
}
acedSSFree(ss)
}

lethuongtri 发表于 2022-1-16 03:51:21

尽管您可能需要转换到UCS

lethuongtri 发表于 2022-1-16 09:40:25

谢谢你的回复。终于,成功了。
我对您的代码有一些疑问
“ads _ name ss { 0L,0L };
TCHAR Kw= { 0 };"-> {0L,0L}和{0}是什么?我们为什么要使用它?
我猜这与“字符串不能以零结尾”警告有关,但我不确定。
预先感谢。

lethuongtri 发表于 2022-1-16 17:10:00

很高兴它能工作:)
我只是试着养成初始化变量的习惯,有时我忘记了,我错过了rc
未初始化的变量会使程序变得不确定性。每次程序运行时,其行为可能会有所不同
在这种情况下,可能不是问题

lethuongtri 发表于 2022-1-22 07:32:01

非常感谢。我明白了。
页: [1]
查看完整版本: 无法准确地获得投影点并将其发送到Autocad的命令