m4rdy 发表于 2022-7-6 10:10:37

 
哇,终于。。。。。。。。。

Lee Mac 发表于 2022-7-6 10:13:02

 
好的,谢谢你的评论,但它不是理想的个人文本项目-然而,除了在Arx中创建自定义对象,这是我能想到的最好的。。。

blueshake 发表于 2022-7-6 10:16:40

嗨,李
我测试你的代码。这太神奇了。
我的话来了。
我们能平均排列这个字符串吗?
e、 g.我有一个刺“ABCD”,我选择了曲线(圆)。然后我可能想把它们放在平均值中。请参见图片。任何曲线都一样。
无论如何这只是我的想法。
http://www.ikaca.sh.cn/attachment/201011/5/1745_1288960550JMPz.png

Lee Mac 发表于 2022-7-6 10:19:54

 
谢谢
 
 
“平均”是指沿曲线等距分布吗?如果是这样,可以检索曲线的长度,除以字符串中的字符数以获得间距,计算每个字符的点和曲线在这些点的一阶导数,然后相应地定位。
 

blueshake 发表于 2022-7-6 10:22:30


李,如果你有空的话,你能改一下密码吗?我没有这个能力。:)非常感谢。

blueshake 发表于 2022-7-6 10:26:38

嗨,李,深入了解一下你的密码。
 
我的困惑来了。
1.根据文献,我们可以使用“strlen”函数来获得字符串的长度。
但是,如果sting包含宽字符,我们如何获得字符串的字符数。
e、 g.如果字符串为“abc”,“strlen”返回3。所以我们可以知道字符串“abc”有三个字符。
但是如果字符串是“汉字,strlen也返回4。但实际上它只有两个字符。
我们有没有其他方法来获取字符串的字符数?
 
2.如何获得曲线的长度??
 
谢谢你抽出时间。

Lee Mac 发表于 2022-7-6 10:29:56

 
比如:
 
(length (vl-string->list <string>))
 
 
(vlax-curve-getDistatPoint entity (vlax-curve-getEndPoint entity))

blueshake 发表于 2022-7-6 10:32:51

@李。
这似乎不起作用。仍然返回4。
实现我上面提到的功能。我认为我们只需执行以下步骤。
1.选择曲线和字符串。
2.将字符串分解为单个字符集并存储。
3.根据字符集的计数,沿曲线求解等距点。
4.将字符放置在具有旋转点切线角的相对点。
 
问题:
1.如何断开绳子。
2.如何获得等间距点。
3.如何获得曲线中点的切线角。
我觉得这很复杂。

Lee Mac 发表于 2022-7-6 10:35:04

1)
(mapcar 'chr (vl-string->list <string>))
 
2) 使用以下公式获取曲线长度:
 
(vlax-curve-getDistatPoint entity (vlax-curve-getEndPoint entity))
 
将其除以字符数以获得间距,然后使用vlax curve getPointatDist,间距作为增量。
 
3)
(angle '(0. 0. 0.) (vlax-curve-getFirstDeriv entity (vlax-curve-getParamatPoint entity point)))

alanjt 发表于 2022-7-6 10:38:31

别忘了考虑曲线的方向。
页: 1 [2]
查看完整版本: 文本沿曲线漫游