将地块/多边形数据生成到t
我这里有一个附加的图纸。我想要一个列表例程,该例程将提取地块的(从母地块到子地块)方位和距离,就像在dwg中一样。这些表将一个接一个地插入,如先插入母批次,然后插入子批次a,然后插入子批次b,依此类推。(还有从参考点到不同角落的方位和距离1)非常感谢。我真的需要这个程序来完成我的学习。我读过教程和博客,但还是做不好。希望有人能帮助我。谢谢 这是图纸。对不起,我第一次发邮件时忘了附上。帮助图纸
告诉我们你现在有什么,我们会指导你,但你必须自己写代码。听起来怎么样? makimaki,
这是我不久前做的一个。你需要调整
程序开始时的常数值。
还需要修改以供轴承使用。
也许你可以用很多东西
然后根据您的口味进行定制。
dt。LSP 作为你的起点,makimaki
(if
(and (select Text) ; "Ldx_Data" entsel / ssget with filter
(Pick Start point)) ; To determine Point nos 1 getpoint
(progn
(while(Pick Next point [ Start point ]) ; getpoijnt
(distance SP NP) ; Value for distance distance
(angle SP NP) ; Value for Bearing angle
(convert distance to string) ; For table rtos / strcat
(convert angle to string) ; For table angtos
(replace "d" with "%%d") ; vl-string-subst
(pass the values to a list) ; cons / list
)
(Pick Insertion point for table) ; getpoint
(Insert Attribute Block for Lot Title) ; Native insert command / Attreq
; cdr / assoc / entget
(Insert Attribute Block for LINE/BEARING/DISTANCE) ; Native insert command / Attreq / polar
[Values: from (convert distance to string) ; variable
(convert angle to string) ] ; variable
)
)
开始编写代码
数据图纸
洛蒂特。图纸
主要标题。图纸 @makimaki公司
编码进行得怎么样?有进展吗?还是你想要一个更“自动”的程序?我在这里的目标是指导并教您编写代码的基础知识。我们可以给你一个更复杂的伪代码[或一个工作例程],但这里的重点是,我们希望你像其他人一样学习[好吧,不是真的,这里仍然有我想要的帖子的用户../I NEED…即使在以他们的名义发布了100或帖子之后]。。希望你不是他们中的一员
别害羞,去问吧。。。。。。
干杯
pBe公司 @ymg感谢您发布的代码。
@pBe。别担心,主人,我完全明白你的意思,我很感激你的建议。我现在很忙,因为我正在写一篇关于我论文的手稿,虽然我开始编写代码,但它仍然没有完成。我会尽快寄出去的。再次感谢pBe大师。 这就是他精神makimaki
去吧,让我们看看你有什么。如果你需要帮助,就喊一声
祝你好运伙计
我现在有了代码大师pBe。这真的需要时间。
(vl-load-com)
(defun C:TD (/ *error* acsp ang atable cnt col dist item osm
point_list pt row table_data tmp tmp_data)
(defun *error*(msg)
(if (and msg
(not
(member msg
'("console break" "Function cancelled" "quit / exit abort"))))
(princ (strcat "\nError: " msg))
)
(if osm
(setvar "osmode" osm))
(princ)
)
(command "layer" "m" "Technical Description" "")
(command "layer" "c" "7" "Technical Description" "")
(command "color" "bylayer")
(initget 1)
(setq osm (getvar "osmode"))
(setvar "osmode" 1)
(setq cnt 1)
(while (setq pt (getpoint
(strcat "\nSpecify Corner #"
(itoa cnt)
" (hit Enter after the last corner) >> ")))
(setq point_list (cons pt point_list)
cnt (1+ cnt))
)
(setq point_list (reverse point_list))
(setq cnt 0)
(while (<= cnt (- (length point_list) 2))
(setq tmp(list (strcat (itoa (1+ cnt)) " - " (itoa (+ cnt 2)))
(nth cnt point_list)
(nth (1+ cnt) point_list))
tmp_data (cons tmp tmp_data)
)
(setq cnt (1+ cnt))
)
(setq tmp (list (strcat (itoa (length point_list)) " - 1")
(last point_list)
(car point_list))
tmp_data (cons tmp tmp_data)
)
(setq tmp_data (reverse tmp_data))
(foreach itemtmp_data
(setq ang (angle (cadr item) (caddr item)))
(setq ang (angtos ang 4 2))
(setq dist (distance (cadr item) (caddr item)))
(setq dist (strcat (rtos dist 2 2) " m."))
(setq tmp (list (car item) ang dist))
(setq table_data (cons tmp table_data))
)
(setq table_data (reverse table_data))
(setq pt (getpoint "\nSpecify insertion point of Technical Descriptions"))
(setq acsp (vla-get-block
(vla-get-activelayout
(vla-get-activedocument
(vlax-get-acad-object))))
)
(setq atable
(vlax-invoke
acsp
'AddTable
pt
(+ 2 (length table_data))
(length (car table_data))
(* (getvar "textsize") 2.0)
(* (getvar "textsize") 15))
)
(vla-put-regeneratetablesuppressed atable :vlax-true)
(vla-settextheight atable actitlerow (getvar "textsize"))
(vla-settextheight atable acheaderrow (getvar "textsize"))
(vla-settextheight atable acdatarow (getvar "textsize"))
(vla-put-vertcellmargin atable (/ (getvar "textsize") 4.25))
(vla-settext atable 0 0 "TECHNICAL DESCRIPTIONS")
(vla-settext atable 1 0 "LINES")
(vla-settext atable 1 1 "BEARINGS")
(vla-settext atable 1 2 "DISTANCES")
(setq row 2)
(foreach itemtable_data
(setq col 0)
(foreach xitem
(vla-settext atable row col x)
(vla-setcellalignment atable row col acMiddleCenter)
(setq col (1+ col)))
(setq row (1+ row))
)
(vla-put-regeneratetablesuppressed atable :vlax-false)
(*error* nil)
(princ)
)
查看(vl string subst“new”“old”str)
我还注意到,在您的“help.dwg”中,您使用前导“0”表示一位数,即“05”数字。你打算合并吗?怎么做?
有趣的是,你这么说,因为我看不出与我发布的伪代码有任何相似之处
我很乐意帮忙 你好,pBe大师。我最近真的很忙,很抱歉回复得太晚。
老实说,我发布的代码最初并非全部来自我。我研究了与我的主题相关的教程和论坛,将它们结合在一起,并将其指定为我自己的主题。
问题1已通过主pBe解决。非常感谢你。
2.对于问题2,我不知道如何像帮助中那样生成表。子批次的图纸。它应该是这样的:
l子批次名称l===>第1行/标题
l 1-2 l轴承数据l距离数据l===>第2行/数据表
l 2-3 l轴承数据l距离数据l===>数据/表格
等等
注意:正如你在我发布的代码中看到的那样。“while”函数在例程开始时,我计划在生成母批次表或“边界表”后转移它,以便生成子批次表的代码应该一次又一次地进行,直到所有子批次都已制表。我已经知道如何做这个主pBe,我现在的问题是,我不知道如何像在帮助中一样格式化我的表。图纸。
3、我仍然不知道如何更改学位标志。你能像以前解决问题1一样给我看解题大师吗?再次非常感谢pBe大师。
更强大!
当做
makimaki公司
页:
[1]
2