只需一步,快速开始
使用道具 举报
;大家帮我测试一下
(DEFUN C:TEST () (Defun Lhb-Get-Dxf (Code Ename) (Cdr (Assoc Code (Entget Ename)))) (Setvar "Osmode" (+ 1 2 4 8 16 32 128 512 2048 4096)) (While (Setq Dimsel (ENTSEL "\n拾取要拆分的标注尺寸[定位基点靠近点取位置]<退出>:")) (Setq Ename (Car Dimsel)) (Setq Diment (Entget Ename)) (Redraw Ename 3) (Setq Selpt (Cadr Dimsel)) (IF (MEMBER '(100 . "AcDbAlignedDimension") (ENTGET ENAME)) ;;;如果选择的标注是线性或对齐标注 (progn (Setq Dimpt10 (Lhb-Get-Dxf 10 Ename)) (Setq Dimpt13 (Lhb-Get-Dxf 13 Ename)) (Setq Dimpt14 (Lhb-Get-Dxf 14 Ename)) (Setq Ang (Angle Dimpt10 Dimpt14));;;标注线角度 (IF (MEMBER '(100 . "AcDbRotatedDimension") (ENTGET ENAME)) (Setq Dimalang (Lhb-Get-Dxf 50 Ename));;;线性标注角度 (Setq Dimalang (Angle Dimpt13 Dimpt14));;;对齐标注角度 ) (Setq Pt1 (Polar Dimpt10 Dimalang 10)) (Setq Pt0 (Polar Dimpt13 (+ DIMALANG (* PI 0.5)) 10)) (Setq Dimpt1013 (Inters Dimpt13 Pt0 Dimpt10 Pt1 Nil));;;dimpt1013 指对应pt10 (setq Dist (distance Dimpt1013 Dimpt13));;;标注线长度 (Setq Dimpt14 (Polar Dimpt10 (Angle Dimpt10 Dimpt14) Dist)) ;;;================================================================================ ;;;此处用了Entmod (Setq Diment (Subst (Cons 14 Dimpt14) (Assoc 14 Diment) Diment)) (Entmod Diment)(ENTUPD ENAME) (Redraw Ename 3) ;;;亮显不好使了! ;;;================================================================================ (Setq Dimpt14 (Lhb-Get-Dxf 14 Ename)) ;;;取得参考点 (If (< (Distance Dimpt1013 Selpt) (Distance Dimpt10 Selpt)) (Setq Ptfrom Dimpt1013) (Setq Ptfrom Dimpt10) ) ) ;;;如果选择的标注是角度 (progn (Redraw Ename 4) (princ "\n You select a angle dimension!") ) ); End If (Initget 129) (Setq Ptref (Getpoint Ptfrom "\n点取尺寸断开点[或输断开长度(D)/分成等分(N)]<退出>:" ) ) ) )
高!实在是高!但不知道为什么发生这种情况。
更新聚合線及圖塊
當 3D (或舊式) 聚合線頂點或圖塊屬性以entmod 修改後,螢幕上整個複合圖元不會更新。entupd 函數才能將修改過的聚合線或圖塊在螢幕上更新。此函數可利用聚合線或圖塊的任何部份的圖元名稱來呼叫,並不須為起始的圖元。當 entupd 處理聚合線與帶有屬性的圖塊時,可以使用任何圖元來呼叫。它會在螢幕上重新產生圖元,並且包含所有的子圖元。
請注意如果 entupd 被用在一個巢狀式圖元上 (包含在圖塊中的圖元) 或一個包含巢狀式圖元的圖塊上,有些圖元可能不會重新產生。為了確保可完全重新產生,您必須必行執行 REGEN 指令。
PScommand "_.move" ENAME "0,0" @)是一種避免用REGEN的重新方法
也可以用
(vla-Highlight (vlax-ename->vla-object ename) :vlax-true)
替代 redraw,如果你不想用命令的话
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-5-18 20:27 , Processed in 0.250871 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.