LauKwokFai 发表于 2022-7-6 00:00:48

某些rot中没有关联代码信息

大家好,
 
我正在尝试处理一个与尺寸相关的autolisp,需要通常存储在关联代码50中的尺寸旋转角度(我认为),我碰巧发现有些尺寸的关联代码50始终为0.0,即使旋转。
 
我比较了两种类型的维度,一种是“正常”的assoc代码50,另一种是额外的代码(100。“AcDbRotatedDimension”),我尝试了“MATCHPROP”,但不起作用。
 
谁能帮我解决这个问题。
 
非常感谢。

MSasu 发表于 2022-7-6 00:07:23

存储旋转角度的是使用旋转选项插入的线性标注。第二个是对齐的;可以从插入点的相对位置(DXF代码10和11)获得其旋转。

LauKwokFai 发表于 2022-7-6 00:08:53

啊。。。。。。谢谢。
 
这意味着我必须做一些正弦/余弦计算来获得旋转角度

MSasu 发表于 2022-7-6 00:13:48

实际上不需要,只需使用角度内置功能:
(angle (cdr (assoc 11 assocListAlignDim))
      (cdr (assoc 10 assocListAlignDim))

LauKwokFai 发表于 2022-7-6 00:19:32

但DXF代码11是文字的插入点,可能会有所不同,而DXF代码10是尺寸线的终点。

MSasu 发表于 2022-7-6 00:20:34

是的,你是对的,我错了。似乎必须寻找DXF代码13和14。很抱歉给您带来不便。

LauKwokFai 发表于 2022-7-6 00:23:54

DXF代码13和14也不能这样做,因为13和14的位置也可能不同!!我试图找出DXF 10和14的距离/角度与DXF 14和13的距离/角度之间的关系

MSasu 发表于 2022-7-6 00:27:11

根据DXF参考,代码13和14是“线性和角度尺寸的定义点”。所以,在我看来,计算对齐尺寸的方向是可靠的。
你可以张贴,请与案件Sketch时,这些不匹配的角度?

Tharwat 发表于 2022-7-6 00:34:22

这只是一个让你思考的例子。
 

(setq e (entget (car (entsel "\n Select Dim :"))))
(setq a   (cdr (assoc 13 e))
   b   (list (car (cdr (assoc 14 e))) (cadr a) (caddr (cdr (assoc 14 e))))
   d   (distance a b)
   ang (angle a b)
)

LauKwokFai 发表于 2022-7-6 00:37:47


这是我第一次在这里附上图片,希望没有造成任何可怕的事情
页: [1] 2
查看完整版本: 某些rot中没有关联代码信息